FreeBSD virtual environment management and repository

2020-10 upd: we reached the first fundraising goal and rented a server in Hetzner for development! Thank you for donating !

Внимание! Данные страницы описывают CBSD версии 13.0.x. Если вы используете более раннюю версию, рекомендуется сначала обновиться.

Обратите внимание! Данные команды поддерживают маску (wildcard) в качестве jname, например: jname='*', jname='ja*l*'

Работа с ПО и pkg(7) в jail через CBSD

Команда pkg

			% cbsd pkg
		

Описание:

cbsd pkg - это обертка вокруг стандартного FreeBSD pkg(7) для использования аргумента jname для более комфортной работы с ПО клетки из мастер-хоста.

Через аргумент mode= указывается необходимое действие. Значения могут быть:

  • add, install - установить ПО
  • remove - удалить ПО
  • bootstrap - проинициализировать pkg (обычно делается при создании клетки 1 раз)
  • info, query - выполнить соответствующие запросы info или query с аналогичным pkg синтаксисом
  • update - выполнить pkg update
  • upgrade - выполнить upgrade
  • clean - выполнить clean для очистки кеша pkg

Для некоторых команд (clean, update, upgrade) позволительно jname= указывать маской для выполнения операции одновременно в нескольких клетках

Имейте ввиду, что вначале должны указываться параметры mode и jname. Все что идет после - не анализируется и относиться к pkg(7) как есть.

Кроме этого, учтите, что все операции выполняются с установленными переменными окружения ASSUME_ALWAYS_YES=yes и IGNORE_OSVERSION=yes для подавления интерактивности, что в основном, необходимо для работы в автоматизированных сценариях. Если по каким-то причинам вам это не подходит, используйте cbsd rexe для работы с pkg напрямую.

Пример1: Обновить индексные файлы внутри ВСЕХ контейнеров:

			% cbsd pkg mode=update jname='*'
		

Пример2: Обновить ВСЕ пакеты внутри контейнеров, название которых начинаются с redis*:

			% cbsd pkg mode=upgrade jname='redis*'
		

Пример3: Очистить кеш pkg все ВСЕХ контейнерах:

			% cbsd pkg mode=clean jname='*'
		

Пример4: Получить список установленного ПО в клетке jail1:

			% cbsd pkg mode=query jname=jail1 %o
		

Пример5: Установить bash, mc, wget в клетку mytest1:

			% cbsd pkg mode=install jname=mytest1 bash mc wget
		

или, что гораздо лучше (во избежание одинаковых имен в разных категориях), указывать origin пакета, а не имя:

			% cbsd pkg mode=install jname=mytest1 shells/bash ftp/wget misc/mc
		

Пример6: Обновить пакет mc в клетке jail1:

			% cbsd pkg mode=upgrade jname=jail1 mc
		

Пример7: Удалить пакеты wget и lsof:

			% cbsd pkg mode=remove jname=jail1 wget lsof