12

Поправьте меня если я не прав

Насколько мне известно, такие дистрибутивы, как Debian/Ubuntu/Fedora, обычно модифицируют исходный код vanilla перед созданием пакета. В чем причина этих изменений? Есть ли проблема с исходным кодом? Как я могу получить список изменений и причины этих изменений, внесенных в конкретный пакет?

Спасибо за помощь!

3 ответа3

18
apt-get source package

Вы получите два или три файла: "оригинальный" тарбол (иногда измененный, но редко ... единственным изменением часто является имя файла) - с именем * .orig.tar.gz, изменения в Debian в виде * .diff Файл .gz и некоторые метаданные. Иногда файл .diff.gz отсутствует: это означает, что пакет собран только для debian/ubuntu, для обработки какой-то очень специфической работы с дистрибутивом ... как dak которая управляет загрузкой архива debian. Тогда весь код находится в оригинальном архиве.

Причин множество: исправление ошибок в программном обеспечении (когда апстрим не хочет), адаптация программного обеспечения к debian (например, настройка путей к файлам). Debian хочет, чтобы все пакеты соответствовали стандарту FileSystem Hierarchy Standard, и это очень распространенная настройка.

Из-за проблем с упаковкой оригинальный архив иногда отличается от исходного. Я помню, как программа распространялась в нескольких архивах, в то время как они генерировали только один исполняемый файл - сопровождающий Debian решил создать свой собственный "оригинальный" архив, состоящий из tar-архивов вышестоящих версий. Другая причина в том, что иногда сопровождающий Debian решает добавить некоторый двоичный файл в пакет. Сложно помещать двоичные файлы в файл .diff.gz, поэтому исходный tarball изменяется (и это обычно четко описано в документации к пакету).

Иногда (очень редко) проблема заключается в лицензировании. Бывает, что апстрим не понимает или не хочет понимать последствия из-за некоторых лицензий. Debian хочет, чтобы все проблемы с лицензированием были решены, поэтому случается, что исправления Debian делают какие-то конкретные действия, или оригинальный архив извлекается из нелегально распространяемых файлов.

Также бывает, что какой-то контент лицензирован, так что вы можете использовать его, но не распространять. Обычно (например, для msttcorefonts , flashplugin-nonfree) пакет debian является лишь своего рода установщиком для пакета, и внутри пакета нет оригинального содержимого.

Пакет pine также интересен, поскольку лицензия запрещает распространять скомпилированные формы. Поэтому нет pine бинарного пакета, но есть pine исходный пакет. Вы можете скачать его с помощью приведенной выше команды и скомпилировать в пакет debian для себя.

2

Причин, вероятно, столько же, сколько и сопровождающих и пакетов. Я предполагаю, что обычно они модифицируют программное обеспечение, чтобы оно лучше интегрировалось с другим программным обеспечением в дистрибутиве или добавляло функции, которых нет в "официальной" версии.

Вы можете получить исходники (и специфичные для ubuntu различия), введя sudo apt-get source PACKAGENAME в командной строке. Он загрузит исходные файлы и различий пакета в текущий каталог. Обычно они также включают некоторые комментарии в источнике.

1

Подумай об этом так. Если вы установили программу из исходного архива через ./configure; make; make install , у вас еще есть работа. Вы должны сделать пункты меню, вы должны настроить файлы конфигурации и тому подобное. Возможно, вам придется дать ./configure --prefix . Изменения сопровождающих дистрибутивов часто сводятся к автоматизации этих рутинных задач.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .