Использование APT. Команды apt и apt-get

Безопасность 23.09.2020
Безопасность

Иногда возникают ситуации, когда нужно узнать какие пакеты установлены в системе. Это может понадобиться если вы хотите сделать резервную копию установленных пакетов, проверить их целостность, перенести все пакеты в другую систему и для решения многих других задач. В 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. Это может быть очень полезно и выполняется достаточно просто. Надеюсь, эта информация была полезной для вас.

Advanced Packaging Tool – набор утилит для управления программными пакетами в операционных системах основанных на Debian. APT предоставляет дружественную надстройку над DPKG и позволяет:

    Устанавливать, удалять и обновлять пакеты

    Решать зависимости

    Искать пакеты по заданным критериям

    Просматривать подробную информацию о пакете

    Манипулировать ключами от репозиториев

APT является одной из базовых программ и включена в состав Ubuntu.

Настройки

Все файлы настроек APT хранятся в директории /etc/apt .

apt.conf

/etc/apt/apt.conf – основной файл настроек, используемый всеми инструментами из состава APT. Описание всех возможных настроек и опций можно прочитать в документации к нему:

man apt.conf

apt.conf.d

Директория содержащая в себе файлы конфигурации, аналогичные по синтаксису. При помощи этой директории можно быстро и удобно манипулировать настройками APT добавляя или удаляя подготовленные файлы с настройками.

auth.conf

sources.list

sources.list.d

Директория с файлами репозиторий, по назначению аналогичных sources.list. Каждый репозиторий описывается в отдельном файле.

Использование

В APT входит несколько утилит, выполняющих отдельные задачи.

Начиная с версии Ubuntu 16.04 доступна новая утилита apt , которая содержит наиболее часто используемые команды из apt-get и apt-cache . Утилита apt предназначена для пользователей, в то время как apt-get можно рассматривать как как инструмент более низкого уровня.

apt-get

apt-get это утилита управления пакетами. apt-get требует прав суперпользователя для своей работы.

Основные команды:

    Update - Обновить информацию о пакетах, содержащихся в репозиториях.

    Install foo - Установить пакет foo. Скачивание, установка и настройка происходят автоматически. Если для настройки пакета foo нужны дополнительные сведения, будет показан запрос к пользователю.

    Upgrade - Обновление пакетов, для которых в репозитории доступны новые версии.

    Dist-upgrade - Обновление пакетов, требующих разрешения зависимостей (установка дополнительных или удаление конфликтующих пакетов).

    Remove foo - Удаление пакета foo из системы.

    Purge foo - Удаление пакета foo и очистка системы от его конфигурационных файлов. Файлы настроек в домашних каталогах пользователей удалены не будут .

    Autoremove - Удаление пакета, который более не нужен в системе. Используется для очистки системы от ненужных пакетов. Факт, что пакет более не нужен, определяется следующим образом: если пакет был установлен не сам по себе, а как зависимость для другого пакета, который впоследствии был удалён, значит этот пакет тоже уже не нужен в системе.

    Source foo - Получение исходных текстов пакета foo.

Ubuntu 16.04 уже вышла и предоставляет своим пользователям много очень интересных изменений, таких как поддержка файловой системы BSD - ZFS, поддержка новой технологии установки пакетов - snap и много других. Но одна вещь, о которой вы, скорее всего, еще не слышали, потому что такие мелочи часто теряются - это apt.

Что такое apt? Это новый менеджер пакетов для Ubuntu, готовый взять на себя работу apt-get. Он разрабатывался, чтобы быть более дружелюбным, эффективным и безопасным. Так что же задумали в Canonical представляя новый пакетный менеджер? Есть ли на самом деле отличия apt vs apt-get? Это мы и будем выяснять в сегодняшней статье.

Apt был реализован, чтобы упростить работу с менеджером пакетов и объединить несколько команд в одну. Функционал apt-get был переработан, таким образом, чтобы правильно работать в apt.

Несмотря на то что эти новые команды созданы, чтобы работать аналогично apt-get, но они основаны на новом коде, для взаимодействия с пакетами.

Основной причиной введения apt, является сама суть Ubuntu - простота и удобство использования. Хотят ли люди признавать или нет, но apt-get - устаревший инструмент и практичность его применения очень сомнительна. Apt был разработан с нуля, чтобы быть еще эффективнее, он предназначен быть приятным для новых пользователей.

Apt vs Apt-get. В чем различия?

Apt или apt-get. Так в чем же разница между этими двумя решениями? Для начала вам больше не нужно использовать apt-get autoremove, чтобы очистить кеш пакетов. Также вам не нужно вводить apt-cache search для поиска пакетов.

Эти команды были заменены на apt search и apt remove. Главное отличие apt - в том, что оно заменяет все команды apt-get, apt-cache и т д. Вся функциональность объедениена в одной утилите.

Хотя это не единственное отличие, от apt-get. Здесь улучшены прогресс бары установки программного обеспечения. Также поддерживаются некоторые дополнения, которые делают утилиту умнее предыдущей. Например, при обновлении источников программного обеспечения с помощью apt-get нет простого способа посмотреть список пакетов доступных к обновлению. Вы можете просто выполнить sudo apt-get update, а затем:

sudo apt list-upgradable

Конечно, мелочи, но приятно. Также были добавлены новые, современные цвета вывода, и в целом установка пакетов проходит быстрее. Canonical не спешит отказываться от apt-get, но они сделают это позитивным изменением.

Новые команды Apt

