<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Thanks for this post.<br>I will study it and see if it solves my issue<br><br><div><hr id="stopSpelling">From: ilya@arhipkin.com<br>To: oi-dev@openindiana.org<br>Date: Fri, 4 Apr 2014 19:38:21 +0600<br>Subject: Re: [oi-dev] beginners customized distro_const question<br><br><div><span><span style="background-color:#ffffff;" title="Процедура настройки репозитория состоит из следующих этапов: <br>">Creating OpenSolaris 2009.06 repository </span></span></div><div><span><span style="background-color:#ffffff;" title="Процедура настройки репозитория состоит из следующих этапов: <br>">The procedure for setting the repository consists of the following stages: <br></span><span style="background-color:#ffffff;" title="- Получение ISO-образа с репозиторием OpenSolaris <br>">- Preparation of ISO-image from the OpenSolaris repository <br></span><span style="background-color:#ffffff;" title="- Подготовка файловой системы <br>">- Preparation of the file system <br></span><span style="background-color:#ffffff;" title="- Копирование содержимого репозитория из образа <br>">- Copy the contents of the image repository <br></span><span style="background-color:#ffffff;" title="- Настройка сервера через сервисы <br>">- Setting up a server through the services <br></span><span style="background-color:#ffffff;" title="- Настройка клиента и проверка работоспособности сервера <br>">- Configure client and server health check <br></span><span title="- Обновление пакетов и исправление контрольных сумм <br>">- Upgrading packages and fix checksums <br></span><span title="- Окончательное тестирование <br>">- Final testing <br></span><span style="background-color:#ffffff;" title="Далее рассмотрим, что нужно сделать на каждом этапе. <br>">Next, consider what to do at each stage. <br></span><span style="background-color:#ffffff;" title="Получение ISO-образа с репозиторием OpenSolaris <br>">Obtaining ISO-image with the repository OpenSolaris <br></span><span style="background-color:#ffffff;" title="Итак для настройки репозитория нам понадобится образ содержащий пакеты репозитория <br>">So to set up a repository, we need an image repository containing packages <br></span><span style="background-color:#ffffff;" title="его можно скачать, например на genunix.org или sun.com, а точнее так: <br>">it can be downloaded, such as genunix.org or sun.com, or more precisely as follows: <br></span><span style="background-color:#ffffff;" title="# wget http://www.genunix.org/dist/indiana/osol-repo-0906-full.iso <br>"># Wget http://www.genunix.org/dist/indiana/osol-repo-0906-full.iso <br></span><span title="или так: <br>">or as follows: <br></span><span style="background-color:#ffffff;" title="# wget http://dlc.sun.com.edgesuite.net/osol/opensolaris/2009/06/osol-repo-0906-full.iso <br>"># Wget http://dlc.sun.com.edgesuite.net/osol/opensolaris/2009/06/osol-repo-0906-full.iso <br></span><span style="background-color:#ffffff;" title="Репозиторий можно скачать в виде 2-ух образов, которые помещаются на DVD-диск объемом <br>">The repository can be downloaded in the form of 2-images that fit on a DVD-disk capacity <br></span><span style="background-color:#ffffff;" title="4,7 Гб, либо в виде одного образа размером около 7,2 Гб.">4.7GB, either as a single image the size of about 7.2 GB. </span><span title="Приведенные выше ссылки <br>">These links <br></span><span style="background-color:#ffffff;" title="указывают на репозиторий в единственном образе.">point to the repository in a single image. </span><span title="Впрочем, версию в двух образах можно <br>">However, the version in two images can be <br></span><span title="найти рядом. <br>">found close by. <br></span><span title="Подготовка файловой системы <br>">Preparation filesystem <br></span><span style="background-color:#ffffff;" title="Создадим отдельную файловую систему ZFS для того, что бы разместить на ней <br>">Create a separate ZFS file system for that would place her <br></span><span title="репозиторий.">repository. </span><span style="background-color:#ffffff;" title="Отдельная файловая систем а ZFS для репозитория дает нам следующие <br>">Separate file systems and ZFS repository gives us the following <br></span><span title="преимущества: <br>">Advantages: <br></span><span title="l Достигается лучшая производительность <br>">l results in better performance <br></span><span style="background-color:#ffffff;" title="l Возможность установки индивидуальных параметров для файловой системы, таких <br>">l Ability to set individual parameters for the file system, such <br></span><span title="как сжатие и обновление времени доступа <br>">as compression and update access time <br></span><span style="background-color:#ffffff;" title="l Создание снапшотов и бэкапов файловой системы с репозиторием <br>">l Create snapshots and backups of the file system to the repository <br></span><span title="Для экономии дискового пространства применим сжатие(опция compression), а для <br>">To save disk space applies compression (optional compression), and for <br></span><span title="увеличения быстродействия отключим обновление времени доступа(опция atime). <br>">improve performance, disable access time updates (optional atime). <br></span><span title="Естественно, что все команды здесь и далее должны выполняться с правами <br>">Naturally, all the team here and should continue to run as <br></span><span title="суперпользователя.">superuser. </span><span title="Создаем: <br>">Create: <br></span><span title="# zfs create -o compression=on -o atime=off rpool/repo <br>"># Zfs create-o compression = on-o atime = off rpool / repo <br></span><span style="background-color:#ffffff;" title="Теперь когда у нас есть файловая система для репозитория и собственно сами данные в <br>">Now we have a file system repository and the actual data itself in <br></span><span title="образе, нужно скопировать данные из образа на жесткий диск. <br>">image, copy the data from the image to your hard drive. <br></span><span title="Копирование содержимого репозитория из образа <br>">Copying the contents of the image repository <br></span><span title="Для копирования данных нужно смонтировать образ репозитория, и затем скопировать все <br>">To copy the data you need to mount the image repository, and then copy all <br></span><span title="данные в, подготовленное нами на предыдущем шаге, место: <br>">data prepared in the previous step, place: <br></span><span title="# mount -F hsfs $(lofiadm -a /downloads/osol-repo-0906-full.iso) /mnt <br>"># Mount-F hsfs $ (lofiadm-a / downloads/osol-repo-0906-full.iso) / mnt <br></span><span title="# rsync -aP /mnt/repo /rpool/repo <br>"># Rsync-aP / mnt / repo / rpool / repo <br></span><span title="Обратите внимание: отсутствие слэшей в конце путей принципиально (для получения <br>">Please note: no trailing slash ways fundamentally (for <br></span><span title="подробностей обращайтесь к man rsync.).">details, refer to the man rsync.). </span><span title="После того, как репозиторий скопирован образ <br>">Once copied image repository <br></span><span title="можно отмонтировать: <br>">can unmount: <br></span><span title="# umount /mnt <br>"># Umount / mnt <br></span><span title="# lofiadm -d /dev/lofi/1 <br>"># Lofiadm-d / dev/lofi/1 <br></span><span title="В последней строке возможна другая цифра в зависимости от подключенных на данный <br>">The last line can be different depending on the number of connected active <br></span><span title="момент устройств.">the devices. </span><span title="Итак, репозиторий получен и скопирован переходим к настройке сервиса. <br>">So repository obtained and copied proceed to configure the service. <br></span><span title="Настройка сервера через сервисы <br>">Setting up the server through the services <br></span><span title="Теперь нам необходимо настроить сервис обслуживающий репозиторий, его исполняемый <br>">Now we need to set up housekeeping service repository, its executable <br></span><span title="файл находиться в /usr/lib и называется pkg.depotd (подробнее смотрите man pkg.depotd). <br>">The file is located in / usr / lib and called pkg.depotd (for details see man pkg.depotd). <br></span><span style="background-color:#ffffff;" title="Сначала необходимо указать корневой каталог нашего репозитория, который мы подготовили <br>">Please specify the root directory of our repository which we have prepared <br></span><span title="ранее: <br>">previously: <br></span><span title="# svccfg -s pkg/server setprop pkg/inst_root=/rpool/repo/repo <br>"># Svccfg-s pkg / server setprop pkg / inst_root = / rpool / repo / repo <br></span><span title="Опционально можно указать порт (по умолчанию 80).">Optionally, you can specify the port (default is 80). </span><span title="Установим его значение равным 10000: <br>">Set the value to 10000: <br></span><span title="# svccfg -s pkg/server setprop pkg/port=10000 <br>"># Svccfg-s pkg / server setprop pkg / port = 10000 <br></span><span style="background-color:#ffffff;" title="Копируем конфигурационный файл и указываем путь к нему для сервиса: <br>">Copy the configuration file and specify the path for the service: <br></span><span title="# cp -p /rpool/repo/repo/cfg_cache /rpool/repo/ <br>"># Cp-p / rpool / repo / repo / cfg_cache / rpool / repo / <br></span><span title="# svccfg -s pkg/server setprop pkg/cfg_file=/rpool/repo/cfg_cache <br>"># Svccfg-s pkg / server setprop pkg / cfg_file = / rpool / repo / cfg_cache <br></span><span title="Далее правим конфигурационный файл: <br>">Next, we correct the configuration file: <br></span><span title="# vi /rpool/repo/cfg_cache <br>"># Vi / rpool / repo / cfg_cache <br></span><span title="Нужно поменять значение параметра origins и указать адрес репозитория, на доступное по <br>">Need to change the setting origins and specify the address of the repository for available for <br></span><span title="сети имя, например http://sunadm.spb.su:10000.">network name, such http://sunadm.spb.su:10000. </span><span title="Необязательно, но можно поменять некоторые <br>">Optional, but you can change some <br></span><span title="другие параметры и добавить туда например название вашей организации. <br>">other settings and add the name of your organization eg. <br></span><span title="Далее можно проверить правильно ли мы изменили настойки: <br>">Then you can check if we changed the tincture: <br></span><span title="# svcadm refresh application/pkg/server <br>"># Svcadm refresh application / pkg / server <br></span><span title="# svcprop pkg/server <br>"># Svcprop pkg / server <br></span><span title="И посмотреть в выводе последней команды внесены ли наши изменения.">And see in the output of the last command made whether our changes. </span><span title="Если все в порядке <br>">If everything is in order <br></span><span title="запускаем сервис: <br>">run the service: <br></span><span title="# svcadm restart application/pkg/server <br>"># Svcadm restart application / pkg / server <br></span><span title="# svcadm enable application/pkg/server <br>"># Svcadm enable application / pkg / server <br></span><span title="На этом настройка репозитория закончена.">The configuration repository is finished. </span><span title="Далее мы настроим клиента на использование <br>">Then configure the client to use <br></span><span title="нашего репозитория и проверим его работоспособность, затем обновим репозиторий и <br>">our repository and verify that it is working, and then update the repository and <br></span><span title="проведем окончательную проверку. <br>">carry out a final check. <br></span><span title="Настройка клиента и проверка работоспособности сервера <br>">To configure the client and server health check <br></span><span title="Клиент может использовать наш репозиторий либо как основной репозиторий, либо как <br>">The client can use our repository or as the main repository or as <br></span><span title="зеркало репозитория pkg.opensolaris.org.">mirror repository pkg.opensolaris.org. </span><span title="При использовании нашего репозитория, как зеркала <br>">When using our repository as a mirror <br></span><span title="мы теряем автономность.">we lose autonomy. </span><span title="В этом случае клиент производит поиск и другие операции с <br>">In this case, the client performs the search and other operations <br></span><span title="метаданными используя основной сервер pkg.opensolaris.org, при установке пакета, если он <br>">metadata using the primary server pkg.opensolaris.org, when you install the package if it <br></span><span title="присутствует на нашем зеркале он скачивается с него.">present on our mirror he downloaded from him. </span><span title="При недоступном основном сервере <br>">When you reach the main server <br></span><span title="наша система не будет работать.">our system will not work. </span><span title="При использовании нашего репозитория как основного, все <br>">When using our repository as the core, all <br></span><span title="взаимодействие производиться только с ним и наша система обретет автономность.">interaction only be with him and our system will gain autonomy. </span><span title="Но в <br>">But <br></span><span title="таком случае, если наш репозиторий не обновлен нам не будут доступны последние версии <br>">Then, if our repository is not updated we will not be the latest version available <br></span><span title="пакетов.">packets. </span><span title="Для установки нашего репозитория как зеркала pkg.opensolaris.org следует <br>">To install our repository as mirrors should pkg.opensolaris.org <br></span><span title="выполнить на клиенте: <br>">execute on the client: <br></span><span title="# pkg set-publisher -m http://sunadm.spb.su:10000 opensolaris.org <br>"># Pkg set-publisher-m http://sunadm.spb.su:10000 opensolaris.org <br></span><span title="для установки как основного репозитория: <br>">to set as the main repository: <br></span><span title="# pkg set-publisher -PO http://sunadm.spb.su:10000 vniira.spb.su <br>"># Pkg set-publisher-PO http://sunadm.spb.su:10000 vniira.spb.su <br></span><span title="После того, как репозиторий настроен и подключен можем его проверить.">Once the repository is set up and connected can check it. </span><span title="Например обновим <br>">For example update <br></span><span title="наши данные о репозитории, попробуем обновить систему, если есть такая возможность и <br>">Our data repository, try to update the system, if possible and <br></span><span title="установим пакет, например nmap: <br>">install the package, such as nmap: <br></span><span title="# pkg refresh -full <br>"># Pkg refresh-full <br></span><span title="# pkg image-update <br>"># Pkg image-update <br></span><span title="# pkg search nmap <br>"># Pkg search nmap <br></span><span title="# pkg install SUNWnmap <br>"># Pkg install SUNWnmap <br></span><span title="Если все прошло успешно, значит репозиторий нормально функционирует. <br>">If all goes well, then the repository is functioning normally. <br></span><span title="К сожалению версия репозитория из образа ISO достаточно стара и не актуальна поэтому <br>">Unfortunately repository version of the ISO image is old enough and therefore not relevant <br></span><span title="встает вопрос об ее обновлении, переходим к следующему шагу. <br>">raises the question of updating it, proceed to the next step. <br></span><span title="Обновление пакетов и исправление контрольных сумм <br>">Update packages and fix checksums <br></span><span title="Для того, что бы иметь текущую версию репозитория теоретически существует 3 пути <br>">In order to have the current version of the repository in theory there are 3 ways <br></span><span title="(может и больше): <br>">(Maybe more): <br></span><span style="background-color:#ffffff;" title="- Настройка репозитория с выкачиванием всех пакетов с помощью pkgrecv/pkgsend <br>">- Setting repository pumping out all packages through pkgrecv / pkgsend <br></span><span style="background-color:#ffffff;" title="(http://developers.sun.ru/content/view/338/31/) <br>">(Http://developers.sun.ru/content/view/338/31/) <br></span><span title="- Синхронизация с помощью rsync, у меня на практике так и не заработало.">- Synchronization via rsync, I have to practice and did not work. </span><span title="Либо были <br>">Or were <br></span><span title="забиты все 8 возможных соединений, либо удаленный сервер вообще не отвечал на <br>">crammed all 8 possible connections or remote server does not answer <br></span><span title="данном порту <br>">this port <br></span><span style="background-color:#ffffff;" title="- Синхронизация с помощью сценария на языке Python ips-mirror.py написанный Andrzej <br>">- Synchronization with a script language Python ips-mirror.py written by Andrzej <br></span><span style="background-color:#ffffff;" title="Szeszo и выложенный в его блоге по адресу http://aszeszo.blogspot.com/2009/07/ipsrepository- <br>">Szeszo and laid out in his blog at http://aszeszo.blogspot.com/2009/07/ipsrepository- <br></span><span title="mirror-script_27.html <br>">mirror-script_27.html <br></span><span style="background-color:#ffffff;" title="В данном руководстве мы рассмотрим 3-ий способ, для этого понадобиться два сценария ipsmirror. <br>">In this tutorial, we will look at the third method, you will need two script ipsmirror. <br></span><span style="background-color:#ffffff;" title="py для синхронизации и ips_check.py для устранения проблем с контрольными <br>">py for synchronization and ips_check.py to troubleshoot control <br></span><span title="суммами. <br>">sums. <br></span><span style="background-color:#ffffff;" title="Скачиваем их и копируем в корневой каталог нашего репозитория: <br>">Download them and copy to the root of our repository: <br></span><span style="background-color:#ffffff;" title="# wget http://aszeszo.googlepages.com/ips-mirror.py <br>"># Wget http://aszeszo.googlepages.com/ips-mirror.py <br></span><span style="background-color:#ffffff;" title="# wget http://github.com/seisen/opensolaris-scripts/raw/master/ips/ips_check.py <br>"># Wget http://github.com/seisen/opensolaris-scripts/raw/master/ips/ips_check.py <br></span><span style="background-color:#ffffff;" title="# cp ips-mirror.py /rpool/repo/repo <br>"># Cp ips-mirror.py / rpool / repo / repo <br></span><span style="background-color:#ffffff;" title="# cp ips_check.py /rpool/repo/repo <br>"># Cp ips_check.py / rpool / repo / repo <br></span><span title="Теперь запускаем ips-mirror.py, например так: <br>">Now run ips-mirror.py, like this: <br></span><span title="# cd /rpool/repo/repo <br>"># Cd / rpool / repo / repo <br></span><span style="background-color:#ffffff;" title="# python ips-mirror.py -l -a i386 http://pkg.opensolaris.org/release <br>"># Python ips-mirror.py-l-a i386 http://pkg.opensolaris.org/release <br></span><span style="background-color:#ffffff;" title="Сценарий проверит содержимое репозитория OpenSolaris, проверит содержимое вашего <br>">The script will check the contents of the repository OpenSolaris, check the contents of your <br></span><span style="background-color:#ffffff;" title="репозитория, обновит манифесты и пакеты, удалит старые пакеты. <br>">repository, update the manifest and packages remove the older versions. <br></span><span style="background-color:#ffffff;" title="Ключ -l указывает на то, что нам необходимы только последние версии пакетов, а ключ -a <br>">The-l switch indicates that we need only the latest packages and the key-a <br></span><span title="архитектуру.">architecture. </span><span title="Для просмотра полного списка ключей запустите сценарий без параметров. <br>">For a complete list of keys, run the script with no parameters. <br></span><span style="background-color:#ffffff;" title="Зачастую получается так, что в ходе скачивания и обновления репозитория некоторые пакеты <br>">Often it turns out that in the course of downloading and updating some packages repository <br></span><span title="повреждаются и в результате при попытке, что либо установить можно увидеть примерно <br>">damaged and as a result when you try that either set can be seen around <br></span><span title="такую ошибку: <br>">this error: <br></span><span title="pkg: Maximum number of network retries exceeded during download.">pkg: Maximum number of network retries exceeded during download. </span><span title="Details follow: <br>">Details follow: <br></span><span title="Invalid content for action with path usr/lib/python2.4/vendorpackages/ <br>">Invalid content for action with path usr/lib/python2.4/vendorpackages / <br></span><span title="radialnet/gui/HostsViewer.py chash failure: expected: <br>">radialnet / gui / HostsViewer.py chash failure: expected: <br></span><span title="4a28ca3c93af77363b82a1aa442f9f88b49b7d65 computed: <br>">4a28ca3c93af77363b82a1aa442f9f88b49b7d65 computed: <br></span><span title="a71f073fa1949496173dcf69675ee8d1f8f67262.">a71f073fa1949496173dcf69675ee8d1f8f67262. </span><span title="(happened 4 times) <br>">(Happened 4 times) <br></span><span title="В ее исправлении нам поможет сценарий ips_check.py, запускаем его так: <br>">It will help us correcting script ips_check.py, run it like this: <br></span><span title="# cd /rpool/repo/repo <br>"># Cd / rpool / repo / repo <br></span><span title="# python ips_check.py --dir=./ <br>"># Python ips_check.py - dir =. / <br></span><span title="Данный сценарий проверит все контрольные суммы и удалит пакеты для которых она не <br>">This script will check all the checksums and remove packages that it does not <br></span><span title="верна.">true. </span><span title="Соответственно после того как он завершиться, если были сообщения об испорченных <br>">Accordingly, after he completed if there were reports of damaged <br></span><span title="пакетах следует снова запустить сценарий ips-mirror.py с такими же параметрами, как и <br>">packages should run the script again ips-mirror.py with the same parameters as <br></span><span title="прежде для получения недостающих пакетов.">primarily for missing packets. </span><span title="Затем снова проверяем с помощью <br>">Then check again with the help of <br></span><span title="ips_check.py, что все в порядке. <br>">ips_check.py, that's all right. <br></span><span title="Теперь нужно запустить сервер один раз с ключем -rebuild для того, что бы он пересоздал <br>">Now you need to run the server once with the key-rebuild for what he recreates <br></span><span title="каталог.">catalog. </span><span style="background-color:#ffffff;" title="Так же стоит перестроить индексы поиска, после чего можем активировать сервер в <br>">As it is necessary to rebuild the search indexes, and then can activate the server <br></span><span title="обычном режиме через сервисы.">normally through the services. </span><span title="Делаем это все так: <br>">Making it all the way: <br></span><span title="# cd /rpool/repo/repo <br>"># Cd / rpool / repo / repo <br></span><span title="# /usr/lib/pkg.depotd -d $(pwd) -p 10000 -rebuild <br>"># / Usr / lib / pkg.depotd-d $ (pwd)-p 10000-rebuild <br></span><span title="ждем пока он окончательно запуститься затем нажимаем , далее: <br>">wait until he finally start then push further: <br></span><span title="# rm -rf ./index/* <br>"># Rm-rf. / Index / * <br></span><span title="# /usr/lib/pkg.depotd -d $(pwd) -p 10000 -refresh-index <br>"># / Usr / lib / pkg.depotd-d $ (pwd)-p 10000-refresh-index <br></span><span title="снова ждем пока он окончальено запуститься затем нажимаем , далее: <br>">wait again until he okonchaleno then click Start, then: <br></span><span title="# svcadm enable pkg/server <br>"># Svcadm enable pkg / server <br></span><span style="background-color:#ffffff;" title="На этом обновление сервера завершено, проверяем его как и в предыдущий раз: <br>">On this server upgrade is complete, check it as the previous time: <br></span><span title="# pkg refresh --full <br>"># Pkg refresh - full <br></span><span title="# pkg image-update <br>"># Pkg image-update <br></span><span title="# pkg search nmap <br>"># Pkg search nmap <br></span><span title="# pkg install SUNWnmap <br>"># Pkg install SUNWnmap <br></span><span style="background-color:#ffffff;" title="Теперь у вас есть свой обновленный репозиторий OpenSolaris.">Now you have your new repository OpenSolaris. </span><span title="Дальнейшее обновление <br>">Further Update <br></span><span style="background-color:#ffffff;" title="можно проводить по той же схеме.">can be carried out by the same scheme. </span><span title="Также репозиторий можно записать в файл и затем на <br>">Repository also can be written to a file and then <br></span><span style="background-color:#ffffff;" title="диск (как указано здесь http://developers.sun.ru/content/view/338/31/), что бы с кем нибудь <br>">disk (as defined herein http://developers.sun.ru/content/view/338/31/), that would be with someone <br></span><span title="поделиться или просто иметь резервную копию: <br>">share or just to have a backup: <br></span><span style="background-color:#ffffff;" title="# zfs snapshot rpool/repo@distrib <br>"># Zfs snapshot rpool / repo @ distrib <br></span><span style="background-color:#ffffff;" title="# zfs send rpool/repo@distrib> repo.distrib.zfs <br>"># Zfs send rpool / repo @ distrib> repo.distrib.zfs <br></span><span title="Если все работает, то на этом все.">If everything works, then that's it.</span></span></div><div> </div><div>-- <br>http://www.arhipkin.com<br><br>Я на Facebook: http://www.facebook.com/ilya.arhipkin<br><br>Я на Facebook: http://www.facebook.com/profile.php?id=100000965843704</div>
<br>_______________________________________________
oi-dev mailing list
oi-dev@openindiana.org
http://openindiana.org/mailman/listinfo/oi-dev</div> </div></body>
</html>