Cборка мира - make buildworld DESTDIR=/jails/test

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
550953
рядовой
Сообщения: 24
Зарегистрирован: 2014-09-07 9:20:17

Cборка мира - make buildworld DESTDIR=/jails/test

Непрочитанное сообщение 550953 » 2014-09-17 9:06:43

uname -a

Код: Выделить всё

FreeBSD freebsd.my 10.0-RELEASE FreeBSD 10.0-RELEASE #0 r260789: Fri Jan 17 01:46:25 UTC 2014     root@snap.freebsd.org:/usr/obj/usr/src/sys/GENERIC  i386
# file: /etc/make.conf

Код: Выделить всё

#
WRKDIRPREFIX=           /usr/ports
DISTDIR=                /usr/ports/distfiles
PACKAGES=               /usr/ports/packages
INDEXDIR=               /usr/ports
При выполнении команд
mkdir /jails/test
cd /usr/src
make buildworld DESTDIR=/jails/test

make: don't know how to make /usr/lib/libstdc++.a. Stop
*** [bootstrap-tools] Error code 2

Stop in /usr/src.
*** [_bootstrap-tools] Error code 1

Stop in /usr/src.
*** Error code 1

Stop.
make: stopped in /usr/src
root@freebsd:/usr/src # make truenas
make: don't know how to make truenas. Stop

make: stopped in /usr/src
root@freebsd:/usr/src # make git-internal
make: don't know how to make git-internal. Stop

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35266
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Cборка мира - make buildworld DESTDIR=/jails/test

Непрочитанное сообщение Alex Keda » 2014-09-17 9:41:52

а зачем вам DESTDIR на сборке?
Убей их всех! Бог потом рассортирует...

550953
рядовой
Сообщения: 24
Зарегистрирован: 2014-09-07 9:20:17

Re: Cборка мира - make buildworld DESTDIR=/jails/test

Непрочитанное сообщение 550953 » 2014-09-17 9:52:29

>а зачем вам DESTDIR на сборке?
Jail машину хочу собрать


Если без параметров
make buildworld

Код: Выделить всё

make: don't know how to make /usr/lib/libstdc++.a. Stop
*** [bootstrap-tools] Error code 2

Stop in /usr/src.
*** [_bootstrap-tools] Error code 1

Stop in /usr/src.
*** Error code 1

Stop.
make: stopped in /usr/src

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35266
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Cборка мира - make buildworld DESTDIR=/jails/test

Непрочитанное сообщение Alex Keda » 2014-09-17 9:54:43

а соурсы точно от вашей системы?
Убей их всех! Бог потом рассортирует...

550953
рядовой
Сообщения: 24
Зарегистрирован: 2014-09-07 9:20:17

Re: Cборка мира - make buildworld DESTDIR=/jails/test

Непрочитанное сообщение 550953 » 2014-09-17 16:49:38

Незнаю, были стандартные что с болванки установились.
Сегодня попробовал через эту инструкцию обновить
http://vniz.net/svn.html
/usr/src и /usr/ports скачались.


с этим mergemaster -pivU не понял, что делать и нужно ли.

После манипуляций по инстркции и выполнения
мейк билдволд

Код: Выделить всё

\"i386-unknown-freebsd10.1\" -DLLVM_HOST_TRIPLE=\"i386-unknown-freebsd10.1\" -DDEFAULT_SYSROOT=\"\" -I/usr/obj/usr/src/tmp/legacy/usr/include  -fno-exceptions -fno-rtti -c /usr/src/usr.bin/clang/tblgen/../../../contrib/llvm/utils/TableGen/CodeEmitterGen.cpp
c++ -O2 -pipe -I/usr/src/usr.bin/clang/tblgen/../../../contrib/llvm/include -I/usr/src/usr.bin/clang/tblgen/../../../contrib/llvm/tools/clang/include -I/usr/src/usr.bin/clang/tblgen/../../../contrib/llvm/utils/TableGen -I. -I/usr/src/usr.bin/clang/tblgen/../../../contrib/llvm/../../lib/clang/include -DLLVM_ON_UNIX -DLLVM_ON_FREEBSD -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -DNDEBUG -fno-strict-aliasing -DLLVM_DEFAULT_TARGET_TRIPLE=\"i386-unknown-freebsd10.1\

