Ubuntu: Что они делают с ванильными источниками?

941
user5210

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

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

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

12

3 ответа на вопрос

18
liori
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 для себя.

Pine теперь разрабатывается как альпийский, чтобы обойти первоначальные проблемы с лицензированием - http://www.washington.edu/pine/ theotherreceive 14 лет назад 0
Тем не менее, пакет `pine 'находится внутри хранилища. Но так вот, как проблемы с лицензированием усложняют ситуацию. liori 14 лет назад 0
2
Kim

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

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

1
Ryan Thompson

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