Поставили такую вот задачку: нужно написать скрипт, который будет проверять, установлены ли apache2, mysql и php и рядом с каждым пунктом писать installed или not installed . Сам код прошу не писать! А лучше разжевать, как это сделать.
Отслеживать
33.6k 24 24 золотых знака 129 129 серебряных знаков 217 217 бронзовых знаков
задан 29 авг 2012 в 17:06
193 2 2 золотых знака 3 3 серебряных знака 21 21 бронзовый знак
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Дистрибутив? Проверка пакетов в разных дистрибутивах идет по разному, у меня на убунту срабатывает вот это, не знаю насколько правильно
dpkg -s sqlite3 | grep Status
UPD По быстрому накатал вот такой скрипт, в принципе пашет, но есть проблема с тем что сообщение о том что пакет не найдет это ошибка и она остается в выводе, скорее всего я использую не ту команду, поищите как определить состояние пакета с помощью dpkg, apt-get или aptitude, все они в дебиане есть по умолчанию, принцип скрипта скорее всего не поменяется
Как проверить контрольные суммы в Linux
#!/bin/bash #$1 — поданая на вход скрипта переменная I=`dpkg -s $1 | grep «Status» ` #проверяем состояние пакета (dpkg) и ищем в выводе его статус (grep) if [ -n «$I» ] #проверяем что нашли строку со статусом (что строка не пуста) then echo $1″ installed» #выводим результат else echo $1″ not installed» fi
Источник: ru.stackoverflow.com
Как в Linux Mint проверить, установлен ли пакет
Дистрибутивы Linux состоят из одинаковых компонентов: ядро, менеджер отображения, графическое окружение рабочего стола, предустановленные программы. Чтобы пользователи как-то отличали дистрибутивы друг от друга, их сборщики устанавливают разные обои и добавляют свои собственные программы.
К сожалению, желание составителей дистрибутивов выделиться и стать более «дружественным» пользователю приводит к нелепым (скажем прямо, идиотским) проблемам. И, скорее всего, вы уже догадались об этом по заголовку данной статьи.
В любом дистрибутиве, который является производным Debian, используется файловый менеджер apt. Чтобы узнать, установлен ли определённый пакет, достаточно использовать команду apt search и указать имя пакета:
apt search ПАКЕТ
К примеру, меня интересует, установлены ли заголовки ядра:
apt search linux-headers-
Хорошо, команда неудачная, т. к. много разных ядер, возьмём более конкретную и зададим вопрос так «установлены ли заголовки текущего ядра»:
apt search linux-headers-`uname -r`
Как узнать версию Ubuntu Linux?
Вы можете ответить, установлен данный пакет или нет? На самом деле, ответ присутствует, просто из-за того, что вместо оригинальной программы используется файл /usr/local/bin/apt, который является скриптом на Python, использующим программу aptitude (!), формат вывода совершенно отличный от того, который мы ожидаем.
Ответ находится в самом первом столбце, где всего один символ. Значение символов следующее:
- p — означает, что в системе нет никаких следов этого пакета
- c — означает, что пакет был удалён, но его конфигурационные файлы остались в системе
- i — означает, что пакет установлен
- v — означает, что пакет является виртуальным.
Как в Linux Mint использовать apt вместо aptitude
Много лет я работаю именно с программой apt, а aptitude на многих дистрибутивах, производных от Debian, вовсе не установлена. Поэтому для меня намного привычнее оригинальная программа apt.
Чтобы использовать apt вместо aptitude выполните команду вида:
/usr/bin/apt search ПАКЕТ
/usr/bin/apt search linux-headers-`uname -r`
Отлично, именно этого я и хотел, краткая информация о пакете с однозначной надписью «[установлен]»:
Всегда полностью вводить /usr/bin/apt неудобно, поэтому возникает вопрос, как избавиться от этого идиотского Python скрипта? Достаточно выполнить команду:
sudo mv /usr/local/bin/apt /usr/local/bin/-apt
И теперь программа вида:
apt search ПАКЕТ
будет давать именно тот результат, который вы ожидаете.
apt search linux-headers-`uname -r`
Если вы захотите вернуть скрипт обратно, то просто выполните команду:
sudo mv /usr/local/bin/-apt /usr/local/bin/apt
Источник: zalinux.ru
click fraud protection
Прочитав это руководство, вы узнаете, как проверить, установлен ли пакет в дистрибутивах Linux на основе Debian, включая Ubuntu.
Проверка, установлен ли конкретный пакет, с помощью dpkg:
Чтобы проверить, установлен ли конкретный пакет на Дистрибутивы Linux на основе Debian , вы можете использовать dpkg команда, за которой следует -s (статус) флаг и имя пакета. В приведенной ниже команде показан пример dpkg, который используется для проверки статуса пакета Steam.