550953
рядовой
Сообщения: 24
Зарегистрирован: 2014-09-07 9:20:17

Re: Cборка мира - make buildworld DESTDIR=/jails/test

Непрочитанное сообщение 550953 » 2014-09-17 20:29:06

Отработала без ошибкок make buildworld а make installworld выкинула такие ошибки :
>>> Installing everything
--------------------------------------------------------------
cd /usr/src; make -f Makefile.inc1 install
===> share/info (install)
===> lib (install)
===> lib/csu/i386-elf (install)
cc -O2 -pipe -I/usr/src/lib/csu/i386-elf/../common -I/usr/src/lib/csu/i386-elf/../../libc/include -std=gnu99 -Qunused-arguments -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls -Wold-style-definition -Wno-pointer-sign -Wno-empty-body -Wno-string-plus-int -Wno-unused-const-variable -c crti.S
cc: not found
*** Error code 127

Stop.
make[5]: stopped in /usr/src/lib/csu/i386-elf
*** Error code 1

Stop.
make[4]: stopped in /usr/src/lib
*** Error code 1

Stop.
make[3]: stopped in /usr/src
*** Error code 1

Stop.
make[2]: stopped in /usr/src
*** Error code 1

Stop.
make[1]: stopped in /usr/src
*** Error code 1

Stop.
make: stopped in /usr/src
/usr/src/Makefile.inc1
http://pastebin.com/ZEqwmKC6

/usr/src/Makefile
http://pastebin.com/Pn12AH3J


Как можно решить? Помогите пожалуйста.

550953
рядовой
Сообщения: 24
Зарегистрирован: 2014-09-07 9:20:17

Re: Cборка мира - make buildworld DESTDIR=/jails/test

Непрочитанное сообщение 550953 » 2014-09-18 8:22:28

env

Код: Выделить всё

SHELL=/bin/csh
SSH_CLIENT=192.168.1.2 37833 22
LC_CTYPE=C
LOGNAME=kolya
PAGER=more
LANG=C
MAIL=/var/mail/kolya
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/root/bin
EDITOR=vi
ENV=/home/kolya/.shrc
PWD=/usr/home/kolya
TERM=xterm
SSH_TTY=/dev/pts/0
HOME=/root
USER=kolya
LC_COLLATE=POSIX
SSH_CONNECTION=192.168.1.2 37833 192.168.1.3 22
MM_CHARSET=ru_RU.UTF-8
LC_ALL=C
BLOCKSIZE=K
HOSTTYPE=FreeBSD
VENDOR=intel
OSTYPE=FreeBSD
MACHTYPE=i386
SHLVL=1
GROUP=wheel
HOST=freebsd.my
REMOTEHOST=192.168.1.2

550953
рядовой
Сообщения: 24
Зарегистрирован: 2014-09-07 9:20:17

Re: Cборка мира - make buildworld DESTDIR=/jails/test

Непрочитанное сообщение 550953 » 2014-09-18 8:43:37

На форумах забугорных пишут про установку gcc. Выполнил:
pkg install gcc
А потом:
make installworld
Но результат не изменился. Что можно сделать? Или оно не решается? отформатировать поновой жосткий диск и установить чистую FreeBSD 10?

guest
проходил мимо

Re: Cборка мира - make buildworld DESTDIR=/jails/test

Непрочитанное сообщение guest » 2014-09-18 10:23:02

550953 писал(а):На форумах забугорных пишут про установку gcc. Выполнил:
pkg install gcc
А потом:
make installworld
Но результат не изменился. Что можно сделать? Или оно не решается? отформатировать поновой жосткий диск и установить чистую FreeBSD 10?
Ваша проблема в нежелании изучать handbook и читать книги о FreeBSD!
Свое незнание и непонимание, Вы пытаетесь подменить разными советами с разных форумов и статей,
а без понимания, это Вам не поможет.

