Как проверить, установлен ли пакет (нет привилегий суперпользователя)?

54

В нашем университете мы можем получить практически любой пакет Ubuntu, который мы хотим, но мы сами не являемся суперпользователями (нам нужно запросить установки пакетов).

В некоторых библиотеках не всегда легко узнать, установлен ли пакет или нет. Есть ли простой способ / команда, чтобы проверить это?

    
задан Peter Smit 23.08.2010 в 15:33
источник

6 ответов

53
apt-cache policy <package name>
    
ответ дан Oli 23.08.2010 в 15:37
источник
18

Я всегда использую это только из командной строки:

dpkg -l | grep mysql

, поэтому выше сказано, что dpkg отображает все установленные пакеты, а затем я grep только для тех, у которых есть mysql в имени.

    
ответ дан Rick 23.08.2010 в 15:49
7

Еще один вариант, используя aptitude на этот раз:

aptitude show <package>

Здесь также работает табуляция.

    
ответ дан Alexey Nedilko 24.08.2010 в 02:24
5

Вы можете использовать dselect. Он обеспечивает доступ без права доступа только для чтения.

Кроме того, dpkg -s предоставляет множество подробностей, связанных с пакетом. Например, "

userme:~$ dpkg-query -s sl
Package: sl
Status: unknown ok not-installed
Priority: optional
Section: games
    
ответ дан Abhinav 23.08.2010 в 15:35
4

Вы можете использовать dpkg-query -s <package> 2>/dev/null | grep -q ^"Status: install ok installed"$ в скриптах, так как он возвращает код выхода 1, если <package> не установлен, и 0, если установлен <package> .

    
ответ дан jarno 24.12.2013 в 18:16
0

Пример использования определенного значения как var в сценариях оболочки (например, test.sh )

#!/bin/sh
PACKAGETOLOOKFOR=""
INSTALLED=$(dpkg -l | grep ${PACKAGETOLOOKFOR} >/dev/null && echo "yes" || echo "no")

echo " is installed ... ${INSTALLED}"

Сделайте его исполняемым и начните с:

test.sh openssh-server

Или делайте все, что хотите, в своих сценариях

    
ответ дан Lahmizzar 11.11.2015 в 00:08