Инструменты пользователя

Инструменты сайта


freebsd:dev
Warning: Undefined array key -1 in /home/virtwww/w_linko22-ru_c0d3353b/http/inc/html.php on line 1458

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
freebsd:dev [2011/01/21 15:34]
linko22@gmail.com
freebsd:dev [2011/01/24 14:59] (текущий)
linko22@gmail.com
Строка 68: Строка 68:
  
 Лежать он будет по пути /home/jails/hq.local Лежать он будет по пути /home/jails/hq.local
-Создаем каталог +Создаем каталог и сопутствующие подкаталоги 
-  [root@dev /]# mkdir /home/jails/baselocaljail+  [root@dev /]# mkdir /home/jails/baselocaljail/{bin,include,info,lib,libdata,libexec,man,sbin,share,var,www}
 В нашем случае, он будет монтироваться в джейле в каталог /usr/local В нашем случае, он будет монтироваться в джейле в каталог /usr/local
  
Строка 111: Строка 111:
  
 Все, мы в джейле. Все, мы в джейле.
 +
 ====== Настройка управляющего джейла ====== ====== Настройка управляющего джейла ======
  
 +Для того, что бы все установленные порты могли использоваться другими джейлами надо создать несколько симлинков.
 +
 +  #hq cd /usr/local/
 +  #hq ln -s /baselocaljail/{bin,include,info,lib,libdata,libexec,man,sbin,share,var,www} .
 +
 +Т.е. фактически, все основные каталоги, кроме etc будут ссылаться на каталог, который мы примонтировали для джейлов. Во всех джейлах содержимое будет одинаково.
 +
 +Для установки портов я использую локальную копию портов и его же локальный кеш distfiles, что бы не качать одни и те же порты, что уже и так есть у меня, когда я настраивал основную систему. Для этого надо подправить один файл, /etc/make.conf, закоментировать строчку DISTDIR
 +  #DISTDIR   /var/ports/distfiles
 +
 +И, соответственно, поле этого ставим те порты, которые нам нужны.
 +
 +====== Джейлы разработчиков ======
 +
 +Создаются по такому же принципу, что и управляющий джейл, за исключением того, что, все каталоги монтируются в режиме только для чтения, а каталог с портами вообще не используется.
 +====== Подводные камни ======
 +
 +Масса.
 +
 +Во первых, это php. Как известно, php использует файл /usr/local/etc/php/extenstions.ini для предопределения, какие экстеншены мы будем использовать. При установке какого либо порта для php или для его удаления, необходимо обновлять файл в остальных джейлах и рестартить везде apache. Можно просто обойтись копированием, но я сделал немного по другому.
 +
 +В каталоге /baselocaljail у меня есть каталог var, куда я засунул файл extensions.ini. Соответственно, при этом, при обновлении этого файла в управляющем джейле, он будет везде одинаков.
 +
 +  #hq mkdir /usr/local/etc/php
 +  #hq touch /baselocaljail/var/extensions.ini
 +  #hq cd /usr/local/etc/php && ln -s /baselocaljail/var/extensions.ini .
 +
 +Далее. При установке какого нибудь дополнительного порта, необходимо в каждом джейле запускать /etc/rc.d/ldcondig
 +
 +Например, для этого можно написать простенький скрипт:
 +
 +  #!/bin/csh
 +  
 +  jls | grep user | awk '{ system( "jexec "$1" /etc/rc.d/ldconfig restart");}'
 +
 +То же самое относиться к апачу
 +
 +  #!/bin/csh
 +  
 +  jls | grep user | awk '{ system( "jexec "$1" /usr/local/etc/rc.d/apache22 restart");}'
 +
 +
 +Ну, и конечно, некоторые программы кладут скрипты запуска, а так же файлы конфигураций по пути /usr/local/etc, их уже надо отслеживать руками.
  
 ====== Настройка bind ====== ====== Настройка bind ======
freebsd/dev.1295613292.txt.gz · Последнее изменение: 2011/01/21 15:34 — linko22@gmail.com