Как видите, команда возвращает информацию о пакете, включая следующее:
Имя пакета: Имя пакета.
Статус пакета: Здесь вы можете увидеть статус пакета в вашей системе.
Приоритет: Для пакетов существует 5 возможных уровней приоритета: Приоритет ‘Необходимые’ принадлежит к пакетам, которые необходимы для системы; удаление пакетов, помеченных как ‘Необходимые’ может привести к сбою системы. Второй возможный приоритетный режим для a — это ‘Важный’ приоритет для пакетов, которые не важны для системы, а для пользователя, например, текстовый редактор, такой как nano или net-tools. Третий приоритет — это
«Стандартный», который включает пакеты, которые определены для установки по умолчанию. Четвертый приоритетный уровень — это ‘По желанию’, который включает дополнительные пакеты в установках Debian / Ubuntu. Наконец, пятый приоритет — это ‘Дополнительный’, который устарел и заменен на ‘По желанию’. Статус ‘Дополнительный’ использовался для специализированных пакетов.
Раздел: Пакеты классифицируются по категориям; в настоящее время доступны категории: admin, database, cli-mono, debug, devel, doc, editors, education, gnustep, embedded, fonts, games, gnome, gnu-r, электроника, графика, интерпретаторы, hamradio, haskell, httpd, python, интроспекция, javascript, java, ruby, kde, локализация, ядро, libdevel, libs, lisp, почта, математика, метапакеты, ocaml, net, news, misc, comm, oldlibs, otherosfs, perl, php, rust, science, shells, sound, text, video, tasks, tex, utils, vcs, web, x11, xfce и zope.
Установленный размер: Вы можете увидеть приблизительное требуемое дисковое пространство в байтах для установки пакета.
Сопровождающий: В этом поле отображается информация о разработчике пакета.
Архитектура: Здесь вы можете увидеть архитектуру пакета.
Версия: Версия пакета.
Зависит от: Зависимости пакетов.
Описание: Описание пакета.
Домашняя страница: Сайт пакета / разработчика.
На снимке экрана ниже показан результат проверки того, что пакет не установлен.
dpkg -s подвергать сомнению

Вы также можете использовать dpkg команда, за которой следует -l флаг, чтобы проверить конкретный статус пакета, как показано в примере ниже.

Проверка, установлен ли конкретный пакет, с помощью dpkg-query:
В dpkg-query Команда может использоваться, чтобы показать, установлен ли в вашей системе конкретный пакет. Для этого беги dpkg-query за которым следует флаг -l и имя пакета, о котором вы хотите получить информацию. В приведенном ниже примере показано, как проверить, установлен ли пакет Steam.
dpkg-query -l пар

Вы можете использовать ту же команду для вывода списка всех установленных пакетов, опуская имя пакета, как показано в примере ниже.

Проверьте, установлен ли пакет, используя apt-cache:
В apt-cache Команда также может отображать информацию о пакетах, установленных версиях и т. д. Чтобы получить этот результат, вам нужно добавить политика option, за которым следует имя пакета, как показано в примере ниже.
Политика apt-cache пар

Получите список всех установленных пакетов, используя подходящий:
Если вы хотите распечатать список всех установленных пакетов в вашей системе, а не проверять, был ли установлен конкретный пакет, вы можете сделать это с помощью подходящий как показано в примере ниже.
подходящий —установлен список

Получите список всех установленных пакетов чтения логов:
Другой метод, широко используемый для получения списка всех установленных пакетов, — это чтение подходящий или dpkg журналы.
Чтобы прочитать подходящий log выполните следующую команду.
Кот / вар / бревно / подходящий / history.log

Чтобы прочитать dpkg log, чтобы получить информацию об установленных пакетах, выполните команду ниже.
grep » установить » / вар / бревно / dpkg.log

Вы также можете читать сжатые журналы dpkg, используя zgrep команда вместо grep, как показано в примере ниже.
zgrep » установить » / вар / бревно / dpkg.log.11.gz

Как видите, сжатые журналы предоставят вам частичную информацию, но вы можете реализовать подстановочный знак (*) для одновременного чтения всех сжатых журналов, как показано в следующем примере.
zgrep » установить » / вар / бревно / dpkg.log. * .gz

Как проверить обновленные и удаленные пакеты:
Если вы хотите отображать информацию только об обновленных пакетах, вы можете сделать это с помощью приведенной ниже команды.

Как объяснялось ранее, с установленными пакетами вы также можете проверять сжатые журналы на наличие обновленных пакетов с помощью подстановочного знака, как показано в следующем примере.
zgrep «Обновить » / вар / бревно / dpkg.log. * .gz

Если вы хотите перечислить удаленные пакеты, метод аналогичен; просто замените «Обновить» с «Удалить,» как показано ниже.
grep «Удалить » / вар / бревно / dpkg.log

Вывод:
Как видите, дистрибутивы Linux на основе Debian предлагают различные способы проверки состояния конкретного пакета или перечисления всех установленных, обновленных и удаленных пакетов. Команды, описанные в этом руководстве, легко применять, и их изучение обязательно для любого пользователя дистрибутива на основе Debian. Как вы видели, эти команды также могут предоставить информацию о версиях программного обеспечения, необходимом дисковом пространстве и многом другом. Вы можете получить дополнительные советы по перечислению информации о пакетах с помощью учебника Посмотреть историю dpkg и apt .
Я надеюсь, что это руководство, объясняющее, как проверить, установлен ли пакет в Debian или Ubuntu, было полезно. Следуйте подсказкам Linux, чтобы получить больше советов и руководств по Linux.
Источник: ciksiti.com