Алексей Федорчук
Семейство дистрибутивов 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
После чего остаётся только убедиться, что все перечисленные пакеты сменили свои версии и не содержат ошибок:
И, опять же на всякий случай, зафиксировать их версии от обновлений (точнее, в данном случае, от «удревнений»). Что можно сделать через Synaptic или командой
# apt-mark hold [имена пакетов]
Описанная процедура проделывалась в системах Cintu 16.04, Maui 2.1 и Neon 5.8 LTS. И во всех случаях вреда не нанесла ни малейшего, несмотря на имевшиеся опасения. А на счёт того, принесла ли она пользу — расскажу со временем.
Не знаю, связано ли создание своей сборки при помощи Remastersys и производных от него с версией APT, но попытка собрать и установить систему на основе 16.10, где версия apt 1.3, была успешной. Ранее предполагалось, что установщик Ubiquity отстаёт от развития apt, что вызывает аварийное завершение установки из созданного Remastersys-ом образа. Но в 16.04 замечены не только несостыковки apt и ubiquity, но и недоработки установщика пакетов Gdebi, который в 16.10 функционирует нормально.
Я дико извиняюсь, но как узнать версию APT? «sudo aptitude show apt | grep Ver» результата не даёт…
Артём, просто наберите в терминале apt —version , вывод покажет версию апта Вашей системы.
Артём, движок вордпресса искажает набранные символы, поэтому поясняю, что перед version ставятся два минуса, а не длинное тире.
Таня, я вот тоже не знаю причины этого, бурно обсуждавшегося на форуме Matuntu явления. По причинам, которые я там высказал, очень не верю, что оно связано с версией apt’а: ну не лаптем они там в Каноникле щи хлебают, чтобы за почти полгода не пофиксить такую очевидную, казалось бы, багу.
Но дело тут не в этом: я эту шпаргалку сочинил ради опции auto-deconfigure, которая предотвращает попадание в замкнутый круг. В данном случае — что попытка установки apt вызывает сообщение о ломке apt-utils, а попытка установить последний — о невозможности сделать это без установки apt.
Артём, просто на будущее: упомянутая Таней опция version работает почти для всех утилит CLI.
на работе стоит древний комп с FreeBSD в качестве прокси (селерон 650 Mhz … обновить его не плучится никак, только замена) так вот начиная с версии 16.04 обновиться через этот прокси стало большой проблемой из-за новой версии apt ибо скачивание описаний содержимого в репозиториях занимает до 1 часа иногда… приходится настраивать рабочие лошадки на резервный канал с Apt-Cacher-Ng