Почему источники ubuntu отличаются от оригиналов?

Когда я это делаю:

wget ftp://ftp.openbsd.com/pub/OpenBSD/OpenSSH/portable/openssh-5.8p1.tar.gz
wget ftp://ftp.openbsd.com/pub/OpenBSD/OpenSSH/portable/openssh-5.8p1.tar.gz.asc
gpg openssh-5.8p1.tar.gz.asc 
tar -zxvf openssh-5.8p1.tar.gz
mv openssh-5.8p1 openssh-5.8p1_downloaded
apt-get source openssh-server
diff -r openssh-5.8p1 openssh-5.8p1_downloaded/ | wc -l

Я получаю множество различий (wc -l возвращает 3000 строк). Почему это?

5
задан 2 February 2012 в 23:45

1 ответ

Разработчики Ubuntu, которые управляют пакетами и импортируют приложения в репозитории Ubuntu, оставляют за собой право изменять эти приложения. Им разрешено делать это, так как почти все программы бесплатны. Они не пытаются его покрыть, эти изменения видны всем. Фактически, они даже изменяют версию пакета, чтобы указать, что она отличается от первоначальной версии. Вы выполнили команду apt-get source, загруженную вами openssh-server в версии 5.8p1-7ubuntu1. Обратите внимание на суффикс. (Вы можете проверить версию с любым менеджером пакетов). Схема orig_version-XubuntuY очень распространена среди всех пакетов. Номер X указывает номер версии в Debian, а Y - номер версии в Ubuntu. Возможно, вы знаете об этом, но в качестве примечания для всех, кто мог бы прочитать этот ответ: большинство пакетов ubuntu копируются из репозиториев Debian - поэтому, если разработчики Debian выпустили версию 5.8p1 семь раз, выпуская их в хранилища каждый раз, когда они включали свои изменения , и это первый раз, когда разработчики Ubuntu выпустили его с изменениями, получившийся номер версии будет 5.8p1-7ubuntu1.

Почему они хотят или должны включать собственные изменения, если версия вверх по течению достаточно!

Пакеты upstream предоставляются для широкой аудитории. Тем не менее, Ubuntu, как и любой другой дистрибутив, имеет множество конкретных изменений, например, небольшую битную организованную файловую систему. В этом случае любое приложение, использующее эти части архитектуры системы, которые исключительно изменены в Ubuntu, нуждается в адаптации к Ubuntu. Хорошим примером является то, что большинство приложений подготовлено так, что они могут работать с Apport - средством обнаружения сбоев и сообщения об ошибках, которое используется исключительно в Ubuntu. Во многих случаях (хотя и не в случае openssh-сервера) эти изменения необходимы для обеспечения надлежащей интеграции с настольными системами. Не многие приложения знают об Unity, поскольку это не распространено на других дистрибутивах. Это означает, что если приложение должно интегрироваться с индикаторами, Dash или что-то еще, разработчики Ubuntu должны реализовать эту функцию и выпустить приложение со своими изменениями в репозитории. Все исправления после выпуска публикуются как локальные (Ubuntu-wide) изменения источника. Приложения никогда не обновляются до более новой версии релиза в одной версии Ubuntu. Это означает, что если ваш Oneiric был выпущен с openssh-сервером 5.8p1, он не будет обновлен до 5.9p1 - вам нужно ждать Precise или получить его самостоятельно. Однако Ubuntu предоставляет обновления, которые исправляют критические ошибки и проблемы безопасности. Эти исправления должны применяться к версии, которая соответствует Ubuntu серии - в вашем случае это Oneiric - и выпущена как изменения, сделанные в версии 5.8p1. Иногда требования к качеству приложений разработчиков ниже, чем у Ubuntu. Время от времени случается, что разработчики Ubuntu исправляют ошибку в приложении, прежде чем загружать его в репозитории. Также бывает, что номер ревизии увеличивается без внесения каких-либо изменений. Это тот случай, когда приложение необходимо перестроить из-за значительных изменений в (или новой версии) библиотеки, от которой она зависит. Затем номер версии увеличивается только для того, чтобы нагрузить версию пакета.

Вы можете получить дополнительную информацию об изменениях в этих двух местах:

Пакеты восходящего потока предоставляются для общей аудитории. Тем не менее, Ubuntu, как и любой другой дистрибутив, имеет множество конкретных изменений, например, небольшую битную организованную файловую систему. В этом случае любое приложение, использующее эти части архитектуры системы, которые исключительно изменены в Ubuntu, нуждается в адаптации к Ubuntu. Хорошим примером является то, что большинство приложений подготовлено так, что они могут работать с Apport - средством обнаружения сбоев и сообщения об ошибках, которое используется исключительно в Ubuntu. http://packages.ubuntu.com/

Там вы можете найти интересующий вас пакет, выбрать интересующую вас версию и даже загрузить исходный пакет debian для ручного чтения все оставляют за собой право изменять файлы , которые предоставляются разработчиками Ubuntu и применяются к исходному источнику при создании пакета Ubuntu.

Также обратите внимание, что эти изменения всегда кратко объясняются в пакете , предоставленном разработчиками Ubuntu (доступны как на этих сайтах, так и с использованием большинства менеджеров пакетов на вашем компьютере), но есть ссылку на ваш openssh-server - прочитайте его, по крайней мере, для уведомления о том, как изменяется номер версии с включенными патчами).

Надеюсь, вы найдете это ясно!

8
ответ дан 25 May 2018 в 14:38

Другие вопросы по тегам:

Похожие вопросы: