Ознакомьтесь с официальной Ubuntu Touch wiki . Ссылка, которую вы ищете, - это ссылка на вики, в которой написано Примите участие! .
Вы можете использовать dselect. Он обеспечивает доступ не только для чтения.
Кроме того, dpkg -s <package name>
предоставляет много деталей, связанных с пакетом. Например, "
userme:~$ dpkg-query -s sl
Package: sl
Status: unknown ok not-installed
Priority: optional
Section: games
Пример использования определенного значения как var в скриптах оболочки (например, test.sh
)
#!/bin/sh
PACKAGE="${1}"
INSTALLED=$(dpkg -l | grep ${PACKAGE} >/dev/null && echo "yes" || echo "no")
echo "${PACKAGE} is installed ... ${INSTALLED}"
Сделайте его исполняемым и начните с:
test.sh openssh-server
Или делайте что хотите с в ваших сценариях
Вы можете использовать dpkg-query -s <package> 2>/dev/null | grep -q ^"Status: install ok installed"$
в скриптах, поскольку он возвращает код выхода 1, если <package>
не установлен, и 0, если <package>
установлен.
dpkg -s
возвращает 0
, это не обязательно означает, что пакет установлен полностью / правильно . dpkg -s
также возвращает 0
, если пакет находится в состоянии half-configured
или в config-files
(и я полагаю также в half-installed
, но я не проверял это). См. [Man-страницу dpkg
( manpages.ubuntu.com/manpages/oneiric/man1/dpkg.1.html ) для получения дополнительной информации «не полностью». состояния.
– VMAtm
18.05.2020, 17:31
dpkg -s
программное использование
Мне нравится dpkg -s
, так как он выходит со статусом 1
, если какой-либо из пакетов не установлен, облегчая его автоматизацию:
pkgs='qemu-user pandoc'
if ! dpkg -s $pkgs >/dev/null 2>&1; then
sudo apt-get install $pkgs
fi
См. Также:
Протестировано в Ubuntu 18.10.
Более простое решение:
Теперь есть команда apt list
, которая выводит список установленных пакетов. Вы также можете выполнить поиск определенного пакета с помощью
apt list <package>
См. man apt
для получения дополнительной информации.
Я всегда просто использую это из командной строки:
dpkg -l | grep mysql
, так что вышеприведенное просит dpkg перечислить все установленные пакеты, а затем я grep только для тех, в имени которых есть mysql.
dpkg -l "*mysql*"
также работает и не скрывает поясняющие строки в выводе.
– FocusWiz
18.05.2020, 17:34
dpkg -l "*mysql*"
(или dpkg -l '*mysql*'
) также производит специальное форматирование вывода, чтобы соответствовать каждому пакету в одной строке окна терминала (grep не делает). И эта форма позволяет вам выбрать формат подстановочного знака (префиксы или суффиксы), и использовать ли вообще подстановочные знаки (по сравнению с grep). Но grep дает приятную окраску ..))
– Wahed
18.05.2020, 17:34
dpkg -s
. И наоборот,dpkg-query -l
работает так же хорошо, какdpkg -l
илиdpkg --list
– Serj Sagan 18.05.2020, 17:30