- Определить установлен ли пакет, newser, 14:48 , 15-Окт-07 (1)
- Определить установлен ли пакет, vic, 15:05 , 15-Окт-07 (2)
- Определить установлен ли пакет, anonymous, 18:16 , 15-Окт-07 (3)
- Определить установлен ли пакет, Voblin, 12:59 , 16-Окт-07 (4)
- Определить установлен ли пакет, angra, 19:01 , 16-Окт-07 (5)
- Определить установлен ли пакет, Udzhen, 02:36 , 20-Окт-07 (6)
>>В красной шапочке rpm -q имя пакета > >Молодец, хороший мальчик. Но к сожалению должен тебя огорчить ubuntu это не >красная шапочка и вообще не rpm-based дистр, к счастью. А найти >в мане по dpkg опцию l или L дело пары минут >и, скорее всего, задавший вопрос с этим давно справился.Да, вы правы. Проблемму я уже давно решил. Требовалось написать процедуру которая проверяет установлен ли пакет пакет (под Debian-based системы). Собственно вот что получилось:
TRUE=0 FALSE=1# Процедуре передается список пакетов в качестве первого аргумента, # и если хотя бы один пакет не установлен, то процедура вернет FALSE. function PkgIsInstalled { pkg_list=$(dpkg-query --showformat '${Package} ${Status}\n' -W $1 | \ grep 'ok installed$' | sed -n -e 's/ .* ok installed$//p') for pkg_name in $1 do echo "$pkg_list" | grep -q "^$pkg_name\$" if [ $? -ne $TRUE ]; then return $FALSE; fi done return $TRUE } # Использование... pkg_name="здесь_имя_пакета" PkgIsInstalled $pkg_name if [ $? -ne $TRUE ]; then echo "Package \"$pkg_name\" is not installed!" read -p "Install now? [yes]/[no] " cmd if [ "$cmd" = "yes" ] || [ "$cmd" = "y" ]; then sudo aptitude update sudo aptitude install $pkg_name return $? fi fi
Всем спасибо за помощь!
|