Как узнать, установлен ли пакет в Linux и Unix
Некоторое время назад мы узнали, как найти версию пакета в Linux. Сегодня мы увидим, как узнать, установлен ли пакет или нет в операционных системах Linux и Unix. Найти установленные пакеты в режиме графического интерфейса легко. Все, что нам нужно сделать, это просто открыть меню или тире и ввести имя пакета в поле поиска. Если пакет установлен, вы увидите пункт меню. Это очень просто. Но его немного сложно найти в системе, где нет режима графического интерфейса. Таким образом, знание того, как определить, установлен пакет или нет в режиме CLI, так же важно, как и в режиме GUI. Теперь давайте выясним, как узнать, установлен ли пакет или нет, не так ли?
Узнайте, установлен ли пакет в Linux или нет.
Самый распространенный способ узнать, установлен пакет или нет, — использовать команду «который», как показано ниже:
which <package-name>
Пример:
which nano
Если пакет nano установлен, он отобразит путь установки, как показано ниже.
/usr/bin/nano
Как видите, пакет nano установлен по пути /usr/bin/.
Давайте проверим другой пакет, например Emacs:
which emacs
/usr/bin/which: no emacs in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
Видеть? Emacs не установлен.
Узнайте, установлен ли пакет в Linux, используя какую команду
Команда «который» доступна по умолчанию в большинстве Unix-подобных операционных систем.
Кроме того, есть несколько других способов узнать, установлен ли пакет или нет. Читай дальше.
В Arch Linux:
В Arch Linux и его производных, таких как Antergos и Manjaro LInux, мы можем сделать это с помощью команды «pacman», как показано ниже:
pacman -Qs nano
Пример вывода:
local/nano 2.9.3-1 (base)
Pico editor clone with enhancements
Узнайте, установлен ли пакет в Arch Linux с помощью Pacman
Вы заметили приставку «локальный» перед пакетом «нано»? Это означает, что Nano установлен в вашей системе.
Если приведенная выше команда ничего не возвращает, это означает, что данный пакет не установлен.
В Fedora/RHEL/CentOS/Scientific Linux:
В дистрибутивах Linux на основе RPM, таких как Fedora, RHEL и клонах RHEL, таких как CentOS, Scientific Linux, мы можем узнать, установлен ли пакет, с помощью команды "rpm", как показано ниже.
rpm -qa | grep nano
Или,
rpm -qa | grep -i nano
Пример вывода:
nano-2.3.1-10.el7.x86_64
Кроме того, вы можете использовать команду Yum, как показано ниже.
yum list installed|grep 'nano'
Чтобы просмотреть все установленные пакеты, запустите:
rpm -qa
Как отметил один из наших читателей Грегори Питтман в разделе комментариев ниже, мы можем использовать команду dnf в Fedora, чтобы найти установленный пакет.
dnf list packagename
или даже
dnf list package*
Из них вы получаете список того, что установлено, а также то, что доступно в репозиториях. dnf допускает использование подстановочных знаков, а также не учитывает регистр при поиске. Иногда вы не совсем знаете, что ищете или правильное написание.
В Debian/Ubuntu/Linux Mint:
В системе на основе DEB, такой как Debian, Ubuntu и ее производных, таких как Linux Mint и Elementary OS, мы можем сделать это с помощью команды "dpkg".
dpkg -s nano
Пример вывода:
Узнайте, установлен ли пакет в Debian, Ubuntu Linux с помощью команды dpkg.
Как вы видите в приведенном выше выводе, пакет nano установлен в нашей системе Ubuntu. Эта команда не только показывает, установлен ли указанный пакет или нет, но также приоритет пакета, номер версии, имя сопровождающего, зависимости, его описание и т. д.
Это не единственный способ найти установленные пакеты. Вот еще несколько команд.
dpkg-query -l nano
Пример вывода:
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============-============-============-=================================
ii nano 2.5.3-2 amd64 small, friendly text editor inspired by Pico
Вот еще один.
dpkg --get-selections | grep nano
Пример вывода:
nano install
И еще одна команда....
dpkg --list | grep nano
Пример вывода:
ii nano 2.5.3-2 amd64 small, friendly text editor inspired by Pico
Или используйте эту команду:
dpkg --list | grep -i nano
Чтобы просмотреть список всех установленных пакетов, запустите:
dpkg --list
В SUSE/openSUSE:
Чтобы проверить, установлен ли пакет в SUSE и openSUSE, запустите:
zypper search nano
Или, короче:
zypper se nano
Вы также можете использовать команду «rpm», как показано ниже.
rpm -q nano
Определите, установлен ли пакет или нет, с помощью утилиты has
Поверьте, это очень просто! Утилита has проверит наличие различных инструментов командной строки по пути, а также сообщит об их установленной версии.
Чтобы установить его, выполните следующие команды:
git clone https://github.com/kdabir/has.git
cd has
sudo make install
Теперь проверьте, доступен ли пакет, как показано ниже.
has nano
✔ nano 2.5.3
Если вы видите галочку (✔), пакет установлен. Как вы видите в приведенном выше выводе, пакет nano установлен и его версия — 2.5.3.
Вы увидите крестик, если пакет не установлен. Проверьте следующий пример.
has emacs
✘ emacs
Вы также можете проверить наличие нескольких пакетов.
has nano emacs vim
✔ nano 2.5.3
✘ emacs
✔ vim 7.4
Если вы не хотите устанавливать его, вы можете использовать его напрямую, как показано ниже. Однако ваша система должна быть подключена к Интернету.
curl -sL https://git.io/_has | bash -s nano
Чтобы проверить наличие нескольких пакетов:
curl -sL https://git.io/_has | bash -s nano emacs vim
Создайте псевдоним, если вам лень вводить всю команду:
alias has="curl -sL https://git.io/_has | bash -s"
Теперь просто используйте эту утилиту, как показано ниже:
has nano
Более подробную информацию можно найти на странице проекта на GitHub.
- имеет репозиторий GitHub
Узнайте, установлен ли пакет в Unix или нет.
Следующие шаги были протестированы во FreeBSD 10.3. Я никогда не пробовал никаких других операционных систем BSD, кроме FreeBSD. Таким образом, могут быть разные команды, чтобы узнать, установлен ли пакет в других операционных системах BSD.
Во FreeBSD это можно сделать с помощью команды "pkg":
pkg_info -Ix <package-name>
Пример:
pkg info -Ix nano
Пример вывода:
Узнайте, установлен ли пакет во FreeBSD, используя команду pkg.
Чтобы просмотреть все установленные пакеты, вы можете использовать следующую команду:
pkg info
Или,
pkg version -v
Это займет от нескольких секунд до минуты, в зависимости от количества пакетов в вашей системе FreeBSD.
Заключение
Теперь вы знаете, как узнать, установлен пакет или нет, используя официальный и неофициальный способ из командной строки. Как видите, это не так уж и сложно. Это всего лишь пара команд, которые вы легко запомните. Если вы не можете запомнить эти команды, просто добавьте их в закладки или сохраните их в самом Терминале, чтобы запускать их по требованию.