Комментарии 64
Офтоп небольшой. Почему в последнее время чаще встречается aptitude, а не apt-*? Или мне кажется?
+6
Рекомендуют его как более продвинутую тулзу, ссылки с цитатами можно увидеть в этой ветке обсуждения
+3
aptitude — новая тулза
apt-* остались в новых версиях дебиана только для обратной совместимости
apt-* остались в новых версиях дебиана только для обратной совместимости
-4
не совсем так, часть функций apt* в aptitude нет
+2
И в Ubuntu удалили aptitude «из коробки».
+4
Когда-то давным давно, во времена etch, было наоборот — многих функций aptitude не было в apt. Например, не было autoremove, а при удалении пакета с помощью apt-get все зависимые пакеты оставались в системе. Затем, благодаря Убунте (хотя, скорее всего, apt обновился всё же в Debian Testing, а в убунту попал уже оттуда; просто релизы дебиана выходят реже) все эти функции появились. Такие дела.
0
НЛО прилетело и опубликовало эту надпись здесь
Это по-моему должен знать не только администратор, но и обычный пользователь Ubuntu/Debian. Я по привычке использую apt, разницы особо не вижу.
+4
Разница в разруливании зависимостей. Там где apt-get при удалении пакета предлагает снести полсистемы aptitude находит куда более элегантное решение. Бывают и обратные примеры, но реже. К тому же у aptitude есть псевдографический режим, где можно попробовать разрулить зависимости голыми руками.
+4
а как же управление пользователями, работа с архивами,…
0
Тема не раскрыта.
>5. Как посмотреть список файлов в пакете?
>поставить apt-file и…
dpkg -L package_name
dpkg -c package.deb
>5. Как посмотреть список файлов в пакете?
>поставить apt-file и…
dpkg -L package_name
dpkg -c package.deb
+1
Благодарю, дополнил
0
Иногда нагляднее просто «зайти» в нужный .deb как в архив из mc — и посмотреть, что да как. Например, когда собрал пакет сам и хочешь посмотреть, всё ли там на месте.
0
Только с тем нюансом, что для
apt-file
пакет не обязательно должен быть скачан и установлен.+1
Как удалить все пакеты, где есть exim4 в названии пакета:
(а то интернеты усыпанными всякими странными конструкциями из помеси aptitude + dpkg + grep + awk).
Удалить оставшиеся конфиги от удалённых пакетов:
Скачать исходник пакета:
подключить репозиторий с исходниками (читай продублировать строчку с обычным репозиторием и заменить deb в начале строки на deb-src)
Поиск пакета, в котором содержится файл lib.so (предаврительно поставить apt-file):
Очистить кэш загруженных пакетов:
aptitude purge ~iexim4
(а то интернеты усыпанными всякими странными конструкциями из помеси aptitude + dpkg + grep + awk).
Удалить оставшиеся конфиги от удалённых пакетов:
aptitude purge ~c
Скачать исходник пакета:
подключить репозиторий с исходниками (читай продублировать строчку с обычным репозиторием и заменить deb в начале строки на deb-src)
apt-get source package_name
Поиск пакета, в котором содержится файл lib.so (предаврительно поставить apt-file):
apt-file search lib.so
Очистить кэш загруженных пакетов:
aptitude autoclean # удалятся только пакеты неактуальных версий
aptitude clean # очистится весь кэш
+4
Также удалить можно «apt-get purge .*exim4.*»
0
>Скачать исходник пакета:
тогда еще
чтобы установить зависимости для компиляния этих исходников.
тогда еще
apt-get build-dep package_name
чтобы установить зависимости для компиляния этих исходников.
+1
Благодарю, дополнил
0
Если скопились старые ядра, найти их пакеты можно так:
А потом удалить (я удаляю все, за исключением последних двух linux-image-* и текущего linux-headers-*):
dpkg -l linux-* | grep ii
А потом удалить (я удаляю все, за исключением последних двух linux-image-* и текущего linux-headers-*):
sudo aptitude purge <список пакетов через пробел>
+1
Если же удалить нужно все, за исключением последнего одного, то можно обойтись и без ручного вмешательства:
( в вашем случае вообще тоже можно, но уж шибко страшные конструкции получаются =) )
aptitude search "?and(~i~nlinux-(im|he) ?not(~n`uname -r`)) ?not(~dmeta) ?not(~ncommon)"
( в вашем случае вообще тоже можно, но уж шибко страшные конструкции получаются =) )
0
Благодарю, дополнил
0
Таки упомянутое в статье — это для пользователя, а не администратора.
А как же весьма полезное для обновление машины без интернета через флешку:
А вот как установить пакеты с зависимостями в, например, /target? Самый близкий аналог: dpkg --root /target, но он же не подгрузит из сети зависимости. Какие-либо манипуляции с аналогичными аргументами apt привели к тому, что он и /var/lib/apt/lists начинает смотреть смотреть в /target.
А как же весьма полезное для обновление машины без интернета через флешку:
apt-get --print-uris -y dist-upgrade | grep "^'" | awk '{ print $1 }' | sed "s/'//g" > packages.lst # на целевой машине
wget -i packages.lst # на машине с интернетом
А вот как установить пакеты с зависимостями в, например, /target? Самый близкий аналог: dpkg --root /target, но он же не подгрузит из сети зависимости. Какие-либо манипуляции с аналогичными аргументами apt привели к тому, что он и /var/lib/apt/lists начинает смотреть смотреть в /target.
+1
Тоже бывает полезно:
dpkg --get--selections > packages_list.txt # помещает в файл список всех установленных пакетов
dpkg --set-selections < packages_list.txt # Устанавтивает все пакеты перечисленные в файле
+1
Не совсем. Устанавливает потом apt-get или aptitude. Последняя строчка только отмечает пакеты для установки.
+1
dpkg --set-selections полезен, если нужно сделать что-то специфическое.
Например, заморозить установленную версию пакета, чтобы на неё не было поползновений к апдейту.
Например, наш рабочий вариант:
— ставим из исходников специфическую версию bison (потому что это вроде как крайняя версия, которая нормально работает и в винде, и на линухе. А более свежие генерят чуть иной код и тем самым гадят в коммиты. И последней строчкой заможариваем установленную версию, так что все новые апдейты на неё не действуют.
Например, заморозить установленную версию пакета, чтобы на неё не было поползновений к апдейту.
Например, наш рабочий вариант:
$ tar -xjf bison-1.875.tar.bz2
$ cd bison-1.875
$ ./configure
$ make
$ sudo checkinstall
$ echo 'bison hold' | sudo dpkg --set-selections
— ставим из исходников специфическую версию bison (потому что это вроде как крайняя версия, которая нормально работает и в винде, и на линухе. А более свежие генерят чуть иной код и тем самым гадят в коммиты. И последней строчкой заможариваем установленную версию, так что все новые апдейты на неё не действуют.
0
Есть куда более простой вариант — aptitude hold %package_name%
0
К слову, уже сталкивался с такими граблями,
aptitude hold
помечает пакет как необновляемый только в рамках самого aptitude
, а ближайший запуск apt-get
'a его всё-таки обновит. Приходится таскать за собой wajig
, который оказался очень удобной штукой.0
НЛО прилетело и опубликовало эту надпись здесь
Про apt-file ни слова, про установку пакетов из sid/experimental ни слова.
+2
мои пять копеек… горжусь ими =)
Для убунту автоматом установить не достающие ключи к репозиториям, если вы полностью доверяете им и контролируете ситуацию
для дебиан нужно заменить keyserver.ubuntu.com на свой — не знаю правда какой =(
Найти все Qt (KDE) программы и убрать из вывода библиотеки. Полезно, если решитесь со временем почистить систему и убрать из неKDE рабочей среды все KDE приложения. Помните — Qt != KDE. Qt приложение не обязательно тянет по зависимостям части KDE.
Для убунту автоматом установить не достающие ключи к репозиториям, если вы полностью доверяете им и контролируете ситуацию
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com `sudo apt-get update 2>&1 | grep -o '[0-9A-Z]\{16\}$' | xargs`
для дебиан нужно заменить keyserver.ubuntu.com на свой — не знаю правда какой =(
Найти все Qt (KDE) программы и убрать из вывода библиотеки. Полезно, если решитесь со временем почистить систему и убрать из неKDE рабочей среды все KDE приложения. Помните — Qt != KDE. Qt приложение не обязательно тянет по зависимостям части KDE.
sudo aptitude search '~i!~nlib(~Dqt|~Dkde)'
0
Я активно юзаю флаг -s, т.е. перед каждой установкой пакета проверяю:
apt-get install packet_name -s
Показывается, какие пакеты будут ставиться/апдейтиться, но установки не происходит. Это позволяет принять решение — ставить сейчас или добавить репы / переключиться на testing или unstable для версии поновее.
Имхо, мастхэв.
apt-get install packet_name -s
Показывается, какие пакеты будут ставиться/апдейтиться, но установки не происходит. Это позволяет принять решение — ставить сейчас или добавить репы / переключиться на testing или unstable для версии поновее.
Имхо, мастхэв.
0
Одному мне кажется что…
![image](https://habrastorage.org/r/w780q1/getpro/habr/comment_images/c85/34e/2a4/c8534e2a43807513d2374aea4697b8e9.jpg)
всю статью можно было написать одной строкой?
$aptitude --help
![image](https://habrastorage.org/getpro/habr/comment_images/c85/34e/2a4/c8534e2a43807513d2374aea4697b8e9.jpg)
всю статью можно было написать одной строкой?
$aptitude --help
0
Именно кажется, не только в хелпе, но и в мане нет упоминания иных утилит, да и много чего нет, например описания шаблонов поиска — «For more information on search patterns, see the section “Search Patterns” in the aptitude reference manual», так что только читать всё документацию.
Ну и шпаргалка документацию не отменяет, а даёт быстрые ответы на стандартные вопросы и ориентиры.
Ну и шпаргалка документацию не отменяет, а даёт быстрые ответы на стандартные вопросы и ориентиры.
0
НЛО прилетело и опубликовало эту надпись здесь
Насчёт «намного больше» это перегиб, там и половины упомянутого нет, но есть полезные дополнения, например про утилиту cruft (добавил в пост) или про сборку из исходников, но эту тему я ещё не исследовал — не было необходимости. За ссылку спасибо.
0
Насколько я понял, пакетные менеджеры ubuntu/debian не умеют показывать список пакетов, установленных вручную.
выводит что-то другое.
aptitude search '~i!~M'
выводит что-то другое.
0
В убунте действительно куча лишних пакетов помечается ручными, в дебиане должно быть нормально
0
Проверил на чистой установке Debian 6.0.5 — сразу после установки эта команда выдаёт кучу пакетов, так что вы правы — не то, поправил статью, благодарю за бдительность
0
Как в убунте используя apt-get обновить все, за исключением ядра?
0
Как посмотреть какие пакеты входят в метапакет?
Как сделать чтобы в результатах поиска показывались размеры пакетов?
Как сделать поиск по содержимому, но с выводом не в формате apt-file, а aptitude ( например вывести все пакеты в составе которых есть файл /etc/init.d и в результатах вывода вывести краткое описание пакетов)?
Как сделать чтобы в результатах поиска показывались размеры пакетов?
Как сделать поиск по содержимому, но с выводом не в формате apt-file, а aptitude ( например вывести все пакеты в составе которых есть файл /etc/init.d и в результатах вывода вывести краткое описание пакетов)?
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Шпаргалка начинающего Debian/Ubuntu администратора по управлению пакетами