PHP - Узнайте, существует ли пакет Debian - PullRequest
2 голосов
/ 22 июня 2011

Я хочу узнать, установлен ли пакет Debian на нашем рабочем сервере, функциональность должна быть такой же, как extension_loaded().

Кто-нибудь может предложить метод?Я могу только предположить, что я должен использовать exec() и проанализировать возвращаемое значение для 'команда не найдена', хотя я хотел бы знать, есть ли более безопасный / лучший вариант.

Ответы [ 2 ]

2 голосов
/ 22 июня 2011

Вы можете написать простой API для этого.Он должен делать что-то вроде следующего:

  • Позволяет php записывать нужные пакеты в xml-файл, текстовый файл или базу данных, что угодно, что вы можете прочитать с помощью приложения оболочки, приложения perl или чего-либо еще.
  • На уровне сервера считайте файл, базу данных, проверьте, существует ли пакет, и верните значение в выходной файл, таблицу базы данных или что-либо еще.
  • прочитайте выходной файл с помощью php ипокажите его своему пользователю

Недостаток предложенного выше решения состоит в том, что оно занимает некоторое время, например.Вы не можете проверить наличие пакета в режиме реального времени.Если это действительно обязательно, вы можете написать скрипт php, который не принимает никаких входных данных, но считывает пакеты, которые должны быть проверены из базы данных или текстового файла, где значения были тщательно протестированы, например.используя регулярное выражение.Таким образом, вы уверены, что злоумышленник не может вводить команды оболочки.

2 голосов
/ 22 июня 2011

Если у вас есть разрешение на исполнение, вы можете использовать одно из следующих:

whereis packagename

apt-cache policy packagename
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...