Почему в репозиториях Ubuntu не установлены последние версии программного обеспечения?

145

Почему пакеты в официальных репозиториях Ubuntu старше последних (вышестоящих) версий Debian Sid, PPA, авторов и т. Д.?

Томас Уорд
источник
2
На самом деле это происходит для любого дистрибутива, а не только для Ubuntu.
dr01
9
@ dr01 Есть дистрибутивы, у которых есть скользящие дистрибутивы, которые всегда получают обновления - поэтому не все дистрибутивы соответствуют этому вопросу или циклам разработки Ubuntu
Томас Уорд

Ответы:

120

Релиз Ubuntu проходит несколько этапов, прежде чем он действительно становится доступным как готовый продукт:

  • За некоторое время до того, как Ubuntu запускает релиз, он в определенный момент замораживает свои пакеты.

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

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

Новая версия пакетов последовательно импортируется (из Debian) для следующего выпуска Ubuntu, пока не произойдет следующее замораживание и тот же процесс повторяется.

В качестве примера вы можете взглянуть на график выпуска 12.04 .

Вы можете видеть, что хотя 12.04 был выпущен в апреле, 12 января произошло нечто, называемое Debian Import Freeze .

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

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

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

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

Новая версия Ubuntu выпускается каждые 6 месяцев, поэтому каждые 6 месяцев новые пакеты готовятся, тестируются, настраиваются и выпускаются с новой версией. Будущие версии пакетов можно установить в вашей системе через PPA или просто загрузив их с веб-сайта, но версия пакета в официальном репозитории остается прежней.

Для большего понимания и интересного обзора того, что случилось с Ubuntu с 10.04 до запуска 12.04, загляните на страницу ReleaseSchedule - LTS to LTS и Стабильные выпуски обновлений для полного обзора и объяснения стабильного выпуска Ubuntu.

Бруно Перейра
источник
2
Кажется, есть исключения из этой политики, особенно для веб-браузеров (Firefox, Chromium). Хотя более 95% пакетов могут следовать указанным ниже указаниям, веб-браузер может быть наиболее часто используемым приложением для большинства пользователей.
dotpush
Если вам нужна последняя версия программного обеспечения, используйте репозиторий Launchpad PPA.
iBug
@iBug или используйте другой дистрибутив, например Arch Linux или NixOS, или установите Homebrew в вашей системе Ubuntu.
Борис
16

Две причины. Первое совершенно очевидно: человеку нужно тратить время на обновление пакета, когда выходит новый апстрим. Во-вторых, если вы используете стабильный выпуск, а не текущую версию разработки, пакеты намеренно НЕ обновляются по собственному желанию, чтобы избежать поломки. См. Http://wiki.ubuntu.com/StableReleaseUpdates .

psusi
источник
3
«это требует от человека тратить время на обновление пакета, когда выходит новый апстрим», это явно неверно, все можно сделать автоматизированным. Настоящая причина - вторая, которую вы упомянули.
gented
15

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

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

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

Кроме того, существует хранилище ubuntu-backports, в котором пользователи могут выбрать, какие обновления программного обеспечения не вызовут проблем, подобных перечисленным выше. Он не включен по умолчанию, поэтому пользователи должны включить его, что сделано для того, чтобы исключить неожиданное изменение программного обеспечения из-под вас. Кроме того, он не очень укомплектован, и поэтому я не уверен, как часто пакеты действительно получают обновления.

Кроме того, команда SRU недавно немного обновила правила, которые, как мы надеемся, упростят получение обновлений только для исправлений ошибок.

Брайс
источник
11

