Иногда бывает очень полезно узнать установлена ли определенная программа на вашем компьютере или ноутбуке. Конечно, можно просто попытаться выполнить программу, но в этом руководстве я расскажу как проверить установлен ли пакет ubuntu с помощью специальных инструментов, встроенных в систему.
Мы рассмотрим способы как для Ubuntu, так и для других популярных дистрибутивов Linux.
В Ubuntu для управления пакетами используется утилита dpkg, с помощью нее можно узнать всю информацию об установленных пакетах, в том числе проверить установлен ли пакет Ubuntu. Для этого есть опция -s. Например, если нужно узнать установлен ли пакет firefox, выполните:
dpkg -s firefox
Как видите, браузер установлен — installed — ok. Тут можно также узнать версию пакета Ubuntu. То же самое можно сделать с помощью команды dpkg-query:
dpkg-query -l firefox
Утилита dpkg может намного больше. Чтобы посмотреть установленные пакеты Ubuntu выполните команду:
dpkg --get-selections
Список может быть очень длинным, в зависимости от количества установленных в системе пакетов. С помощью wc мы можем подсчитать общее количество установленных пакетов:
dpkg --get-selections | wc -l
Также можно отфильтровать только что полученный список с помощью grep чтобы узнать установлен ли пакет или пакеты. Это может быть полезно если вы не знаете полное имя пакета. Например, мы хотим узнать какие пакеты из набора gcc уже установлены:
dpkg --get-selections | grep gcc
Также можно получить все файлы пакета, используя параметр -L:
dpkg -L gcc-5
Но это мы рассматривали более подробно в другой статье. А теперь поговорим о том, как выполняется все выше перечисленное в дистрибутиве на базе rpm.
Проверить установлен ли пакет Linux
В операционных системах на базе менеджера пакетов rpm тоже можно проверить установлен ли пакет. Для этого используется утилита rpm. Просто выполните утилиту с ключом -q:
rpm -q chromium
Если нужна более подробная информация, можно добавить опцию -i. Здесь вы можете узнать версию пакета linux, а также много полезной информации:
rpm -qi chromium
Вывести все установленные пакеты можно с помощью опции -a:
rpm -qa
Затем, так же как и в предыдущем примере можно все отфильтровать с помощью grep:
rpm -qa | grep gcc
Выводы
Пока что это все, теперь вы знаете как узнать установлен ли пакет linux в ubuntu и в других популярных дистрибутивах. Надеюсь, моя маленькая инструкция была вам полезной.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
Об авторе
Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.
dpkg-query --showformat='${db:Status-Status}'
This produces a small output string which is unlikely to change and is easy to compare deterministically without grep
:
pkg=hello
status="$(dpkg-query -W --showformat='${db:Status-Status}' "$pkg" 2>&1)"
if [ ! $? = 0 ] || [ ! "$status" = installed ]; then
sudo apt install $pkg
fi
The $? = 0
check is needed because if you’ve never installed a package before, and after you remove certain packages such as hello
, dpkg-query
exits with status 1 and outputs to stderr:
dpkg-query: no packages found matching hello
instead of outputting not-installed
. The 2>&1
captures that error message too when it comes preventing it from going to the terminal.
For multiple packages:
pkgs='hello certbot'
install=false
for pkg in $pkgs; do
status="$(dpkg-query -W --showformat='${db:Status-Status}' "$pkg" 2>&1)"
if [ ! $? = 0 ] || [ ! "$status" = installed ]; then
install=true
break
fi
done
if "$install"; then
sudo apt install $pkgs
fi
The possible statuses are documented in man dpkg-query
as:
n = Not-installed
c = Config-files
H = Half-installed
U = Unpacked
F = Half-configured
W = Triggers-awaiting
t = Triggers-pending
i = Installed
The single letter versions are obtainable with db:Status-Abbrev
, but they come together with the action and error status, so you get 3 characters and would need to cut it.
So I think it is reliable enough to rely on the uncapitalized statuses (Config-files
vs config-files
) not changing instead.
dpkg -s
exit status
This unfortunately doesn’t do what most users want:
pkgs='qemu-user pandoc'
if ! dpkg -s $pkgs >/dev/null 2>&1; then
sudo apt-get install $pkgs
fi
because for some packages, e.g. certbot
, doing:
sudo apt install certbot
sudo apt remove certbot
leaves certbot
in state config-files
, which means that config files were left in the machine. And in that state, dpkg -s
still returns 0
, because the package metadata is still kept around so that those config files can be handled more nicely.
To actually make dpkg -s
return 1 as desired, --purge
would be needed:
sudo apt remove --purge certbot
which actually moves it into not-installed
/dpkg-query: no packages found matching
.
Note that only certain packages leave config files behind. A simpler package like hello
goes directly from installed
to not-installed
without --purge
.
Tested on Ubuntu 20.10.
Python apt
package
There is a pre-installed Python 3 package called apt
in Ubuntu 18.04 which exposes an Python apt interface!
A script that checks if a package is installed and installs it if not can be seen at: How to install a package using the python-apt API
Here is a copy for reference:
#!/usr/bin/env python
# aptinstall.py
import apt
import sys
pkg_name = "libjs-yui-doc"
cache = apt.cache.Cache()
cache.update()
cache.open()
pkg = cache[pkg_name]
if pkg.is_installed:
print "{pkg_name} already installed".format(pkg_name=pkg_name)
else:
pkg.mark_install()
try:
cache.commit()
except Exception, arg:
print >> sys.stderr, "Sorry, package installation failed [{err}]".format(err=str(arg))
Check if an executable is in PATH
instead
See: How can I check if a program exists from a Bash script?
See also
- https://askubuntu.com/questions/165951/dpkg-get-selections-shows-packages-marked-deinstall
- https://askubuntu.com/questions/423355/how-do-i-check-if-a-package-is-installed-on-my-server
Это краткое руководство объясняет, как вывести список всех установленных пакетов Linux из командной строки с примерами.
Команды для отображения всех установленных пакетов различаются в зависимости от типа используемого вами диспетчера пакетов.
Я включил примеры команд для всех популярных менеджеров пакетов.
Содержание
- 1. Как вывести список установленных пакетов на Arch Linux с помощью команды pacman
- 2. Как вывести c писок установленных пакетов в Alpine Linux с помощью команды apk.
- 3. Перечислим установленные пакеты в Debian, Ubuntu с помощью команды apt.
- 4. Перечислим установленные пакеты в Debian, Ubuntu с помощью команды dpkg.
- 5. Перечислим установленные пакеты в RHEL, Fedora, CentOS с помощью команды yum.
- 6. Перечислим установленные пакеты в RHEL, Fedora, CentOS с помощью команды dnf.
- 7. Как вывести список установленных пакетов в openSUSE с помощью команды zypper.
- 8. Как вывести список установленных пакетов в Linux с помощью команды rpm.
- 9. Как вывести список пакетов, установленных с помощью Snap на Linux.
- 10. Как вывести список пакетов, установленных с помощью flatpak на Linux.
1. Как вывести список установленных пакетов на Arch Linux с помощью команды pacman
Pacman – это дефолтный менеджер пакетов для Arch Linux и его производных, таких как Manjaro Linux.
Чтобы вывести список всех установленных пакетов с помощью pacman на Arch Linux и его вариантах, запустите:
$ pacman -Q
Если вы хотите просмотреть страницу вывода с пролистыванием, направьте вывод в команду more, как показано ниже:
$ pacman -Q | more
Чтобы перечислить только явно установленные пакеты и версии:
$ pacman -Qe
Чтобы вывести только общее количество установленных пакетов в Arch Linux, направьте вывод pacman в команду wc:
$ pacman -Q | wc -l
134
Как видно из вышеприведенного вывода, я установил 134 пакета в своей системе Arch Linux.
2. Как вывести cписок установленных пакетов в Alpine Linux с помощью команды apk.
Apk, сокращение от Alpine Package Manager, является менеджером пакетов по умолчанию для Alpine Linux.
Команда для просмотра списка установленных пакетов в Alpine Linux:
$ apk info
Если вы хотите просмотреть список установленных пакетов, а также номер версии и описание пакета, используйте флаг -vv, как показано ниже:
$ apk info -vv
Вывод:
lm_sensors-3.4.0-r6 - Collection of user space tools for general SMBus access and hardware monitoring.
man-1.14.3-r0 - dummy package for upgrade compatibility. this can safely be removed
libcrypto1.1-1.1.1i-r0 - Crypto library from openssl
libssl1.1-1.1.1i-r0 - SSL shared libraries
[...]
Чтобы перечислить только общее количество всех установленных пакетов в Alpine Linux, направьте вывод информации об apk команде wc, как показано ниже:
$ apk info | wc -l
86
3. Перечислим установленные пакеты в Debian, Ubuntu с помощью команды apt.
Apt предоставляет интерфейс командной строки высокого уровня для системы управления пакетами в Debian, Ubuntu и других системах на основе Debian.
Чтобы отобразить список установленных пакетов в Debian, Ubuntu, Linux Mint и других системах на основе DEB, запустите:
$ apt list --installed
Отобразите общее количество установленных пакетов в системах на основе Debian, направьте вывод команды apt в команду wc, как показано ниже:
$ apt list --installed | wc -l
2575
4. Перечислим установленные пакеты в Debian, Ubuntu с помощью команды dpkg.
Dpkg – это инструмент командной строки для установки, сборки, удаления пакетов Debian и управления ими.
Чтобы вывести список всех установленных пакетов с версиями и подробностями с помощью команды dpkg, выполните:
$ dpkg -l
Кроме того, вы можете использовать команду dpkg-query для вывода списка всех установленных пакетов Debian.
$ dpkg-query -l
Укажите только общее количество установленных пакетов в системах на основе Debian:
$ dpkg -l | wc -l
2668
$ dpkg-query -l | wc -l
2668
5. Перечислим установленные пакеты в RHEL, Fedora, CentOS с помощью команды yum.
Yum, сокращение от Yellowdog Updater, Modified, – это утилита управления из командной строки для установки и управления пакетами в системах на основе Red Hat.
Теперь он заменен на dnf в последних версиях RHEL и CentOS.
Чтобы найти список установленных пакетов в Fedora, RHEL и его клонах, таких как CentOS, запустите:
$ yum list installed
Выведите только общее количество установленных пакетов с помощью команд yum и wc:
$ yum list installed | wc -l
347
6. Перечислим установленные пакеты в RHEL, Fedora, CentOS с помощью команды dnf.
DNF – это версия YUM следующего поколения, и он был менеджером пакетов по умолчанию, начиная с Fedora 22, RHEL 8 и CentOS 8.
Использование DNF такое же, как и в Yum.
Чтобы найти список установленных пакетов в RHEL, Fedora, CentOS с помощью dnf, запустите:
$ dnf list installed
Если вы хотите отобразить только общее количество пакетов с помощью команды dnf, запустите:
$ dnf list installed | wc -l
7. Как вывести список установленных пакетов в openSUSE с помощью команды zypper.
Zypper – это менеджер пакетов командной строки по умолчанию для установки и управления пакетами в SUSE и openSUSE.
Чтобы просмотреть список установленных пакетов в openSUSE с помощью zypper, выполните:
$ zypper se --installed-only
8. Как вывести список установленных пакетов в Linux с помощью команды rpm.
Команда RPM, сокращение от Red Hat Package Manager, используется для установки и управления приложениями из командной строки в системах на основе Redhat.
Чтобы вывести список всех пакетов RPM, установленных в вашей системе, выполните:
$ rpm -qa
Чтобы просмотреть вывод с прокруткой, перенаправьте вывод в команду more:
$ rpm -qa | more
Вы также можете вывести все установленные пакеты, самые свежие из которых будут находится вверху, используя флаг –last, как показано ниже:
$ rpm -qa --last
Следующие два метода являются универсальными.
Вы можете использовать эти команды в любых системах, в которых установлены инструменты Snap или Flatpak.
9. Как вывести список пакетов, установленных с помощью Snap на Linux.
Snap – это система развертывания программного обеспечения и управления пакетами, разработанная Canonical.
Чтобы вывести список всех приложений Snap, установленных в вашей системе, запустите:
$ snap list
Пример вывода:
Иногда, необходимо найти установленный пакет или вывести список все установленных пакетов на вашем сервере Linux. Эта статья «Показать все установленные пакеты в Linux» поможет вам как найти все установленные пакеты на системах основанных на RedHat’s и Debian’s.
Показать все установленные пакеты в CentOS/RedHat/Fedora
Используйте следующую команду, чтобы вывести список всех установленных пакетов на CentOS/RedHat/Fedora:
# rpm -qa
или
# yum list installed
Если нужно найти конкретный установленный пакет, то можно использовать команду:
# rpm -qa | grep nginx
Показать все установленные пакеты в Ubuntu/Debian
Используйте следующую команду, чтобы вывести список всех установленных пакетов на Ubuntu и Debian:
# dpkg --get-selections
Если нужно найти конкретный установленный пакет, то можно использовать команду:
# dpkg --get-selections | grep nginx
Так же, можно использовать:
# dpkg --list
Для конкретного пакета, это будет выглядеть так:
# dpkg --list 'apache*'
Вот и все, очень просто и полезно. А я завершаю свою тему «Показать все установленные пакеты в Linux».
-
Архив новостей
Архив новостей
-
Свежие записи
-
Pull/Push AWS ECR образов через AWS Route53 CNAME
17.11.2021 -
openpgp: signature made by unknown entity в Terraform
09.11.2021 -
Установка Terraformer в Unix/Linux
31.05.2021 -
Установка ArgoCD в Unix/Linux
06.01.2021 -
Установка tfswitch в Unix/Linux
08.12.2020
-
Pull/Push AWS ECR образов через AWS Route53 CNAME
-
Мета
- Войти
- Лента записей
- Лента комментариев
- WordPress.org
apt
— это утилита командной строки для установки, обновления, удаления и иного управления пакетами deb в Ubuntu, Debian и связанных с ними дистрибутивах Linux. Он сочетает в себе наиболее часто используемые команды из инструментов apt-get
и apt-cache
с разными значениями по умолчанию некоторых параметров.
apt
предназначен для интерактивного использования. Отдавайте предпочтение сценариям apt-get
и apt-cache
в вашей оболочке, поскольку они обратно совместимы между различными версиями и имеют больше параметров и функций.
Большинство apt
команд необходимо запускать от имени пользователя с sudo
привилегиями.
В этом руководстве вы можете узнать все о apt
командах в Linix системе.
Обновление индекса пакета ( apt update
)
Индекс пакетов APT — это, по сути, база данных, в которой хранятся записи о доступных пакетах из репозиториев, включенных в вашей системе.
Чтобы обновить индекс пакета, выполните команду ниже. Это вытянет последние изменения из репозиториев APT:
sudo apt update
Всегда обновляйте индекс пакетов перед обновлением или установкой новых пакетов.
Обновление пакетов ( apt upgrade
)
Регулярное обновление вашей системы Linux является одним из наиболее важных аспектов общей безопасности системы.
Чтобы обновить установленные пакеты до последних версий, запустите:
sudo apt upgrade
Команда не обновляет пакеты, требующие удаления установленных пакетов.
Если вы хотите обновить один пакет, передайте имя пакета:
sudo apt upgrade package_name
Полное обновление ( apt full-upgrade
)
Разница между upgrade
и full-upgrade
заключается в том, что последний удалит установленные пакеты, если это необходимо для обновления всей системы.
sudo apt full-upgrade
Будьте особенно осторожны при использовании этой команды.
Установка пакетов ( apt install
)
Установка пакетов так же проста, как запуск следующей команды:
sudo apt install package_name
Если вы хотите установить несколько пакетов одной командой, укажите их в виде списка, разделенного пробелами:
sudo apt install package1 package2
Чтобы установить локальные файлы deb, укажите полный путь к файлу. В противном случае команда попытается получить и установить пакет из репозиториев APT.
sudo apt install /full/path/file.deb
Удаление пакетов ( apt remove
)
Чтобы удалить установленный пакет, введите следующее:
sudo apt remove package_name
Вы также можете указать несколько пакетов, разделенных пробелами:
sudo apt remove package1 package2
Команда remove
удалит указанные пакеты, но может оставить некоторые файлы конфигурации. Если вы хотите удалить пакет, включая все файлы конфигурации, используйте purge
вместо remove
:
sudo apt purge package_name
Удалить неиспользуемые пакеты ( apt autoremove
)
Всякий раз, когда в системе устанавливается новый пакет, который зависит от других пакетов, зависимости пакета также будут установлены. Когда пакет будет удален, зависимости останутся в системе. Эти оставшиеся пакеты больше ничем не используются и могут быть удалены.
sudo apt autoremove
Список пакетов ( apt list
)
Команда list
позволяет вам перечислить доступные, установленные и обновляемые пакеты.
Чтобы просмотреть все доступные пакеты, используйте следующую команду:
sudo apt list
Команда напечатает список всех пакетов, включая информацию о версиях и архитектуре пакета. Чтобы узнать, установлен ли конкретный пакет, вы можете отфильтровать вывод с помощью grep
команды.
sudo apt list | grep package_name
Чтобы перечислить только установленные пакеты , введите:
sudo apt list --installed
Получение списка обновляемых пакетов может быть полезно перед фактическим обновлением пакетов:
sudo apt list --upgradeable
Поиск пакетов ( apt search
)
Эта команда позволяет вам искать данный пакет в списке доступных пакетов:
sudo apt search package_name
Если найдено, команда вернет пакеты, имя которых соответствует поисковому запросу.
Информация о пакете ( apt show
)
Информация о зависимостях пакета, размере установки, источнике пакета и т. д. может быть полезна перед удалением или установкой нового пакета.
Чтобы получить информацию о данном пакете, используйте show
команду:
sudo apt show package_name