Нештатное обновление apt

Алексей Федорчук

Семейство дистрибутивов Ubuntu, пользующихся, и часто заслуженно, славой умеренно-фронтирных, иногда проявляет удивительный консерватизм: ряд базовых компонентов в них (особенно в LTS-релизах) или не обновляется вообще, или обновляется на супер-минорном уровне. Например, в Ubuntu 16.04 один из ключевых пакетов, apt (и всё, что с ним связано) застрял на уровне версии 1.2.XX: в момент выхода релиза это была версия 1.2.10, текущая же 1.2.15.

И такое положение дел сохраняется во всех системах, основанных на «долгоиграющих» релизах Ubuntu (например, в Neon’е и Maui). Хотя, зайдя на соответствующую страницу Launchpad’а, легко убедиться, что давно уже существует версия apt 1.3.X, а в Debian testing по умолчанию используется 1.4 beta.

Вопрос о том, зачем может понадобиться повышение версии такого ответственного инструмента, как apt, супротив штатной (то есть вроде как протестированной) версии, обсуждать здесь не будем. Лично мной двигало не абстрактное стремление к прогрессу, а желание проверить одно из утверждений, высказанных в обсуждении на форуме Matuntu. И, разумеется, сделать это самым быстрым и простым способом, который и описывается ниже.

Итак, на указанной выше странице Launchpad’а выбирается самая свежая стабильная версия пакета apt и скачивается отсюда вместе с сопутствующими пакетами: libapt-pkg5.0 и apt-utils — обязательно, libapt-inst2.0, apt-transport-https и apt-doc — на всякий пожарный случай. Дальнейший порядок действий таков:

$ sudo -s
# dpkg -i libapt-pkg5.0_1.3.1_amd64.deb
# dpkg -i --auto-deconfigure apt_1.3.1_amd64.deb
# dpkg -i apt-utils_1.3.1_amd64.deb

Сообщение об ошибке конфигурирования хладнокровно игнорируется — ошибка эта рассосётся сама собой. Остальные пакеты можно установить гуртом:

# dpkg -i  libapt-inst2.0_1.3.1_amd64.deb apt-transport-https_1.3.1_amd64.deb apt-doc_1.3.1_all.deb

После чего остаётся только убедиться, что все перечисленные пакеты сменили свои версии и не содержат ошибок:

apt-upgrade

И, опять же на всякий случай, зафиксировать их версии от обновлений (точнее, в данном случае, от «удревнений»). Что можно сделать через Synaptic или командой

# apt-mark hold [имена пакетов]

Описанная процедура проделывалась в системах Cintu 16.04, Maui 2.1 и Neon 5.8 LTS. И во всех случаях вреда не нанесла ни малейшего, несмотря на имевшиеся опасения. А на счёт того, принесла ли она пользу — расскажу со временем.

Нештатное обновление apt: 7 комментариев

  1. Не знаю, связано ли создание своей сборки при помощи Remastersys и производных от него с версией APT, но попытка собрать и установить систему на основе 16.10, где версия apt 1.3, была успешной. Ранее предполагалось, что установщик Ubiquity отстаёт от развития apt, что вызывает аварийное завершение установки из созданного Remastersys-ом образа. Но в 16.04 замечены не только несостыковки apt и ubiquity, но и недоработки установщика пакетов Gdebi, который в 16.10 функционирует нормально.

  2. Я дико извиняюсь, но как узнать версию APT? «sudo aptitude show apt | grep Ver» результата не даёт…

  3. Артём, просто наберите в терминале apt —version , вывод покажет версию апта Вашей системы.

  4. Артём, движок вордпресса искажает набранные символы, поэтому поясняю, что перед version ставятся два минуса, а не длинное тире.

  5. Таня, я вот тоже не знаю причины этого, бурно обсуждавшегося на форуме Matuntu явления. По причинам, которые я там высказал, очень не верю, что оно связано с версией apt’а: ну не лаптем они там в Каноникле щи хлебают, чтобы за почти полгода не пофиксить такую очевидную, казалось бы, багу.
    Но дело тут не в этом: я эту шпаргалку сочинил ради опции auto-deconfigure, которая предотвращает попадание в замкнутый круг. В данном случае — что попытка установки apt вызывает сообщение о ломке apt-utils, а попытка установить последний — о невозможности сделать это без установки apt.

  6. Артём, просто на будущее: упомянутая Таней опция version работает почти для всех утилит CLI.

  7. на работе стоит древний комп с FreeBSD в качестве прокси (селерон 650 Mhz … обновить его не плучится никак, только замена) так вот начиная с версии 16.04 обновиться через этот прокси стало большой проблемой из-за новой версии apt ибо скачивание описаний содержимого в репозиториях занимает до 1 часа иногда… приходится настраивать рабочие лошадки на резервный канал с Apt-Cacher-Ng

Добавить комментарий