Нужно для сценария проверять, установлена ли программа ХХХ. Как это можно сделать простыми командами? Решения типа rpm -qa | grep XXX не предлагать, нужно, чтобы работало на всех никсах, включая БСД и прочие.
Спасибо сказали:
serzh-z Бывший модератор Сообщения: 8256 Статус: Маньяк ОС: Arch, Fedora, Ubuntu Контактная информация:
Re: Проверка установленности программ
Сообщение serzh-z » 19.07.2006 17:01
19.07.2006 16:49
Как это можно сделать простыми командами?
if [ -x /path/XXX ] ; then.
И см. любой скрипт configure.
Спасибо сказали:
Liksys Сообщения: 2910
Re: Проверка установленности программ
Сообщение Liksys » 19.07.2006 17:05
19.07.2006 17:01
19.07.2006 16:49
Как это можно сделать простыми командами?
if [ -x /path/XXX ] ; then.
И см. любой скрипт configure.
Первое не пойдет, имя каталога не известно. Второе ищет только по PATH, что подходит. но не совсем. Если пользователь запускает скрипт, а прога находится в каталоге, скажем, /sbin, и при этом в паше пользователя этого катагога нет, то он его не найдет.
Видеодрайверы в Linux
Спасибо сказали:
serzh-z Бывший модератор Сообщения: 8256 Статус: Маньяк ОС: Arch, Fedora, Ubuntu Контактная информация:
Re: Проверка установленности программ
Сообщение serzh-z » 19.07.2006 17:23
19.07.2006 17:05
Второе ищет только по PATH, что подходит. но не совсем. Если пользователь запускает скрипт, а прога находится в каталоге, скажем, /sbin, и при этом в паше пользователя этого катагога нет, то он его не найдет.
А разве это не показатель «установленности» программы? А если пользователь установил две версии приложения, и хочет чтобы была доступна одна из них — вероятно, он поместит в PATH лишь каталог с той версией, которая ему нужна.
Если нет sbin в PATH, то вероятно для ЭТОГО пользователя приложение «как-бы» не установлено.
Вообще, если немного поразмыслить, то легко можно осознать всю безграничную абсурдность этой задачи (на всех никсах; универсальное; причём такое, которое идёт в разрез с идеологией UNIX).
На крайний случай, если так надо — можно и find использовать.
Спасибо сказали:
Liksys Сообщения: 2910
Re: Проверка установленности программ
Сообщение Liksys » 19.07.2006 17:28
19.07.2006 17:23
19.07.2006 17:05
Второе ищет только по PATH, что подходит. но не совсем. Если пользователь запускает скрипт, а прога находится в каталоге, скажем, /sbin, и при этом в паше пользователя этого катагога нет, то он его не найдет.
А разве это не показатель «установленности» программы? А если пользователь установил две версии приложения, и хочет чтобы была доступна одна из них — вероятно, он поместит в PATH лишь каталог с той версией, которая ему нужна.
Если нет sbin в PATH, то вероятно для ЭТОГО пользователя приложение «как-бы» не установлено.
Вообще, если немного поразмыслить, то легко можно осознать всю безграничную абсурдность этой задачи (на всех никсах; универсальное; причём такое, которое идёт в разрез с идеологией UNIX).
Как проверить безопасность системы в Linux
На крайний случай, если так надо — можно и find использовать.
Вот последний вариант меня и интересует. Я сделал, но скрипт получилася громоздким. Как можно сделать что-то простое?
Спасибо сказали:
serzh-z Бывший модератор Сообщения: 8256 Статус: Маньяк ОС: Arch, Fedora, Ubuntu Контактная информация:
Re: Проверка установленности программ
Сообщение serzh-z » 19.07.2006 17:38
find myfprog
is_not_found=$?
Спасибо сказали:
Liksys Сообщения: 2910
Re: Проверка установленности программ
Сообщение Liksys » 19.07.2006 18:24
19.07.2006 17:38
find myfprog
is_not_found=$?
Странно, ну почему- то у меня подобная фича не катит. Кстати, файнд имеет какое- то специфическое фозвращаемое значение. У меня он ничего не нашел, а возвратил 130
Спасибо сказали:
serzh-z Бывший модератор Сообщения: 8256 Статус: Маньяк ОС: Arch, Fedora, Ubuntu Контактная информация:
Re: Проверка установленности программ
Сообщение serzh-z » 19.07.2006 18:33
19.07.2006 18:24
У меня он ничего не нашел, а возвратил 130
Код ошибки. 0 — это успех.
Спасибо сказали:
Liksys Сообщения: 2910
Re: Проверка установленности программ
Сообщение Liksys » 19.07.2006 18:43
19.07.2006 18:33
19.07.2006 18:24
У меня он ничего не нашел, а возвратил 130
Код ошибки. 0 — это успех.
Я знаю, что 0 это успех. Но если ничего не найдено — тоже успех <_<
Спасибо сказали:
Skull Модератор Сообщения: 2089 ОС: ALT Linux Контактная информация:
Re: Проверка установленности программ
Сообщение Skull » 20.07.2006 12:29
19.07.2006 16:49
Нужно для сценария проверять, установлена ли программа ХХХ. Как это можно сделать простыми командами? Решения типа rpm -qa | grep XXX не предлагать, нужно, чтобы работало на всех никсах, включая БСД и прочие.
which program ?
Спасибо сказали:
serzh-z Бывший модератор Сообщения: 8256 Статус: Маньяк ОС: Arch, Fedora, Ubuntu Контактная информация:
Re: Проверка установленности программ
Сообщение serzh-z » 20.07.2006 12:48
20.07.2006 12:29
which program ?
Спасибо сказали:
Liksys Сообщения: 2910
Re: Проверка установленности программ
Сообщение Liksys » 20.07.2006 12:48
20.07.2006 12:29
19.07.2006 16:49
Нужно для сценария проверять, установлена ли программа ХХХ. Как это можно сделать простыми командами? Решения типа rpm -qa | grep XXX не предлагать, нужно, чтобы работало на всех никсах, включая БСД и прочие.
which program ?
нет, почему — написано выше. Может кто — нить знает решение?
Спасибо сказали:
serzh-z Бывший модератор Сообщения: 8256 Статус: Маньяк ОС: Arch, Fedora, Ubuntu Контактная информация:
Re: Проверка установленности программ
Сообщение serzh-z » 20.07.2006 13:25
20.07.2006 12:48
Может кто — нить знает решение?
Вроде бы уже все подходящие решения предложили. Сам подумай — какое ещё может быть кросплатформенное решение, для систем UNIX, у которых нет общего пакетного менеджера и стандартного списка установленных/собранных вручную пакетов. Или «надежда умирает последней»?
Спасибо сказали:
Liksys Сообщения: 2910
Re: Проверка установленности программ
Сообщение Liksys » 20.07.2006 13:29
20.07.2006 13:25
20.07.2006 12:48
Может кто — нить знает решение?
Вроде бы уже все подходящие решения предложили. Сам подумай — какое ещё может быть кросплатформенное решение, для систем UNIX, у которых нет общего пакетного менеджера и стандартного списка установленных/собранных вручную пакетов. Или «надежда умирает последней»?
мне больше всего понравилось решение с файндом, но к сожалению оно как-то странно работает.
Спасибо сказали:
aLexx programmer Сообщения: 985 Статус: Турук-Макто ОС: Gentoo -> Ubuntu
Re: Проверка установленности программ
И очень долго.
Ведь программа может быть установлена куда угодно. Значит, надо искать по всему диску И по всем примонтированным
Спасибо сказали:
Liksys Сообщения: 2910
Re: Проверка установленности программ
Сообщение Liksys » 21.07.2006 10:57
20.07.2006 18:30
И очень долго.
Ведь программа может быть установлена куда угодно. Значит, надо искать по всему диску И по всем примонтированным
Точно. Ну же, предложите способ! У меня была идея делать так:
#!/bin/bash XXX —help if [ $? -ne 0 ]; then echo «XXX is not installed» fi
Это работает, баш устанавливает значение $? не равнум нулю, если не нашел такой команды.
Спасибо сказали:
elide Бывший модератор Сообщения: 2421 Статус: Übermensch ОС: лялих
Re: Проверка установленности программ
Сообщение elide » 21.07.2006 11:18
хм. а если такая программа нашлась, но она просто не понимает опции —help, а в случае получения неизвестной опции взвращает код ошибки? кроме того, а чем это отличается от which? твой код тоже ищет программу при запуске только в текущем PATH. кроме того, я теперь понял, почему у ты жалуешься на громоздкие варианты — потому что пишешь 4 строчки вместо одной
XXX —help || echo «XXX is not installed»
которая делает абсолютно то же самое.
вообще, в этом топике ты производишь впечатление очень глупого человека. ты поставил изначально некорректное условие, но даже после того, как тебе предложили несколько вариантов решения этой некорректной задачи, ты продолжаешь кричать «Ну же, предложите способ!»
какой еще нахрен способ тебе нужен, а? может все-таки подумаешь головой?
слава роботам!
Спасибо сказали:
Liksys Сообщения: 2910
Re: Проверка установленности программ
Сообщение Liksys » 21.07.2006 12:00
21.07.2006 11:18
хм. а если такая программа нашлась, но она просто не понимает опции —help, а в случае получения неизвестной опции взвращает код ошибки? кроме того, а чем это отличается от which? твой код тоже ищет программу при запуске только в текущем PATH. кроме того, я теперь понял, почему у ты жалуешься на громоздкие варианты — потому что пишешь 4 строчки вместо одной
XXX —help || echo «XXX is not installed»
которая делает абсолютно то же самое.
вообще, в этом топике ты производишь впечатление очень глупого человека. ты поставил изначально некорректное условие, но даже после того, как тебе предложили несколько вариантов решения этой некорректной задачи, ты продолжаешь кричать «Ну же, предложите способ!»
какой еще нахрен способ тебе нужен, а? может все-таки подумаешь головой?
Я не жалуюсь на громоздкость решения, сдесь я привел пример того, как это реализовавается подробно. Я использовал if для тех, кто может подсказать хорошее решение, но не силен в логических операциях, что не редкость. Тем более, что та программа, установленность которой нужно проверять, содержит опцию —help. Громоздкость решения получалась даже не с ифом, а с реализацией через find
И не стоит оскорблять людей, если тебе не понятен смысл задачи. Да и вопрос изначально был сформулирован правильно. Я хочу определить наиболее быстрый и универсальный из предложенных, поэтому «продолжаю кричать».
В чем я действительно не прав — это про PATH. Надо проверять в нем, поэтому решение с which подходит.
И если кто-то знает интересные способы решения этой задачи, пожалуйста, напишите.
Источник: unixforum.org
Как проверить наличие пакета в Debian?
Есть пакет debconf https://packages.debian.org/ru/wheezy/debconf у него в зависимостях perl-base
Есть perl-base https://packages.debian.org/ru/wheezy/perl-base у него в зависимостях dpkg
Есть dpkg https://packages.debian.org/ru/wheezy/dpkg у него в зависимостях куча пакетов
Вопросы:
1) Как проверить есть ли пакет в системе
2) Если мне нужен debconf ставить каждый пакет зависимостей и его зависимостей отдельно иил можно как-то всё оптом поставить?
- Вопрос задан более трёх лет назад
- 1505 просмотров
5 комментариев
Оценить 5 комментариев
Источник: qna.habr.com
Как узнать установлен ли пакет Linux
Иногда бывает очень полезно узнать установлена ли определенная программа на вашем компьютере или ноутбуке. Конечно, можно просто попытаться выполнить программу, но в этом руководстве я расскажу как проверить установлен ли пакет ubuntu с помощью специальных инструментов, встроенных в систему.