1. У Вас была установлена FreeBSD 10.0/i386 - 32bit'ный релиз 10.0
2. Вам нужно собрать мир - для этого необходимы sources системы, наличие /usr/src
a) sources 10.0 можно установить с инсталляционного диска FreeBSD 10.0/i386
b) скачать с ftp и развернуть руками
c) использовать svn или svnlite для получения sources 10.0
3. Собрать систему как описано в Handbook или
в /usr/src/Makefile

Вместо того чтобы развернуть ПРАВИЛЬНЫЕ sources от 10.0-RELEASE, Вы развернули Beta от 10.1.

Действия:

# cd /usr/src
# make buildworld
- производят сборку системы в директории /usr/obj и никакие DESTDIR в данном случае НЕ НУЖНЫ
а вот если сборка системы прошла успешно, тогда для install* можно использовать DESTDIR с указанием
КУДА установить, например:

# mkdir -p /jails/machine1
# cd /usr/src
# make installworld DESTDIR=/jails/machine1
# make distribution DESTDIR=/jails/machine1
...
перед каждой новой сборкой системы, правильно - удалять предыдущие:
# rm -rf /usr/obj/*
# cd /usr/src
# make ...
# make ...

обновление sources системы через svn/svnlite:

- если у нас установлена 10.0-RELEASE, то для получения правильных sources будет:

# rm -rf /usr/src/*
# svnlite co svn://svn.freebsd.org/base/release/10.0.0 /usr/src

svn://svn.freebsd.org/base/release/10.0.0
^^^- протокол svn ------------^^^^^^^^^^^^^ release 10.0.0
subversion может работать по протоколу svn или http (если svn сервер поддерживает http)

если нам нужен только RELEASE: svn://svn.freebsd.org/base/release/10.0.0
если нам нужен 10.0-RELEASE + патчи для ЭТОГО релиза, нужно скачивать sources releng10:

# svnlite co svn://svn.freebsd.org/base/releng/10.0

Пока у Вас будет каша в голове по этому вопросу, соответственно будет каша в системе.

guest
проходил мимо

Re: Cборка мира - make buildworld DESTDIR=/jails/test

Непрочитанное сообщение guest » 2014-09-18 10:25:48

550953 писал(а):На форумах забугорных пишут про установку gcc. Выполнил:
pkg install gcc
А потом:
make installworld
Но результат не изменился. Что можно сделать? Или оно не решается? отформатировать поновой жосткий диск и установить чистую FreeBSD 10?
Начиная с 10.0-RELEASE, в FreeBSD используется CLANG, от gcc отказались, для сборки системы и ядра
не нужен gcc!

550953
рядовой
Сообщения: 24
Зарегистрирован: 2014-09-07 9:20:17

Re: Cборка мира - make buildworld DESTDIR=/jails/test

Непрочитанное сообщение 550953 » 2014-09-18 15:18:52

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

Патчи - это сборка моя же только с разными заплатками в безопастности. Правильно я понимаю?

guest
проходил мимо

Re: Cборка мира - make buildworld DESTDIR=/jails/test

Непрочитанное сообщение guest » 2014-09-18 17:42:54

550953 писал(а):Cпасибо большое за растолкование. Тяжелей оказывается с FreeBSD чем Убунтой или Дебианом. По поводу книжек вы правы, нехватает времени, целую неделю долблюсь. Полагал так само быстро смогу развернутся как на том же Дебиане, а не тут то было. Даже не расчитывал что реально в таком деле помощь получить.
"нехватает времени, целую неделю долблюсь" - противоречие не наблюдаете? (про время и неделю)
Патчи - это сборка моя же только с разными заплатками в безопастности. Правильно я понимаю?
В FreeBSD, исходные тексты системы и ядра обязаны быть ссинхронизованы!
Такая архитектура всех xBSD систем.
В Linux'е, ядро и система "независимы" , в кавычках потому что определенная зависимость есть.
Те в Debian или Ubuntu релизе - Вы можете апгрейдить ядра "независимо" от системы.
В xBSD - не можете, ядро и система должны быть ОДНОЙ версии.