Вот список поддерживаемых apt команд, взятый прямо из вывода --help. Эти команды очень похожи на реализацию apt-get и apt-cache, но более упорядочены и сгруппированы.

Основные команды:

  • list - список пакетов
  • search - поиск пакетов по имени
  • show - показать подробную информацию о пакете
  • update - обновить списки доступных пакетов
  • install - установить пакет
  • remove - удалить пакет
  • upgrade - установить доступные новые версии пакетов
  • full-upgrade - полное обновление системы
  • edit-sources - редактировать файл источников программного обеспечения

Более подробную информацию вы найдете, выполнив man apt в терминале. Хранящаяся там информация поможет вам досконально изучить новую утилиту.

Выводы

Apt-get проверенная и надежная часть менеджера программного обеспечения. Этот инструмент используется на протяжении большого времени и поставляется по умолчанию во многих релизах Ubuntu и Debian. Мы всегда его использовали когда нужно было обновить что-то, обновить программное обеспечение или даже просто очистить систему от мусора.

Тем не менее она устаревает. Менеджер пакетов уже не отвечает всем потребностям пользователей, а поэтому он медленно заменяется на apt. Разработчики Ubuntu понимают, что им нужно обновить свой пакетный менеджер, сделать его более простым, элегантным и безопасным. Но пока в системе существуют обе утилиты и выбирать что использовать apt или apt-get предстоит вам. Будете ли вы использовать новый менеджер пакетов? Или уже используете?

APT (Advanced Packaging Tool ) – это утилита в Debian -подобных системах, выполняющая установку, обновление пакетов и отслеживание их зависимостей. Целью создания программы была автоматизация процесса управления пакетами, в частности обновление и обслуживание зависимостей, что в случае прямой работы с менеджером dpkg происходило в ручном режиме. Непосредственно манипуляции с пакетами выполняются при помощи программы apt-get , основные команды для работы с которой будут рассмотрены ниже.

Общая структура команды apt-get

apt-get [опции] команда пакет1 пакет2 … пакетN

Приведенные ниже опции могут быть полезными при работе с apt-get :

Обновление списка доступных для установки пакетов

Выполняется данное действие при помощи команды:

Apt-get update

Обновление списка особо важно, если необходимо установить наиболее свежую и стабильную версию пакета. При выполнении этой команды, программа просматривает архивы, указанные в файле /etc/apt/sources.list .

Установка пакета

Для того, чтобы установить какой-либо пакет, используется команда:

Apt-get install packagename

В результате, APT произведет поиск свежей версии указанного пакета и проверит, есть ли зависимости у него. В случае наличия зависимостей, будет выведен их список и предложение установки.

Root@vps:~# apt-get install aee Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 The following NEW packages will be installed: aee libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 0 upgraded, 6 newly installed, 0 to remove and 44 not upgraded. Need to get 181 kB/1297 kB of archives. After this operation, 4366 kB of additional disk space will be used. Do you want to continue ?

В случае отсутствия зависимостей, процесс установки произойдет автоматически без вывода каких-либо вопросов.

Также, в момент ввода команды для установки пакетов можно указать названия пакетов, которые необходимо удалить. Для этого в конце имени удаляемого пакета необходимо добавить дефис. Пример такого способа установки/удаления приведен ниже:

Root@vps:~# apt-get install aee htop- Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 The following packages will be REMOVED: htop The following NEW packages will be installed: aee libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 0 upgraded, 6 newly installed, 1 to remove and 43 not upgraded. Need to get 1297 kB of archives. After this operation, 4157 kB of additional disk space will be used. Do you want to continue ?

Как видно из примера, пакет aee подготовлен для установки, а пакет htop – для удаления.

Переустановка пакета

При возникновении необходимости переустановки пакета (повреждение файлов, появление более новой версии), её можно выполнить при помощи следующей команды:

Apt-get --reinstall install packagename

Удаление пакета

Есть два варианта удаления пакетов:

  • Удаление пакета за исключением конфигурационных файлов (если есть).

Обычно данный вариант может потребоваться в случае, если в дальнейшем планируется повторная установка этого пакета. Такой способ удаления выполняется командой:

Apt-get remove packagename

Стоит также отметить, что если удаляемый пакет имеет зависимости, то он будет удален вместе с ними.

  • Полное удаление пакета

В отличие от первого способа, будут удалены все файлы, которые имеют отношение к удаляемому пакету, включая и конфигурационные. В этом случае, используется команда:

Apt-get --purge remove packagename

Пакеты, которые отмечены для полного удаления, имеют в конце своего названия символ «*»

  • Удаление и установка в одной команде

Помимо этого, при удалении можно отметить перечень пакетов для установки. Для этого необходимо указать “+ ” в конце названия пакета. Пример такой команды приведен ниже:

Root@vps:~# apt-get --purge remove aee screen+ Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: aee* The following NEW packages will be installed: screen 0 upgraded, 1 newly installed, 1 to remove and 43 not upgraded. Need to get 624 kB of archives. After this operation, 975 kB of additional disk space will be used. Do you want to continue ?

Обновление пакетов

Apt-get update

Это позволит актуализировать информацию о доступных пакетах и их версиях. После выполнения этой команды можно приступить непосредственно к обновлению установленных пакетов в системе. Делается это командой:

Apt-get -u upgrade

Указанный параметр -u используется для того, чтобы получить полный список пакетов, которые будут подготовлены для обновления.

Обновление версии дистрибутива

В случае появления новой версии установленного у вас ОС, то можно выполнить «апгрейд» целиком всей системы при помощи команды.

Рекомендуем почитать

Наверх