Корисні команди apt (dpkg) [закрито]


9

Будь ласка, опублікуйте ваші маловідомі, але корисні команди apt, що включають apt- *, dpkg або podobnost.


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

Мені здається корисним використовувати whichразом з dpkg -S. наприклад: для виконуваних файлів, які містяться в пакунках з різними іменами, наприклад:dpkg -S `which uname`
Бенджамін Рубін

О, так, це теж добре.
папі

3

Перегляньте ChangeLog пакета

$ 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Тепер він може керувати базою даних користувача, так що вам не потрібно мати корінь update.
enzotib

apt-file цілком приємно. Дякую, що поділились.
Gödel

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 apt-get


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

Ознайомтеся з довідковою пошуковою терміном для відповідності та
що таке істотний, необхідний, важливий, стандартний, додатковий або додатковий пакет? для довідкової інформації.


0
  • Оновіть пакети, які б зберігалися назад, оскільки вони видаляли б інші пакунки або тому, що це оновлення ядра:

    sudo apt-get dist-upgrade
    
  • Очистіть пакет та його конфігурацію.

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

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

    dpkg -L pkg
    
  • Оновіть усі пакети

    sudo apt-get upgrade
    

-2
dpkg -i --force-architecture something.i386.deb

Для установки деяких i386 деб на amd64.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.