FreeBSD 10.0-RELEASE - это релиз, для релизов выпускаются официальные патчи, которые могут
требовать отдельной пересборки библиотек или утилит из sources, а могут требовать пересборки ядра или
системы, или системы вместе с ядром.
Отсюда понятие тега для svn (ранее было для cvs/cvsup):

Код: Выделить всё

[joker]~ > svnlite list svn://svn.freebsd.org/base
ROADMAP.txt
head/
projects/
release/
releng/
stable/
svnadmin/
user/
vendor/
vendor-crypto/
vendor-sys/
[joker]~ >
Выше:
head/ - она же ветка current, девелоперская ветка развития FreeBSD 11
release/ - внутри все релизы, так как они выпущены в свет FreeBSD Team:

Код: Выделить всё

[joker]~ > svnlite list svn://svn.freebsd.org/base/release
10.0.0/
2.0/
2.0.5/
2.1.0/
...
9.1.0/
9.2.0/
9.3.0/
[joker]~ >
соответственно, тег для 10.0 -> 10.0.0 -> соответственно для скачивания sources:

# svnlite co svn://svn.freebsd.org/base/release/10.0.0 [/usr/src]
в последних кавычках КУДА скачивать в отличие от текущего pwd

X.Y.Z - X - номер ветки, Y - major релиза, Z - minor релиза
например: FreeBSD 2.2.5-RELEASE или 10.0-RELEASE -> 10 ветка, major и minor нулевые

Чтобы было понятно, развитие FreeBSD идет:
- Development ветка или current, теги head или "." (точка)
- Stable ветка - на протяжении развития которой создают РЕЛИЗЫ

Сейчас:
- current 11'ая
- stable 10'ая
- 9'ая ветка уже устарела, но ее развитие пока поддерживается

Вернемся к официальным патчам для РЕЛИЗОВ:
- допустим у нас установлен релиз 8.4:
svn://svn.freebsd.org/base/release/8.4.0

- к нему было выпущено X-патчей, чтобы их получить и далее выполнить необходимые сборки:
svn://svn.freebsd.org/base/releng/8.4

sources релиза 10.0:
svn://svn.freebsd.org/base/release/10.0.0
с патчами (releng10.0):
svn://svn.freebsd.org/base/releng/10.0

все релизы БЕЗ патчей (в оригинальном виде):

# svnlite list svn://svn.freebsd.org/base/release

все релизы с патчами на текущий момент:

# svnlite list svn://svn.freebsd.org/base/releng

понятно?

да, чтобы до конца была ясность, ибо две ветки развития: Current (Head - девелоперска) и Stable (стабильная)

Код: Выделить всё

 svnlite list svn://svn.freebsd.org/base/stable 
10/
2.0.5/
2.1/
2.2/
3/
4/
5/
6/
7/
8/
9/
на текущий момент:
- current (head) 11'ая:
svn://svn.freebsd.org/base/head
- stable, стабильная 10'ая
svn://svn.freebsd.org/base/stable/10

теперь вроде все

snorlov
подполковник
Сообщения: 3828
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: Cборка мира - make buildworld DESTDIR=/jails/test

Непрочитанное сообщение snorlov » 2014-09-18 20:45:29

А зачем вы пересобираете мир и ядро, чем вас current не устраивает...

guest
проходил мимо

Re: Cборка мира - make buildworld DESTDIR=/jails/test

Непрочитанное сообщение guest » 2014-09-18 22:10:24

snorlov писал(а):А зачем вы пересобираете мир и ядро, чем вас current не устраивает...
О чем этот вопрос?
Вы когда-нибудь клетки создавали?

