Поиск по сайту:

23 полезных примера команд PKG для управления пакетами во FreeBSD


В этом руководстве мы объясним, как управлять предварительно скомпилированными приложениями двоичных пакетов в FreeBSD с помощью инструмента управления пакетами PKG через Порты. > хранилище коллекции программного обеспечения.

Репозиторий Порты предлагает необходимые инструменты для компиляции приложений из исходного кода вместе с их зависимостями, а также поддерживает огромную коллекцию предварительно скомпилированных пакетов, в настоящее время насчитывающую более 24 000 пакетов. который можно установить в системе FreeBSD с помощью команды pkg.

Требования:

  1. Установка FreeBSD 11.x

Поиск приложений в дереве портов во FreeBSD

1. Репозитории портов в FreeBSD разделены на категории, каждая категория представлена каталогом в пути к файловой системе /usr/ports/.

Простой список каталога /usr/ports/ отобразит все доступные категории, как показано на снимке экрана ниже.

ls /usr/ports/

2. Чтобы просмотреть все доступные приложения, принадлежащие к определенной категории, введите команду ls для каталога категории.

Предположим, вы хотите отобразить все доступные пакеты программного обеспечения, которые может предложить категория базы данных, выполните приведенную ниже команду в консоли. Передайте результат с помощью команды less, чтобы упростить навигацию по выходным данным.

ls /usr/ports/databases/ | less

3. Чтобы просмотреть, сколько пакетов доступно в категории, перечислите каталог категории и передайте результат с помощью команды wc, как показано в примере ниже.

ls /usr/ports/databases/ | wc -l

Как вы можете видеть на снимке экрана выше, категория баз данных FreeBSD содержит более 1000 предварительно согласованных пакетов баз данных.

4. Чтобы узнать, доступно ли определенное приложение в категории, снова используйте команду ls и отфильтруйте результат с помощью утилиты grep для поиска пользовательского приложения.

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

ls /usr/ports/databases/ | grep mongodb
ls /usr/ports/security/ | grep clam

Как видите, в портах FreeBSD может быть доступно несколько версий приложения.

5. Если вы не знаете, к какой категории относится программное обеспечение, вы можете использовать другой подход для поиска категории программного обеспечения. Используйте подстановочный знак оболочки * для поиска шаблона по всему дереву каталогов портов.

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

