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 updateУ APT есть список репозиториев, из которых происходит установка пакетов. Список хранится в текстовом файле /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++" is currently not installed. You can install it by typing: 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 The program "gnome-documents" is currently not installed. You can 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