snorlov
подполковник
Сообщения: 3828
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: Cборка мира - make buildworld DESTDIR=/jails/test

Непрочитанное сообщение snorlov » 2014-09-19 9:01:12

Я просто с дистрибутива разворачивал архивы в /jails/...

guest
проходил мимо

Re: Cборка мира - make buildworld DESTDIR=/jails/test

Непрочитанное сообщение guest » 2014-09-19 9:46:12

snorlov писал(а):Я просто с дистрибутива разворачивал архивы в /jails/...
что справедливо для релиза.
А откуда взять и развернуть бинарный дистрибутив для RELEASE+BUGFIX?

snorlov
подполковник
Сообщения: 3828
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: Cборка мира - make buildworld DESTDIR=/jails/test

Непрочитанное сообщение snorlov » 2014-09-19 12:50:44

guest писал(а):
snorlov писал(а):Я просто с дистрибутива разворачивал архивы в /jails/...
что справедливо для релиза.
А откуда взять и развернуть бинарный дистрибутив для RELEASE+BUGFIX?
Ну для этого случая не обязательно

Код: Выделить всё

 make buildworld DESTDIR=...
, лучше просто его собрать, а затем

Код: Выделить всё

make installworld DESTDIR=...

guest
проходил мимо

Re: Cборка мира - make buildworld DESTDIR=/jails/test

Непрочитанное сообщение guest » 2014-09-19 13:52:25

snorlov писал(а):
guest писал(а):
snorlov писал(а):Я просто с дистрибутива разворачивал архивы в /jails/...
что справедливо для релиза.
А откуда взять и развернуть бинарный дистрибутив для RELEASE+BUGFIX?
Ну для этого случая не обязательно

Код: Выделить всё

 make buildworld DESTDIR=...
, лучше просто его собрать, а затем

Код: Выделить всё

