Можно разрешить весь из zypper family command
Вашему пользователю в /etc/sudoers file
.
apt-cache showpkg
показывает подробную информацию о потенциально устанавливаемых пакетах. Он показывает, установлен ли пакет, но не очень читабельно:
Versions:
2:3.6.6-6+deb7u5 (/var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_dists_wheezy_main_binary-armhf_Packages)
Если пакет был установлен, вы увидите (/ var / lib / dpkg / status)
в конец строки. Однако это не совсем надежно, потому что вы также увидите это указание, если бы пакет был известен вашей системе, но не был полностью установлен, например если он был в состоянии «пакет удален, но файлы конфигурации остались».
Более полезной подкомандой apt-cache
является политика apt-cache
. Он четко показывает установленную версию (если есть) и доступные версии. Например, вот вывод с машины, на которой установлена samba
, но не samba-dev
:
samba:
Installed: 2:4.1.17+dfsg-2
Candidate: 2:4.1.17+dfsg-2
Version table:
*** 2:4.1.17+dfsg-2 0
500 http://ftp.fr.debian.org/debian/ jessie/main amd64 Packages
100 /var/lib/dpkg/status
samba-dev:
Installed: (none)
Candidate: 2:4.1.17+dfsg-2
Version table:
2:4.1.17+dfsg-2 0
500 http://ftp.fr.debian.org/debian/ jessie/main amd64 Packages
В качестве альтернативы вы можете использовать команду dpkg
для получения информации о вашей нынешней системе. APT - это программное обеспечение, которое управляет загрузкой пакетов, анализом зависимостей и т. Д. Dpkg - это программное обеспечение низкого уровня, которое выполняет фактическую установку файла пакета.
dpkg -l samba
Здесь показана строка, начинающаяся с i
, если пакет установлен, и строка, начинающаяся с u
или p
, или вообще ничего, если пакет не установлено.
$ dpkg -l samba samba-dev
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 samba 2:4.1.17+dfs amd64 SMB/CIFS file, print, and login s
dpkg-query: no packages found matching samba-dev
( dpkg-query
- это подкоманда dpkg
, которая возвращает информацию о базе данных пакета.)
Обратите внимание, что если вы просто хотите убедиться, что пакет установлен, вы можете просто запустить
apt-get install samba
Это ничего не сделает, если последняя версия пакета, доступная в вашем дистрибутиве, уже установлена. Он установит пакет, если он еще не установлен, и обновит его, если у вас более старая версия.
dpkg -l | grep -e package1 -e package2 ....
В списке будут перечислены интересующие вас пакеты с их текущим статусом установки. Результат будет примерно таким:
bala@bala-laptop:~$ dpkg -l | grep apache2
ii apache2 2.4.10-10 amd64 Apache HTTP Server
Первые 2 символа обозначают статус - ii здесь означает Первый i - отмечен для установки Второй i - успешно установлен
Есть другие коды состояния например, r означает пометку для удаления, p означает пометку для очистки и т. д.
dpkg -l $ PACKAGENAME
достаточно. Первые два символа в строке покажут статус пакета
aptitude show foo
покажет статус пакета
root@srv:# aptitude show python-jmespath Package: python-jmespath Version: 0.9.0-2 State: not installed Priority: optional Section: python Maintainer: Debian Python Modules Team python-modules-team@lists.alioth.debian.org Architecture: all Uncompressed Size: 97.3 k Depends: python (>= 2.7) Description: JSON Matching Expressions (Python 2) JMESPath is python library which allows you to declaratively specify how to extract elements from a JSON document. This package contains the module for Python 2. Homepage: https://github.com/boto/jmespath root@cx-ops02:#
Надеюсь, вы сможете решить эту проблему.
dpkg --help
для справки об установке и удалении пакетов [ *];
используйте apt
или aptitude
для удобного для пользователя -управления пакетами;
dpkg -Dhelp
для списка dpkg
значений флага отладки; dpkg --force-help
для списка параметров форсирования; dpkg-deb --help
для помощи в работе с *.deb
файлами; Опции, помеченные [ *] производят много вывода -направляют его через less
или more
!
Несколько более простой вариант dpkg -l | grep ...
IMO:
dpkg-query -W -f='${Status}' pkg | grep -q " installed"
Возвратит 0 (успех )если установлено pkg
.
grep-status 'package'
Он не предустановлен в дистрибутивах на основе Debian. Его можно установить через:
sudo apt install dctrl-tools
Вот пример:
$ grep-status dctrl-tools
Package: dctrl-tools
Status: install ok installed
Priority: optional
Section: utils
Installed-Size: 296
...