Полезные команды apt (dpkg) [закрыто]

9

Пожалуйста, оставьте свои менее известные, но полезные команды apt, включающие apt- *, dpkg или aptitude.

Гедель
источник
7
Это на самом деле не вопрос.
Мартин Оуэнс -доктормо-

Ответы:

7

Некоторые команды, которые я часто использую:

чтобы увидеть зависимости и обратные зависимости:

apt-cache [--important] [--installed] [--recurse] depends $package
apt-cache rdepends $package

Чтобы удалить пакет, все пакеты автоматического удаления и все связанные файлы конфигурации:

sudo apt-get --purge --auto-remove purge $package

Чтобы увидеть актуальные aptпараметры конфигурации:

apt-config dump | less

Чтобы изменить параметр в командной строке

$ apt-config dump | grep -i recommend
APT::Install-Recommends "1";
$ sudo apt-get -o APT::Install-Recommends="0" install $package

Это был всего лишь пример указания параметров APT через командную строку, чтобы избежать установки рекомендуемых пакетов, вы можете использовать:

sudo apt-get --no-install-recommends $package

Чтобы увидеть все локальные / устаревшие пакеты:

aptitude search ~o

Чтобы увидеть удаленные пакеты с остаточной конфигурацией:

aptitude search ~c

и удалить их

sudo aptitude purge ~c

Получить список всех установленных пакетов ( dpkg -lиногда может выдавать усеченные столбцы)

dpkg --get-selections | awk '{ print $1 }'

или

dpkg-query -Wf '${Package}\n'  # other fields available, see man page

Чтобы демонтировать, изменить, а затем собрать пакет

dpkg-deb -x file.deb ./dir
cd dir 
dpkg-deb -e ../file.deb
# apply your modification, then... 
cd ..
dpkg-deb -b dir file-new.deb
энзотиб
источник
4

Два, которые я часто использую:

apt-get autoremove <packagename>

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

dpkg -S /path/to/file

Который говорит мне, с каким пакетом был установлен файл.

Наконец, еще один ..

dpkg -l <packagename> | grep ^ii

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

Если вы хотите получить имя пакета для файла, который не был установлен ( dpkg -Sно для неустановленных пакетов), установите apt-fileи запустите:

apt-file search /path/to/file
popey
источник
Я считаю полезным использовать whichвместе с dpkg -S. Например: для исполняемых файлов, которые живут в пакетах с разными именами, например:dpkg -S `which uname`
Бенджамин Рубин
О, да, это тоже хорошо.
Попей
3

Просмотреть список изменений пакета

$ aptitude changelog <pkgname>

Пример:

$ aptitude changelog sudo
sudo (1.7.0-1ubuntu2.4) karmic-security; urgency=low

  * SECURITY UPDATE: properly handle multiple PATH variables when using
    secure_path in env.c
    - Adapted http://www.sudo.ws/repos/sudo/raw-rev/a09c6812eaec
    - CVE-2010-1646
...
Гедель
источник
2
Начиная с Ubuntu 11.04 Natty, apt-get changelog sudoтоже работает.
Лекенштейн
3

Установите apt-файл, затем запустите sudo apt-file update. Теперь вы можете искать файлы в пакетах, которые вы даже не установили.

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

Пример:

[bnrubin@server:~/]$ rmadison cowsay
    cowsay |     3.03-8 | dapper/universe | source, all
    cowsay |     3.03-9 | hardy/universe | source, all
    cowsay |   3.03-9.2 | jaunty/universe | source, all
    cowsay |   3.03-9.2 | karmic/universe | source, all
    cowsay |   3.03-9.2 | lucid/universe | source, all
    cowsay | 3.03+dfsg1-2 | maverick/universe | source, all
    cowsay | 3.03+dfsg1-2 | natty/universe | source, all
Бенджамин Рубин
источник
apt-fileТеперь вы можете управлять базой данных пользователя, так что вам не нужно быть пользователем root update.
энзотиб
apt-file довольно мило Спасибо, что поделился.
Гёдел
1

Чтобы получить список команд начинается с 'apt-', вы делаете следующее. откройте терминал, введите «apt-» и дважды нажмите клавишу TAB, чтобы отобразить список всех команд, начинающихся с «apt-».

Пример вывода:

apt-add-repository    apt-extracttemplates  apt-key
apt-cache             apt-file              apt-mark
apt-cdrom             apt-ftparchive        apt-sortpkgs
apt-config            apt-get 

Чтобы получить подробную информацию, вы можете проверить страницу man этой конкретной команды

например: man apt-get

aneeshep
источник
1

Мне нравится думать о трех различных видах пакетов:

  • Системные пакеты (основные пакеты или пакеты с приоритетом стандарта или выше)
  • Пользовательские пакеты (вручную устанавливаемые пакеты с дополнительным или дополнительным приоритетом)
  • Зависимости и рекомендации (автоматически установленные пакеты / все, что не является системным или пользовательским пакетом)

Чтобы показать все «системные пакеты» вы можете использовать

aptitude search '(~pstandard|~pimportant|~prequired|~E)'

Мне нравится, когда все они установлены и помечены как установленные вручную.

aptitude install '(~pstandard|~pimportant|~prequired|~E)!~i'
aptitude unmarkauto '(~pstandard|~pimportant|~prequired|~E)~i~M'

Для отображения всех «пользовательских пакетов» используйте

aptitude search '~i!~M!(~pstandard|~pimportant|~prequired|~E)'

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

aptitude markauto libsomething

Взгляните на справочник по поисковым терминам aptitude и
что такое пакет Essential, Required, Important, Standard, Optional или Extra? для справочной информации.

Дарио Сеидл
источник
0
  • Обновите пакеты, которые будут отложены из-за удаления других пакетов или из-за обновления ядра:

    sudo apt-get dist-upgrade
    
  • Очистить пакет и его конфиг.

    sudo apt-get purge package
    
  • Показать детали пакета, известные в базе данных пакетов, включая раздел, версию, зависимости, сопровождающего и описание.

    apt-cache show package
    
  • Список файлов в установленном пакете

    dpkg -L pkg
    
  • Обновите все пакеты

    sudo apt-get upgrade
    
PinoSan
источник
-2
dpkg -i --force-architecture something.i386.deb

Для установки некоторых i386 debs на amd64.

Extender
источник