make installworld DESTDIR=...
складывается впечатление, что люди видят ТОЛЬКО магические слова и не понимают их смысл. :(

какой такой павлин-мавлин, тьфу DESTDIR в случае buildworld?
не воспринимается никакой DESTDIR в случае buildworld, ибо ничего не несет для сборки.
buildworld by default производит сборку toolchain и мира в /usr/obj - все, и накласть в этом случае на DESTDIR
Ну ладно бы еще использовали MAKEOBJDIRPREFIX...
Вот для world, installworld, distribution - DESTDIR=xxx, несет ясный и понятный смысл.

Автор нарвался на ошибки из-за элементарного поп-копирования с чужих МИНИ-статей без понимания
и осознания процесса, в результате нарвался на 10.1-Beta при неверном обновлении sources.
Во время Alpha/Beta и Pre-Release, можно нарваться на что угодно, о чем автору был выдан короткий ликбез
который наверняка помог и пошел на пользу.

Если кому-то лень читать Handbook или man build, можно просто посмотреть /usr/src/Makefile* и
/usr/share/mk/

550953
рядовой
Сообщения: 24
Зарегистрирован: 2014-09-07 9:20:17

Re: Cборка мира - make buildworld DESTDIR=/jails/test

Непрочитанное сообщение 550953 » 2014-09-20 14:01:42

Сколько времени будет выполнятся эта команда "make buildworld" ? Вчера вечером запустил на ноутбуке целерон 1200мгц, скоро конец рабочего дня, а оно еще устаналивается.

550953
рядовой
Сообщения: 24
Зарегистрирован: 2014-09-07 9:20:17

Re: Cборка мира - make buildworld DESTDIR=/jails/test

Непрочитанное сообщение 550953 » 2014-09-20 14:07:22

grep -w CPU: /var/run/dmesg.boot
CPU: Intel Celeron (1095.58-MHz 686-class CPU)

guest
проходил мимо

Re: Cборка мира - make buildworld DESTDIR=/jails/test

Непрочитанное сообщение guest » 2014-09-20 14:34:22

550953 писал(а):Сколько времени будет выполнятся эта команда "make buildworld" ? Вчера вечером запустил на ноутбуке целерон 1200мгц, скоро конец рабочего дня, а оно еще устаналивается.
make buildworld - ничего не устанавливает, а собирает систему "сбоку", то есть в /usr/obj/

последовательная сборка (make без -j) на одном CPU, на слабом процессоре, может занять много времени.

Почему не воспользовались ezjail?
Вместо buildworld, бинарники можно развернуть из архивов -> base.txz

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

550953
рядовой
Сообщения: 24
Зарегистрирован: 2014-09-07 9:20:17

Re: Cборка мира - make buildworld DESTDIR=/jails/test

Непрочитанное сообщение 550953 » 2014-09-21 1:33:13

Принцип хочу понять. Спасибо большое что разтолковали о принципе работы, а то действительно как волшебные слова все было. Пишут ведь все так просто про обычный джаил, а у меня с первого начала после установки всей системы и попытки установить первым делом миднайт кучу ошибок вывалило. Ежджаил интересна, пробоывaл ее и заметил что юзаются файлы в ней с base.txz

Итого за полтары сутки билдворлд таки собрал сборку.

guest
проходил мимо

Re: Cборка мира - make buildworld DESTDIR=/jails/test

Непрочитанное сообщение guest » 2014-09-21 11:40:56

550953 писал(а):Принцип хочу понять. Спасибо большое что разтолковали о принципе работы, а то действительно как волшебные слова все было. Пишут ведь все так просто про обычный джаил, а у меня с первого начала после установки всей системы и попытки установить первым делом миднайт кучу ошибок вывалило. Ежджаил интересна, пробоывaл ее и заметил что юзаются файлы в ней с base.txz

Итого за полтары сутки билдворлд таки собрал сборку.
Когда структура и архитектура ОС становится понятна в некотором приближении - использование
конструктора на ее базе тоже упрощается.

1. FreeBSD легко разворачивается руками:
- оформляется диск: партиции + загрузчик (gpart)
- создаются FS: newfs
- разворачивается дистрибутив, минимум: base + kernel [+ lib32 для 64'bit]

2. Рекомендуемый вариант СБОРКИ, он же - апгрейд из sources: система, ядро:
- описано в /usr/src/Makefile
- если исходники системы у нас не изменялись, мы можем пересобрать и установить CUSTOM'ное ядро
без дополнительных движений:
# make buildkernel
# make installkernel
# reboot
- если мы обновляли sources FreeBSD (например переход с релиза на релиз), в этом случае, необходимо
сначала собрать мир, затем ядро, далее установить новое ядро и затем установить новый мир, причина
- ядро и система должны быть синхронизированы:
# make buildworld
# make buildkernel
# make installkernel
# make installworld
# reboot
(расписывается укрупненно без дополнительных опций и mergemaster)

3. Бинарный апгрейд - использование freebsd-update, вещь хорошая и правильная, удобная,
но личное мнение, только обретает очертания стабильной.

Вывод: апгрейд FreeBSD возможен двумя вариантами,
a) сборка из sources (/usr/src);
b) бинарный апгрейд через freebsd-update;

JAIL:
- традиционный - использует ядро и стек TCP/IP от HOST машины;
- VIMAGE (опция в ядре) - использует ядро HOST машины и виртуальный стек TCP/IP VNET;

клетка - полностью повторяет структуру HOST машины, но без devfs - ограниченый доступ к устройствам:
# less /etc/defaults/devfs.rules -> devfsrules_jail - что доступно jail'ам

укрупненно: HOST
/boot
/[s]bin
/etc
/usr[bin,sbin,lib...,local]
/var
/home
/dev - доступ к памяти, устройствам

jail/клетка -> создаем базовую директорию, которая будет виртуальным корнем:
# mkdir /jails -> будущий "/" корень для jail-машин
и внутри создается копия системы:
/jails[/] - /[s]bin, /etc, /usr[bin,sbin,lib...,local],/var,[/home]
к примеру, если /home общий для всех jail-машин, его можно через mount_nullfs смонтировать
во все jail-машины, аналогично делается с /dev с ограничениями доступа (см выше правила devfsrules_jail)

