Ответы:
Некоторые команды, которые я часто использую:
чтобы увидеть зависимости и обратные зависимости:
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
Два, которые я часто использую:
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
which
вместе с dpkg -S. Например: для исполняемых файлов, которые живут в пакетах с разными именами, например:dpkg -S `which uname`
$ 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
...
apt-get changelog sudo
тоже работает.
Установите 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
довольно мило Спасибо, что поделился.
Чтобы получить список команд начинается с '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
Мне нравится думать о трех различных видах пакетов:
Чтобы показать все «системные пакеты» вы можете использовать
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? для справочной информации.
Обновите пакеты, которые будут отложены из-за удаления других пакетов или из-за обновления ядра:
sudo apt-get dist-upgrade
Очистить пакет и его конфиг.
sudo apt-get purge package
Показать детали пакета, известные в базе данных пакетов, включая раздел, версию, зависимости, сопровождающего и описание.
apt-cache show package
Список файлов в установленном пакете
dpkg -L pkg
Обновите все пакеты
sudo apt-get upgrade