APT (скорочення від Advanced Packaging Tool) – це набір утиліт для встановлення, видалення, оновлення, пошуку пакетів у Linux, а також для керування репозиторіями. APT ще називають пакетним менеджером.
APT використовує репозиторії пакетів. Список репозиторіїв для APT зберігається у файлі /etc/apt/sources.list, а також у директорії /etc/apt/sources.list.d/.
APT використовується в дистрибутивах, заснованих на Dedian та Ubuntu.
Для керування APT існують різні утиліти, Але найпопулярніші їх це утиліти командного рядка apt-get і apt.
У цій статті ми розглянемо, як користуватися командою apt, а також дізнаємося чим відрізняється від apt від apt-get.
Чим відрізняються apt та apt-get
Коротко відповімо на дуже популярне питання, а в чому різниця між командами apt та apt-get?
apt це утиліта, яка з'явилася як альтернатива apt-get. Вона виконує практично ті самі функції, що й apt-get, але з нею простіше і зрозуміліше працювати.
Наприклад, усі команди apt мають простий синтаксис: apt назва_команди. А у apt-get є додаткові команди, наприклад, apt-cache. Таким чином, при використанні apt, користувач не повинен запам'ятовувати додаткові набори команд.
Крім спрощення роботи з командами, apt наочно виводить інформацію, начебто дрібниці, але працювати зручніше. Наприклад, apt вміє показувати прогрес бар, а під час виконання apt updateможна побачити, скільки пакетів можна оновити.
Утиліта apt-get більш функціональна, ніж apt. Але для рядового користувача apt буде більш ніж достатньо.
Команда apt
Синтаксис команди apt наступний:
Sudo apt
Оновити список пакетів
sudo apt updateAPT має список репозиторіїв, з яких відбувається встановлення пакетів. Список зберігається у текстовому файлі /etc/apt/sources.list, а також у директорії /etc/apt/sources.list.d/. За виконання команди apt update, APT проходить за списком репозиторіїв і з кожного репозиторію у списку отримує інформацію про пакети, що у репозиторії. Вся ця інформація зберігається у системі.
Якщо виходить нова версія якогось пакета, то APT не дізнається про це, доки не буде виконана команда apt update. Тому, якщо встановити даний пакет(не виконавши попередньо apt update), буде встановлена та версія пакета, інформація про яку зберігається в системі в даний момент.
Чи потрібно виконувати apt update перед встановленням кожного пакета?
Ні, перед встановленням кожного пакета apt updateзвичайно ж виконувати не слід. Достатньо виконувати apt update періодично. Якщо вам потрібно встановити кілька пакетів, то спочатку можна один раз виконати apt updateа потім вже встановлювати пакети.
Оновити встановлені пакети
Для оновлення пакетів, встановлених у системі, використовується команда:
Sudo apt upgrade
Ця команда лише оновлює пакети до нових версій, але ніколи не видаляє та не встановлює інші пакети.
Є ще одна команда для оновлення пакетів:
Sudo apt full-upgrade
Ця команда виконує оновлення пакетів, а також видаляє або встановлює нові пакети, якщо це потрібно для вирішення залежностей.
Встановити пакет
Щоб встановити пакет, використовується команда:
Sudo apt install
Встановити кілька пакетів
Для встановлення декількох пакетів їх імена записуються через пропуск:
Sudo apt install
Встановити певну версію пакету
Щоб встановити певну версію пакета, потрібно після назви пакета, через знак рівності, вказати необхідну версію:
Sudo apt install =
Видалити пакет
Для видалення встановленого пакета використовується команда:
Sudo apt remove
Видалити пакет та його конфігураційні файли
sudo apt purgeapt purgeпрацює аналогічно apt removeале видаляє ще й конфігураційні файли, що належать до пакету. Це означає, що якщо ви встановили якусь програму, налаштували її, а потім видалили командою apt remove, то конфігураційний файл цієї програми залишиться у системі. Якщо ви встановите цю програму знову, можна буде використовувати попередній конфігураційний файл, оскільки він був видалений.
apt purgeне видаляє конфігураційні файли, що зберігаються у вашій домашній директорії.
Якщо ви видалили пакет командою apt remove, то ви можете виконати apt purgeдля цього вже віддаленого пакета, щоб "додалити" його конфігураційні файли.
Видалити пакети, що не використовуються.
sudo apt autoremoveКоли ви встановлюєте пакет, то часто встановлюються додаткові пакети, що є його залежностями. Якщо ви видалите цей пакет, то залежності залишаться в системі. apt autoremoveвидаляє ці залежності, але ті, які не потрібні іншим встановленим пакетам.
Список пакетів
Команда apt list використовується для виведення списку пакетів за якимось критерієм.
Вивести список встановлених у системі пакетів:
Apt list --installed
Вивести список пакетів, що потребують оновлення (у яких вийшла нова версія):
Apt list --upgradable
Вивести список усіх пакетів доступних для вашої системи:
Apt list --all-versions
Пошук пакетів
apt searchЦя команда виконує пошук зазначеного словау назві пакетів та в описі пакетів. Підтримуються регулярні вирази.
Можна шукати лише за назвами пакетів для цього використовується опція --names-only :
Apt search --names-only
Пошук пакету з використанням регулярних виразів:
Apt search --names-only "^python"
Інформація про пакет
apt showВиводить інформацію про пакет. Відображається версія, розмір, опис, залежність та інша інформація.
Редагування списку репозиторіїв
sudo apt edit-sourcesВідкриває файл /etc/apt/sources.listу текстовому редакторі для редагування, після збереження змін та закриття редактора, виконує перевірку файлу щодо помилок. У разі наявності помилок виводить пропозицію на повторне редагування файлу, щоб виправити помилки.
Таблиця аналогів команд apt та apt-get
Команда apt | Аналог команди apt-get | Опис |
---|---|---|
apt install | apt-get install | Встановити пакет |
apt remove | apt-get remove | Видалити пакет |
apt purge | apt-get purge | Видалити пакет та конфігураційні файли |
apt autoremove | apt-get autoremove | Видалити пакети, що не використовуються. |
apt update | apt-get update | Оновити список пакетів |
apt upgrade | apt-get upgrade | Оновити пакети |
apt full-upgrade | apt-get dist-upgrade | Оновити пакети (видалити та встановити нові, якщо потрібно) |
apt list | Зразковий аналог: dpkg-query --list | Список пакетів |
apt search | apt-cache search | Пошук пакету |
apt show | apt-cache show | Інформація про пакет |
Встановлення та видалення програм є однією з найважливіших речей для користувача комп'ютера. Оскільки нам потрібно якось отримувати нові, потрібні програми, а також видаляти зайві. Але видалення пакетів в Ubuntu має деякі тонкощі. Після видалення можуть залишитися залежності, пакети встановлені як рекомендовані, а також конфігураційні файли.
У цій статті ми розберемо як видалити deb пакет Ubuntu, причому видалити чисто, так, щоб після нього не залишилося слідів в системі. Також поговоримо про повне видалення PPA, оскільки багато пакетів, яких немає в офіційних репозиторіях, ми встановлюємо з PPA.
Найпростіший спосіб видалити пакет Ubuntu, це скористаються однією з графічних утиліт, що поставляються спеціально для цього, наприклад, Synaptic або Центр додатків Ubuntu. Насправді це робиться в пару кліків. Спочатку розглянемо порядок дій у Центрі програм Ubuntu.
Запустити центр додатків ви можете із панелі значків Unity:
Список усіх встановлених пакетів знаходиться на вкладці Встановлено,тут програми розсортовані за категоріями:
Щоб видалити пакет Ubuntu, достатньо натиснути на нього лівою кнопкою миші, і коли з'являтися доступні дії натиснути кнопку видалити:
Для завершення видалення потрібно буде ввести пароль.
Пакет видалено, але не зовсім так, як нам хотілося б. Але про це згодом.
Далі розглянемо пакетний менеджер Synaptic. Це як ні як стороннє програмне забезпечення, але багато його використовують через великий функціонал і зручного інтерфейсу. Якщо програма ще не встановлена, її потрібно встановити за допомогою центру програм або виконавши в терміналі:
sudo apt install synaptic
Запустити програму можна через термінал, виконавши команду:
Переглянути встановлені пакети ви можете вибравши вкладку стан, а потім вибравши Встановлені:
Видалити deb ubuntu ви можете просто натиснувши правою кнопкоюмиші та в контекстному меню на потрібному пакеті та вибравши відзначити для видаленняабо відзначити для повного видалення:
Програма покаже, які пакети будуть видалені, це ті пакети, які залежать від нашого пакета:
Тепер, щоб завершити видалення, залишилося натиснути кнопку Застосувати:
Тепер програма покаже, які пакети будуть видалені. І піде процес видалення:
Просто видалення та повне видалення відрізняється лише тим, що при повному видаленні видаляються файли конфігурації. Але проблема цих інструментів у тому, що пакети встановлені як залежності та рекомендовані до програми не видаляються та залишаються в системі. Така поведінка спостерігається як у Synaptic, так і в Центрі додатків Ubuntu. Тому ми переходимо до опису самого гнучкого способу – видалення пакетів Ubuntu у терміналі.
Як видалити пакет Ubuntu у терміналі
У нових версіях Ubuntuдля керування пакетами, а також видалення можна використовувати новий менеджерпакетів – apt. Команда видалення виглядає так:
sudo apt remove имя_пакета
Буде виконано повне видалення пакета, включаючи конфігураційні файли та залежності, лише рекомендовані програми залишаться.
Якщо ви хочете використовувати apt-get, щоб видалити deb ubuntu, то порядок дій трохи інший. Для звичайного видаленняпакету виконайте:
sudo apt-get remove имя_пакета
Щоб видалити пакет разом з конфігураційними файлами, виконайте:
sudo apt-get purge имя_пакета
А щоб також видалити залежності, встановлені разом з пакетом, потрібно після однієї з попередніх команд виконати:
sudo apt-get autoremove
Буде видалено не тільки явно зазначені залежності, але й програми встановлені як рекомендовані.
Ну з основами розібралися, тепер перейдемо до складніших ситуацій. Що якщо ви встановлювали програму з файлу deb і тепер не знаєте точно, як називається її пакет, щоб видалити?
Це дуже просто дізнатися, наприклад по виконуваному файлу, допустимо виконуваний файлпрограми TimeShift знаходиться за адресою /usr/bin/timeshift, тепер дізнаємося про її пакет:
sudo dpkg -S /usr/bin/timeshift
timeshift: /usr/bin/timeshift
Як бачите, пакет так і називається - timeshift. Тепер можна видалити програму Ubuntuодним з вище описаних способів.
Дуже часто ми встановлюємо недостатнє нам програмне забезпечення з PPA, але не всі ці пакети потрібні нам протягом тривалого часу, а при оновленні системи можуть навіть викликати помилки. То як же видалити всі пакети встановлені з PPA? Для цього є спеціальна утиліта: ppa-purge.
Якщо її ще не встановлено, встановлюємо командою:
sudo apt install ppa-purge
Тепер, щоб видалити всі пакети встановлені з певного ppa, використовуйте:
sudo ppa-purge -i ppa:ppaowner/ppaname
ppa:ppaowner/ppaname - зазвичай у такому форматі записуються всі PPA. Протокол:власник/ім'я.
Дізнатися список репозиторіїв можна у програмі джерела додатків:
Такою командою можна одним махом видалити пакети ubuntu, встановлені з ppa:
find /etc/apt/sources.list.d -type f-name "*.list" -print0 | \
while read -d $"\0" file; do awk -F/ "/deb / && /ppa\.launchpad\.net/ (print "sudo ppa-purge ppa:"$4"/"$5)" "$file"; done
Якщо ви встановлювали додаток з вихідних кодів, видалити його набагато складніше, тому що він не контролюється менеджером пакетів, і відповідно система не знає які файли йому належать.
Але все-таки метод є, як правило, розробники у файлі сценаріїв makefile, крім мети install реалізують мету uninstall, яка дозволяє виконати зворотне дію.
Google, неясно, як я знаходжу нові програми для встановлення (з Інтернету) за допомогою apt-get (що напрочуд потужне і просте з іншого дистрибутива Linux).
Я використовую Ubuntu Server 8.04 LTS (успадкована система, яка використовується для деякої випадкової роботи), тому немає графічного інтерфейсу.
У когось є швидка порадатут?
Я завжди використовую package.ubuntu.com
Також ви можете використовувати apt-cache search для apt-cache search у командному рядку. Або ви можете використовувати диспетчер пакетів GUI (Ubuntu Software Center/Synaptic) для пошуку програмного забезпечення.
Якщо ви шукаєте налаштування nvidia.
Apt-cache search nvidia settings
Nvidia-settings - Werkzeug für die Konfiguration des NVIDIA-Grafiktreibers nvidia-settings-updates - Tool of configuring the NVIDIA graphics driver
Ви бачите 2 пакети nvidia-settings та nvidia-settings-updates .
Щоб знайти пов'язаний двійковий файл із пакетом nvidia-settings .
Dpkg-L nvidia-settings | grep bin
/usr/bin /usr/lib/nvidia-settings/bin /usr/lib/nvidia-settings/bin/nvidia-settings
nvidia-settings – це двійкове ім'я для запуску програми.
З двійковими файлами, зокрема, є програма, яка автоматично запускається, якщо ви запустите команду, яка не встановлена. Наприклад,
$ bonnie++ The program "bonnie++" є currently no installed. Ви можете налаштувати цей тип: sudo apt-get install bonnie++
Крім цього, існують пошукові запити: пошук apt-cache search
Я думаю, ви маєте на увазі ім'я двійкової програми, включене до пакету. Я використовую цю техніку, щоб знайти це:
просто введіть dpkg -L
Давайте подивимося приклад:
Anwar@edubuntu-lenovo:~$dpkg -L gnome-screenshot /. /usr /usr/bin /usr/bin/gnome-screenshot /usr/share /usr/share/GConf /usr/share/GConf/gsettings /usr/share/GConf/gsettings/gnome-screenshot.convert /usr/share /applications /usr/share/applications/gnome-screenshot.desktop /usr/share/man /usr/share/man/man1 /usr/share/man/man1/gnome-screenshot.1.gz /usr/share/gnome -screenshot /usr/share/gnome-screenshot/gnome-screenshot.ui /usr/share/glib-2.0 /usr/share/glib-2.0/schemas /usr/share/glib-2.0/schemas/org.gnome.gnome -screenshot.gschema.xml /usr/share/doc /usr/share/doc/gnome-screenshot /usr/share/doc/gnome-screenshot/copyright /usr/share/doc/gnome-screenshot/NEWS.gz /usr /share/doc/gnome-screenshot/changelog.Debian.gz
Зверніть увагу, що ім'я gnome-screenshot package – gnome-screenshot .
Ти питав
Чи є стандартний спосіб дізнатися
Для бажаної програми?
Іноді термінал може вказати ваше ім'я пакета, який потрібно встановити, щоб мати потрібну програму. Це відбувається, коли програма знаходиться у стандартному репозиторії, і ви включили цей репозиторій.
Наприклад, якщо я gnome-documents, коли такий пакет не встановлений, термінал скаже наступне:
Anwar@edubuntu-lenovo:~$ gnome-documents У програмі "gnome-documents" не вказано. Ви можете install it by typing: sudo apt-get install gnome-documents
Але в цьому випадку я маю хоча б знати назву програми
Ви можете спробувати програму «aptitude» з командного рядка. Це графічний менеджер пакетів. Не забудьте додати sudo до програми для будь-яких реальних установок. "sudo aptitude". Ви також можете використовувати aptitude так само, як apt-get; "sudo aptitude install". Я віддаю перевагу apt-get для одиночних пакетів, для яких знаю імена.
Крім того, ви просто на командному рядку? Якщо у вас є робочий стіл, ви можете використовувати System -> Preferences - Synaptic або Ubuntu Software Center. Вони працюють майже однаково, але вони мають більш простий пакетний пошук.
Ви можете отримати (довгий) список пакетів, набравши apt-get install, а потім двічі натиснувши TAB (для автозаповнення). Це обмежено, тому що воно не говорить вам, що роблять пакети (Synaptic або Software Center було б краще для цього), але це може бути корисним, коли ви не можете згадати точне ім'я пакета. Ви також можете ввести першу частину імені пакета (наприклад, OpenOffice), щоб отримати більш короткий список більш релевантних пакетів.
Використовуйте інструмент командного рядка, якщо ви знаєте потрібне ім'япакет. Я не використовую програмний центр. Ви можете отримати ім'я пакета через програмний центр і використовувати його в терміналі, якщо вам дійсно потрібно використовувати інструмент apt-get із командного рядка. І зазвичай ім'я пакета збігається з ім'ям програми.
ви можете запустити (бажано ~ ~ / .bashrc)
. /etc/bash_completion
при введенні:
Sudo apt-get in
він запропонує встановлення, а потім почне вводити частину імені – наприклад, nvidia
і ви побачите доступні варіантипочинаючи з nvidia