ls /usr/ports/*/*mailx

6. Другой метод поиска пакета программного обеспечения и категории, к которой этот пакет принадлежит, — использование командыlocate по строковому шаблону.

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

/usr/libexec/locate.updatedb

7. После обновления базы данных поиска выполните поиск определенного пакета программного обеспечения, используя шаблон ключевого слова из имени пакета. Например, если вы хотите найти утилиту mailx, вы можете запустить приведенную ниже команду.

locate mailx

Как видите, для утилиты mailx доступны два пакета, оба расположены в категории /usr/ports/mail/.

8. Подобно поиску пакета с помощью командыlocate, вы также можете использовать командуwhereis для просмотра категории приложения.

whereis mailx

Поиск программного обеспечения с помощью команды PKG во FreeBSD

9. Самый простой способ поиска приложения во FreeBSD — через командную строку управления пакетами PKG. Чтобы найти в двоичных пакетах приложение, например программное обеспечение postfix, введите приведенную ниже команду.

pkg search package_name

10. Если вы хотите узнать, к какой категории принадлежит пакет, выполните ту же команду, что и выше, с флагом -o, как показано в примерах ниже.

pkg search -o package_name

Управление программным обеспечением во FreeBSD

11. Чтобы установить предварительно скомпилированный пакет из репозиториев портов во FreeBSD, введите команду pkg, как показано в примере ниже.

pkg install package_name

12. Чтобы запросить информацию о конкретном установленном пакете в системе, введите приведенную ниже команду.

pkg info package_name

13. Командный переключатель pkg info отобразит сообщение «Нет пакетов, соответствующих package_name», если пакет программного обеспечения еще не установлен в вашей системы, как показано на снимке экрана ниже.

pkg info tcpdump

14. Чтобы просмотреть список всех установленных пакетов программного обеспечения во FreeBSD, выполните команду pkg info без каких-либо опций или переключателей.

Фильтр grep для команды pkg info может показать вам, присутствуют ли в системе какие-либо определенные пакеты или приложения, как показано в примере ниже.

pkg info | grep ftp

15. Чтобы удалить пакет из системы, введите приведенные ниже команды.

pkg remove package_name
or
pkg delete package_name

16. Если вы хотите предотвратить удаление или изменение установленного пакета, вы можете использовать переключатель lock для команды pkg, как показано на рисунке ниже.

pkg lock package_name

Командный переключатель Unlock pkg позволит вам снять ограничение пакета, а также изменить или удалить пакет.

pkg unlock package_name

17. Чтобы узнать, к какому установленному пакету принадлежит команда или исполняемый файл, введите следующую команду, как показано на примерах снимков экрана ниже.

pkg which /path/to/executable

18. Чтобы локально загрузить пакет из репозитория Порты, не устанавливая пакет в системе, запустите команду pkg с помощью получить переключатель.

Загруженный двоичный файл пакета, представляющий собой сжатый файл .txz, можно найти по системному пути /var/cache/pkg/.

pkg fetch package_name
ls /var/cache/pkg/ | grep package_name

19. Чтобы проверить, не подвержены ли установленные пакеты распространенным уязвимостям или ошибкам, введите приведенную ниже команду.

pkg audit -F

Чтобы просмотреть список старых уязвимостей, которые затрагивали пакет программного обеспечения в более ранних версиях, введите команду ниже.

pkg audit package_name

Ниже приведен отрывок из всех известных уязвимостей, обнаруженных в веб-сервере Nginx, скомпилированном для FreeBSD.

pkg audit nginx
nginx is vulnerable:
Affected versions:
<= 0.8.41 : > 1.4.4,1
nginx -- Request line parsing vulnerability
CVE: CVE-2013-4547
WWW: https://vuxml.FreeBSD.org/freebsd/94b6264a-5140-11e3-8b22-f0def16c5c1b.html

nginx is vulnerable:
Affected versions:
< 1.0.15
nginx -- Buffer overflow in the ngx_http_mp4_module
CVE: CVE-2012-2089
WWW: https://vuxml.FreeBSD.org/freebsd/0c14dfa7-879e-11e1-a2a0-00500802d8f7.html

nginx is vulnerable:
Affected versions:
< 1.4.7
nginx -- SPDY heap buffer overflow
CVE: CVE-2014-0133
WWW: https://vuxml.FreeBSD.org/freebsd/fc28df92-b233-11e3-99ca-f0def16c5c1b.html
...

Поддерживать утилиту управления пакетами во FreeBSD

20. Чтобы убедиться, что репозитории программного обеспечения и все установленные пакеты обновлены последними версиями или исправлениями безопасности, введите следующие команды.

pkg update
pkg upgrade

21. Чтобы отобразить статистику удаленных репозиториев и локальных пакетов, например, сколько пакетов установлено в вашей системе и сколько дискового пространства занято установленным программным обеспечением, выполните следующую команду.

pkg stats

22. Чтобы удалить все зависимости, оставленные установленными пакетами в системе, введите приведенную ниже команду.

pkg autoremove

23. Чтобы автоматически удалить локальный каталог кэша управления пакетами для удаленно загруженных пакетов, выполните приведенную ниже команду. Сначала вам следует проверить список локально загруженных бинарных пакетов.

pkg clean -a -n  
pkg clean -a -y

Вот и все! Как вы можете видеть, FreeBSD имеет впечатляющую систему сбора пакетов, аналогичную инструментам управления пакетами, используемым в дистрибутивах Linux, таких как Yum, RPM и APT, с огромным количеством предварительно скомпилированных двоичных файлов программного обеспечения и простым и понятным интерфейсом. эффективная командная строка pkg, которую можно использовать для достойного управления программным обеспечением.