Все, далее простой вывод, как скопировать систему для каждой jail-машины?
Два варианта (смотрим выше про апгрейд FreeBSD):

1) freebsd-update - точно позволяет это делать в 10.0, возможно в 9.3
2) сборка системы и установка куда укажем в DESTDIR (ядро для jail не нужно по архитектуре)
еще один метод: развернуть base.txz

base.txz неприемлем в случае если мы апгрейдим, RELEASE -> RELENG (RELEASE + BUG FIxes),
его просто неоткуда взять, [base,kernel,lib32].txz существуют только для RELEASE, те их
можно взять из iso или скачать с зеркал freebsd.

Развитие JAIL после релиза 9.1 -> обновление jail до jail v.2 -> /etc/rc.d/jail скрипт deprecated,
конфигурация jail-машине задается в /etc/jail.conf вместо /etc/rc.conf.
В /etc/rc.conf - только имена и разрешение запуска.

Как-то так, если укрупненно.

Есть еще одна тонкость, использовать бинарную базу для всех jail-машин, если посмотреть структуру,
/[s]bin, /usr/[sbin], /usr[lib...] - одинкаовая для всех jail-машин одной версии ОС.
Значит можно создавать базовый jail и монтировать его во все jail-машины, что позволяет легко
апгредить jail-машины. Создали обновленную базовую jail и все.
Но в этом случае freebsd-update видимо не канает, sorry, не смотрел, использую свои скрипты.
Когда-то ezjail такое использоваол.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35266
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Cборка мира - make buildworld DESTDIR=/jails/test

Непрочитанное сообщение Alex Keda » 2014-09-21 20:27:07

у меня некоторое время работала машина с большой корневой системой и десятком jail
причём в них индивидуальными были только конфиги - папочки создавал через mtree или своими скриптами, а вот почти все файлы были хардлинками на те что в системе...
--
потом надоело, и при обновлении стало всё как везде

--
это так, к тому что можно если разобраться =)
Убей их всех! Бог потом рассортирует...

550953
рядовой
Сообщения: 24
Зарегистрирован: 2014-09-07 9:20:17

Re: Cборка мира - make buildworld DESTDIR=/jails/test

Непрочитанное сообщение 550953 » 2014-09-21 21:14:45

Все отлично инсталируется. Я руководствовался всеми ответами с этой темы и сегодня с этой странички
http://mediaunix.com/virtualizaciya-s-i ... o-freebsd/
В результате все стартануло, виртуалка в машине Фрибсд работает и конекты идут по ssh.

У меня до этого было так: модем-роутерер(192.168.1.1) с 80 внешнего порта на 80 внутренний порт машинки из локалки (192.168.1.3) перекидывал и nginx работал во внешнюю сеть. Теперь nginx хочу удалить и запускать с виртуалки(построить на виртуалках) сервер. Но снова вопросы:
1) Как теперь будет в этой виртуалке работать nginx? в локальной машинке я по той инструкции создал для виртуалки адрес 192.168.1.4. Что будет выдаватся во внешнюю сеть локальной машины порт или виртуальной машины порт?
2) Как "правильно" построить теперь систему под личный веб-сервер? Виртуалка это хорошо с рутовскими правами, но это я правильно понял для vpn cервисов удобно? Видел, есть статьи в которых описывают посадку nginx в свой джаил и пишут что безопасней тогда. Как насчет mysql, php, php-fpm? их тоже по отдельным клеткам сажают, как это все может тогда взаимодействовать?
3) Где можно почитать о построения для хостинг компании(FreeBSD) и целесообразно ли его на jail-аx делать? Читая про CBSD(что гугл выдал о хостинге на джаилах) то там очень много волшебных слов. Нужно ли СBSD изучать систему? или и тут есть подход?

Про /etc/jail.conf отдельное спасибо, а то описал в rc.conf инструкции по созданию своей джаил.