Відповіді:
Якусь команду я часто використовую:
щоб побачити залежності і зворотні залежності:
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
Тепер він може керувати базою даних користувача, так що вам не потрібно мати корінь 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 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
Ознайомтеся з довідковою пошуковою терміном для відповідності та
що таке істотний, необхідний, важливий, стандартний, додатковий або додатковий пакет? для довідкової інформації.
Оновіть пакети, які б зберігалися назад, оскільки вони видаляли б інші пакунки або тому, що це оновлення ядра:
sudo apt-get dist-upgrade
Очистіть пакет та його конфігурацію.
sudo apt-get purge package
Показати деталі пакета, як відомо в базі даних пакетів, включаючи розділ, версію, залежності, технічне обслуговування та опис.
apt-cache show package
Список файлів у встановленому пакеті
dpkg -L pkg
Оновіть усі пакети
sudo apt-get upgrade