Утиліта apt-get – продуктивна вільна консольна програма, яка використовується та працює з бібліотекою APT (Advanced Packaging Tool) для виконання установки нових пакетів з ПЗ, видалення існуючих, оновлення встановлених, а також оновлення всієї операційної системи.
Консольна утиліта apt-cache використовується для пошуку в кеші програмних пакетів APT. Говорячи простими словами, цей інструмент, використовується для пошуку пакетів, збору інформації про пакети та пошуку пакетів, доступних для встановлення в операційні системина основі Debian або Ubuntu.
Як отримати список усіх доступних пакетів?
Щоб побачити всі доступні пакети, виконайте таку команду:
Apt-cache pkgnames
Як знайти ім'я пакета та його опис.
Щоб знайти назву пакета та його опис перед встановленням, скористайтеся прапором «search». Використання “search” c apt-cache відобразить список відповідних пакетів з коротким описом. Наприклад, ви хочете знайти опис пакету vsftpd: щоб зробити це, команда повинна бути такою:
Apt-cache search vsftpd
Щоб знайти та перерахувати всі пакети, ім'я яких починається з vsftpd , можна використовувати наступну команду:
Apt-cache pkgnames vsftpd
Як я можу переглянути інформацію про пакет?
Наприклад, якщо ви хочете ознайомитися з інформацією про пакет, з його коротким описом, що відображає номер версії, контрольні суми, розмір, розмір після встановлення, категорії і так далі, ви можете використовувати підкоманду show, як показано нижче:
Apt-cache show netcat
Як можна перевірити залежність пакета?
Щоб перевірити залежність конкретного пакета, можна використовувати підкоманду showpkg , щоб дізнатися, встановлені ці залежності чи ні. Наприклад, використовуйте команду showpkg разом із назвою пакета.
Apt-cache showpkg vsftpd
Як можна переглянути статистику кешу?
Підкоманда stats відобразить повну статистику про кеш, наприклад, повну кількість пакетів, знайдену в кеші. Використовуйте таку команду:
Apt-cache stats
Як оновити список пакетів у системі?
Команда update використовується для синхронізації та оновлення індексних файлів пакетів. Синхронізація відбувається з джерелами, зазначеними у файлі /etc/apt/sources.list. Цю команду можна використовувати, наприклад, щоб не втрачати важливих оновлень пакетів.
Sudo apt-get update
Як оновити пакети у системі?
Команда upgrade використовується для оновлення всього встановленого на Наразісофту у вашій системі. Іноді може вийти так, що оновлення не можна встановити через будь-який інший пакет, який вимагає стару версію.
Sudo apt-get upgrade
Але якщо ви хочете оновитись незалежно від вимог пакетів, використовуйте підкоманду dist-upgrade:
Sudo apt-get dist-upgrade
Як я можу встановити або оновити конкретний пакет?
Підкоманда install використовується для встановлення чи оновлення будь-якого пакета.
Sudo apt-get install netcat
Як я можу встановити кілька пакетів відразу?
Ви можете ввести назви кількох пакетів, щоб встановити їх одночасно. Наприклад, щоб встановити пакети nethogs і goaccess , можна виконати таку команду:
Sudo apt-get install nethogs goaccess
Як встановити кілька пакетів за маскою назви
За допомогою регулярних виріжних можна додавати кілька пакетів за допомогою спеціальних символів. Наприклад, можна використовувати зірочку, щоб встановити всі пакети, які містять рядок "name" у назві:
Sudo apt-get install *name*
Як інсталювати пакети без оновлення.
Використання прапора –no-upgrade запобігатиме оновлення вже встановлених пакетів.
Sudo apt-get install packageName --no-upgrade
Як оновити певні пакети?
Прапор only-upgrade не встановить нові пакети, а лише оновить існуючі.
Sudo apt-get install имя_пакета --only-upgrade
Як я можу встановити певну версію пакета?
Уявімо, що вам необхідно встановити специфічну версію пакета, просто використовуйте знак разом із ім'ям пакета і припишіть бажану версію.
Sudo apt-get install vsftpd=2.3.5-3ubuntu1
Як видалити пакети без видалення установок?
Щоб видалити програмні пакети без видалення конфігураційних файлів (для подальшого їх використання), використовуйте команду remove як показано.
Sudo apt-get remove vsftpd
Як видалити пакети повністю?
Щоб видалити пакет разом з файлами налаштувань, використовуйте підкоманду purge , як показано нижче.
Sudo apt-get purge vsftpd
Або ви можете об'єднати обидві команди, ось так:
Sudo apt-get remove --purge vsftpd
Як можна очистити місце на диску?
Команда clean використовується для звільнення дискового простору за рахунок видалення отриманих.deb-файлів пакетів у вашому локальному репозиторії.
Sudo apt-get clean
Як завантажити вихідний код пакета?
Щоб тільки завантажити вихідний код пакета, можна використовувати опцію –download-only source з ім'ям пакета, наприклад:
Sudo apt-get --download-only source vsftpd
Як можна завантажити та розпакувати пакет?
Щоб завантажити та розпакувати вихідний код пакета у спеціальну директорію, виконайте таку команду:
Sudo apt-get source vsftpd
Як можна завантажити, розпакувати та скомпілювати вихідний код пакета?
Ви також можете завантажити, розпакувати та скомпілювати вихідний код пакета, використовуючи опцію '–compile', як показано нижче:
Sudo apt-get --compile source goaccess
Як завантажити пакет без встановлення
Використовуючи опцію «download», можна завантажити будь-який пакет, не встановлюючи його. Наприклад, наступна команда лише завантажить пакет nethogs у поточну робочу директорію.
Sudo apt-get download nethogs
Як можна переглянути лог змін (changelog) пакета?
Прапор changelog завантажує лог змін пакета та відображає версію пакета, якщо він встановлений.
Sudo apt-get changelog vsftpd
Як можна виправити зламані залежності?
Команда "check" - інструмент для діагностики, він використовується для оновлення кешу пакетів та перевірки на зламані залежності.
Sudo apt-get check
Як можна знайти та зібрати залежності?
Команда build-dep шукає та встановлює зібрані залежності потрібного пакета. Якщо пакет відсутній у локальному репозиторії, ви отримаєте помилку.
Sudo apt-get build-dep netcat
Як можна автоматично очистити кеш Apt-Get?
Autoclean видаляє все.deb-файли з /var/cache/apt/archives для звільнення вільного місцяна жорсткому диску.
Sudo apt-get autoclean
Як автоматично видалити непотрібні пакети?
Підкоманда autoremove використовується для автоматичного видалення пакетів, які були встановлені в залежності від інших, але зараз вони більше не потрібні. Наприклад, наступна команда видалить встановлений пакет разом із його залежностями.
Sudo apt-get autoremove vsftpd
Інформація люб'язно надана сайтом. Дякую.
| |Що такеApt-Get?
Apt – програма інтерфейсу користувачакомандного рядка для пакувальної системи dpkg, використання якої є кращим способом управління програмним забезпеченням з командного рядка будь-якого дистрибутива. Це основна система керування пакетами в Debian та дистрибутивах Linux на базі Debian, таких як Ubuntu.
У той час як інструмент dpkg формує базовий пакувальний рівень, apt-get і apt-cache надають зручні інтерфейси і здійснюють обробку залежностей. Це дозволяє користувачам просто та раціонально керувати великою кількістю програмного забезпечення.
Даний посібник говорить про основне використання «apt-get» і «apt-cache» та їхні можливості в управлінні ПЗ. Всі приклади розглядаються на хмарному сервері Ubuntu 12.04, але описані дії та техніки можна виконати на будь-якому дистрибутиві, що базується на Debian.
Оновлення бази даних пакета зApt— Get
Apt-get працює з базою даних відомого та доступного програмного забезпечення. Ця команда виконує встановлення, пошук пакетів та інші дії, пов'язані з цією базою даних.
Тому перш ніж розпочати будь-яку пакувальну операцію з apt-get, необхідно переконатися в наявності новітньої локальної копії бази даних.
Оновити базу даних можна за допомогою наступної команди. Apt-get вимагає адміністративних привілеїв у виконанні більшості операцій:
sudo apt-get update
Буде виведено список серверів, із яких витягується інформація. Після цього база даних оновиться.
Оновлення встановлених пакетів за допомогоюApt— Get
Пакети системи можна оновити за допомогою наступної команди:
sudo apt-get upgrade
Для більш повного оновленнявикористовуйте аргумент «dist-upgrade», який вирішує інтелектуальні залежності нових пакетів та оновлює необхідні програмиза рахунок менш важливих:
sudo apt-get dist-upgrade
Встановлення нових пакетів зApt— Get
Якщо ім'я пакета, який потрібно встановити, відомо, його можна встановити за допомогою наступного синтаксису:
sudo apt-get install package1 package2 package3 ...
Можна також встановити кілька пакетів за один раз, що дозволяє отримати все необхідне проектне програмне забезпечення за один крок.
Важливо розуміти, що apt-get встановлює як запитуване ПЗ, але й програми, необхідних його установки чи запуску.
Наприклад, повний пакет текстового редактора vim можна встановити, ввівши:
sudo apt-get install vim
ВилученняпакетузАpt-Get
Щоб видалити пакет, можна використовувати наступну команду:
sudo apt-get remove package_name
Ця команда видаляє пакети, але зберігає конфігураційний файл, якщо пакет знову буде встановлений. Таким чином, установки залишаться неушкодженими, навіть якщо програма не встановлена.
Якщо конфігураційний файл не потрібно зберігати, його можна видалити разом із програмою, використовуючи синтаксис:
sudo apt-get purge package_name
Ця дія видаляє будь-який конфігураційний файл, пов'язаний із пакетом.
Щоб видалити будь-який непотрібний пакет, встановлений автоматично для підтримки іншої програми, введіть таке:
sudo apt-get autoremove
Також можна вказати ім'я пакета після команди autoremove, щоб видалити пакет і його залежності.
Загальні прапориApt— Get
Існує низка різних опцій, які можна вказати за допомогою прапорів. Розглянемо деякі з них.
Щоб здійснити «пробний прогін» процедури з метою дізнатися про її дію, можна використовувати прапор «-s» («simulate»):
sudo apt-get install -s htop
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
strace ltrace
The following NEW packages will be installed:
htop
0 upgraded, 1 uploaded, 0 to remove and 118 not upgraded.
Inst htop (1.0.1-1 Ubuntu:12.04/precise )
Conf htop (1.0.1-1 Ubuntu:12.04/precise )
На місці фактичних дій можна побачити розділи "Inst" та "Conf", які вказують на локацію, куди пакет буде встановлений і налаштований, якщо прибрати прапор "-s".
При необхідності налаштувати автоматичне підтвердження вибору можна використовувати прапор «-у», що автоматично відповідає «так» на всі запитання.
sudo apt-get remove -y htop
Якщо потрібно скачати пакет, але не встановлювати його, можна виконати наступну команду:
sudo apt-get install -d packagename
Дані файли будуть розміщені в "/var/cache/apt/archives".
При необхідності придушити результати можна використовувати прапор «-qq»:
sudo apt-get remove -qq packagename
Пошук пакета за допомогоюApt— Cache
Інструмент упаковки "apt", насправді, є набором пов'язаних безкоштовних інструментів, які використовуються для керування програмним забезпеченням системи.
У той час як "apt-get" використовується для оновлення, встановлення та видалення пакетів, "apt-cache" використовується для запиту інформації в базі даних пакетів.
Щоб знайти потрібні пакети, можна використати таку команду. Зверніть увагу, apt-cache зазвичай не потребує адміністративних привілеїв.
apt-cache search what_you_are_looking_for
Наприклад, якщо потрібно знайти htop, покращену версію top, можна ввести наступне:
apt-cache search htop
aha - ANSI color to HTML converter
htop - interactive processes viewer
Можна шукати й загальніші поняття. У цьому прикладі потрібно знайти програмне забезпечення перетворення mp3:
apt-cache search mp3 convert
abcde - A Better CD Encoder
cue2toc - converties CUE files to cdrdao's TOC format
dir2ogg - audio файл конвертер в форматі ogg-vorbis
easytag - viewing, editing and writing ID3 tags
hpodder - Tool to scan and download
id3v2 - Command line id3v2 tag editor
kid3 - KDE MP3 ID3 tag editor
kid3-qt - Audio tag editor
. . .
Перегляд інформації про пакет зApt— Cache
Щоб переглянути інформацію про пакет, включаючи розширений опис, використовуйте наступний синтаксис:
apt-cache show package_name
Це також надасть інформацію про розмір скачування та необхідні для пакета залежності.
Щоб переконатися, що пакет встановлений, і дізнатися, якому сховищу належить, введіть:
apt-cache policy package_name
Підсумки
Цей посібник надає достатньо інформації для управління здебільшого програмного забезпечення на сервері.
Хоча іноді необхідно вийти за рамки цих інструментів і доступного в репозиторіях програмного забезпечення, більшістю операцій можна керувати за допомогою цих команд.
Tags: ,Іноді виникають ситуації, коли потрібно дізнатися, які пакети встановлені в системі. Це може знадобитися, якщо ви хочете зробити резервну копію встановлених пакетів, перевірити їх цілісність, перенести всі пакети в іншу систему і вирішити багато інших завдань. У Debian можна використовувати кілька методів.
У сьогоднішній статті ми розглянемо як переглянути список встановлених пакетів Debian за допомогою терміналу, в інтерфейсі curses, а також графічний інтерфейс. Такі списки можна використовувати не тільки для резервного копіювання, але й для того, щоб просто перебрати та видалити непотрібні програми, тим самим очистивши систему від сміття.
Найперший спосіб подивитися встановлені пакети Debian, це утиліта dpkg. Вона може застосовуватися не тільки в Debian, але й у всіх, заснованих на ньому дистрибутивах:
dpkg --get-selections | grep -v deinstall
dpkg --get-selections | grep -v deinstall > mylist.txt
Можна також прибрати всю зайву інформацію та зберегти лише імена пакетів:
dpkg-l | grep ^ii | awk "(print $2)" > mylist.txt
Наступний спосіб вирішення цього завдання - використання утиліти dpkg-query. Вона схожа на попередній варіант, але трохи простіша. Така команда відобразить усі встановлені пакети разом із інформацією про них:
Тут також можна вибрати тільки імена пакетів за допомогою опції -f:
dpkg-query -f "$(binary:Package)\n" -W
Третій метод - це утиліта apt, якою ми звикли користуватися для встановлення додатків, вона має команду list:
apt list --installed
apt list --installed | grep python
Ми більш детально розглядали apt у статті. Ще одна цікава можливість apt – подивитися які пакети були встановлені вручну. Для цього наберіть:
apt-mark showmanual
І ще один варіант з використанням apt:
apt-cache pkgnames
Утиліта для керування пакетами aptitude також дозволяє вивести список встановлених пакетів:
aptitude search "~i!~M"
Також aptitude може працювати в режимі curses, що дуже зручно:
Останній спосіб переглянути список встановлених пакетів - це файл /var/lib/apt/extended_states. Це база даних, яка містить встановлені програми debian у такому форматі:
Package: имя_пакета
Architecture: архітектура
Auto-Installed: 0_або_1
cat /var/lib/apt/extended_states
Відновлення списку встановлених пакетів
Багато користувачів створюють список пакетів не просто, щоб подивитися, а для майбутнього відновлення. Якщо ви робили список за допомогою dpkg, його можна дуже просто відновити в системі за допомогою аналогічної команди:
sudo dpkg --clear-selections
$ sudo dpkg --set-selections< mylist.txt
Все дуже просто. Щоб встановити пакети після додавання їх до списку, використовуйте команду:
sudo apt dselect-upgrade
Якщо ж у вас є список імен пакетів, то відновлювати його потрібно трохи по-іншому. Просто передайте всі ці імена команді apt для встановлення:
xargs< mylist.txt apt install -y
Висновки
У цій статті ми розглянули, як переглянути список встановлених пакетів Debian. Це може бути дуже корисним і виконується досить просто. Сподіваюся, що ця інформація була корисною для вас.
Довгий час мене гладив незнання того, як зробити деякі елементарні речі в дебіановських менеджерах пакетів, але, як часто буває, запитати поряд було не в кого, а до написання будь-куди руки не доходили. І ось нарешті питання визріли і я написав своє запитання у дебіанівську розсилку. Природно виявилося, що пропустив щось очевидне, але й дізнався багато неочевидних корисностей, тому вирішив накидати шпаргалку, може кому знадобиться.
Коротка довідка Debian адміністратора
Основне та загальновідоме
Отримання інформації про нові/оновлені пакетиsudo aptitude update
Оновлення
sudo aptitude safe-upgrade
Пошук пакету за іменами пакетів
aptitude search key_word
Пошук пакету за точною назвою
aptitude search "^name$"
Пошук за описом
aptitude search "?description("key_word")"
Інформація про пакет
aptitude show package_name
Встановлення
sudo aptitude install package_name
Вилучення
sudo aptitude remove package_name
Повне видалення (разом із конфігами)
sudo aptitude purge package_name
Очистити кеш завантажених пакетів (звільнити місце)
aptitude autoclean # видаляться лише пакети неактуальних версій aptitude clean # очиститься весь кеш
Встановлення окремо завантаженого/створеного пакета (для створення пакету зі сторонніх вихідних джерел потрібно використовувати утиліту checkinstall з прапором -D)
sudo dpkg -i /path/to/package.deb
Для отримання додаткової інформації
man aptitude sudo aptitude install aptitude-doc-en
і дивимося документацію (/usr/share/doc/aptitude/html/en/index.html), кому швидку довідку за пошуковими шаблонами, тому сюди - /usr/share/doc/aptitude/html/en/ch02s04.html. Якщо ліньки ставити доку, то в мережі вона є .
Вступна на Debian Wiki: wiki.debian.org/Aptitude
А тепер те, що не очевидно чи вимагає повного прочитання документації
1. Як після update подивитися, які пакети будуть оновлені?aptitude search ?upgradable
також можна юзати (якщо поставити)
sudo daptup
але після його встановлення точно буде поводитися і звичайний update
2. Як дізнатися, що змінилося в пакетах, які будуть оновлені?
Можна пробувати
sudo aptitude changelog package_name
для кожного пакета.
Але краще поставити apt-listchanges, тоді перед будь-якою установкою оновлень буде показаний список змін, за замовчуванням налаштування не дуже зручні, тому краще переналаштувати під себе, наприклад, вибрати формат виводу (поки використовую текст, при великих оновленнях напевно pager краще), не надсилати листів, питати підтвердження, виводити всю інформацію. Для цього потрібно запустити
sudo dpkg-reconfigure apt-listchanges
3. Що робити, якщо оновлення щось поламало і потрібно відкотитися?
Відкату немає, можна спробувати знайти попередню версію пакету
sudo aptitude version package_name
та встановити її
sudo aptitude install package_name=version
4. Як знайти всі пакети, встановлені вручну?
є варіант команди (aptitude search "~i!~M"), але на жаль він не дає бажаного результату, тому питання залишається відкритим, є купа способів заснованих на аналізі логів
/var/log/aptitude (+ ротовані шматки) /var/log/installer/initial-status.gz /var/log/dpkg.log (+ ротовані шматки)
але простого і готового рішення немає, так інформація теоретично може бути втрачена при ротаціях, потрібно конфігурувати
5. Як переглянути список файлів у пакеті?
якщо пакет встановлений
dpkg -L package_name
для будь-яких пакетів поставити apt-file та
apt-file list package_name
6. Як подивитися, якому пакету належить файл?
dpkg -S file_name
7. Як видалити всі пакети, де є key у назві пакета?
sudo aptitude purge ~ikey
8. Як видалити конфіги, що залишилися, від видалених пакетів?
sudo aptitude purge ~c
9. Як знайти пакет пакет, в якому міститься файл lib.so:
apt-file search lib.so
10. Як конвертувати rpm пакету deb?
alien --to-deb /path/to/file.rpm
11. Як знайти перелік встановлених ядер?
dpkg --list linux-* | grep ii
12. Як встановити пакет testing або experimental?
На цю тему потрібно писати окремо (наприклад так), але якщо коротко, команди для цього є
sudo aptitude -t testing package_name
або
sudo aptitude package_name/testing
13. Як видалити метапакет, але залишити одну із залежностей?
доведеться почитати документацію про ключ unmarkauto або глянути сюди.
14. Як дізнатися що потрапило в файлову системуповз систему управління пакетами?
Є утиліта cruft, хоча питання інтерпретації результатів (файлу report) поки що відкрите
sudo cruft -d / -r report --ignore /home --ignore /var --ignore /tmp
15. Які є додаткові репозиторії?
Debian - wiki.debian.org/UnofficialRepositories
Ubuntu - безліч всяких