Обычно обновления в выпущенных версиях Ubuntu предназначены для безопасности и исправления ошибок, примеры таких ошибок:

  • Ошибки, которые в реальных обстоятельствах могут напрямую вызвать уязвимость системы безопасности. Это сделано командой безопасности и задокументировано в SecurityTeam / UpdateProcedures.

  • Ошибки, которые представляют серьезные регрессии из предыдущего выпуска Ubuntu. Это включает в себя пакеты, которые полностью непригодны для использования, например, могут быть удалены или сбой при запуске.

  • Ошибки, которые в реальных обстоятельствах могут непосредственно привести к потере пользовательских данных. Ошибки, которые не соответствуют вышеперечисленным категориям, но (1) имеют явно безопасное исправление и (2) влияют на приложение, а не на критические пакеты инфраструктуры (такие как X.org). или ядро).

  • Для релизов долгосрочной поддержки мы регулярно хотим включать новое оборудование. Такие изменения уместны при условии, что мы можем гарантировать, что они не повлияют на обновления существующего оборудования. Например, модалии вновь представленных драйверов не должны пересекаться с ранее поставленными драйверами. -Новые версии коммерческого программного обеспечения в партнерском архиве Canonical.

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

    -Для новых версий исходных пакетов, которые предоставляют новые функции, но не исправляют критические ошибки, следует запросить бэкпорт.

Взято с отличной вики-страницы StableReleaseUpdates .

pl1nk
источник
11

Я постараюсь ответить на ваши вопросы, основываясь на моем прошлом опыте форумов Ubuntu и планеты Ubuntu.

Думаю, мне просто интересно, как и кем обновляются репозитории apt.

Репозитории APT обновляются командой разработчиков Ubuntu. Команда упаковщиков получает все исходные пакеты от разработчиков, которые проводят первоначальное тестирование упаковки и многое другое. Затем команда тестирования проводит финальное тестирование, подавая сигнал готовности. Но команда упаковщиков и команда тестирования очень осторожно относятся к зависимостям, и это влияет на стабильность системы.

Когда есть задержка, это потому, что разработчик не перенес самую последнюю версию на соответствующий сервер?

Если вы видите изменения в основной ветке разработки, тысячи разработчиков захотят протолкнуть свои пакеты. Но не все преуспели в основной поток, потому что по разным причинам. Предположим, что приложение Gedit подходит для версии 2.2 и отлично работает с Dbus 2.1, Gtk 2.4 и т. Д. Где для версии Gedit 2.4 (очень новой) требуются Gtk 2.5 и Dbus2.3 для работы. Теперь команда тестирования и упаковки (в том числе и релиз-команда) не принимает это, потому что замена существующей системы, имеющей старые dbus и gtk, на новую ломает все остальное. Надеюсь, у вас есть точка ада зависимости.

Есть ли у разработчика больше работы по переводу релиза в форму, которую может использовать репозиторий?

Не для восходящего канала. Но для выхода канала да :).

PS: в каноническом сейчас могут быть внесены некоторые изменения в процесс по сравнению с тем, что объяснялось выше. Но это более-менее одно и то же.

Zenwalker
источник
6

Принятый ответ в ссылке fossfreedom, размещенной в качестве комментария, очень хорош.

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

Вы можете обнаружить, что некоторые пакеты выпущены в репозиторий backports, если они будут успешно включены в будущий выпуск Ubuntu и если разработчики полагают, что он будет работать и с более ранними. Backports можно активировать и деактивировать в Центре программного обеспечения («Правка» -> «Источники программного обеспечения» -> вкладка «Обновления» -> «Неподдерживаемые обновления»).

Джон С. Грубер
источник
1
Как уже упоминалось, бэкпорты редки и их немного.
Томас Уорд
-3

Ответ не полный.

Есть НЕКОТОРЫЕ упакованные, чем могут быть установлены в бэкпорт версии от Software Center. В правой части окна, слева от кнопки «Установить / Изменить», есть поле выбора, где вы можете изменить версию.

Пример gratia: по умолчанию conkyсейчас 1.8.xи у вас там в 1.9.0 (precise-backports)качестве бэкпорта. Конечно, бэкпорты должны быть сначала включены.

Источник: http://bugs.launchpad.net/ubuntu/+source/conky/+bug/1003727

РЕДАКТИРОВАТЬ: Как указано ниже, не каждый пакет имеет бэкпорт, но вы можете иметь ранний доступ иногда, если вам повезет.

Вениамин
источник
3
Backports доступны не для каждой
посылки