Страница 1 из 1
Автоматизировать установку нескольких портов?
Добавлено: 2008-09-19 7:00:45
svmt
Приветствую
Тут вопросец созрел давяча а как решить чтото ни как...
хотелось бы написать скриптик при запуске которого онный устанавливал несколько портов сразу
собственно затык в следущем
что нужно написать чтоб была пауза пока идет процесс ......
к примеру
/usr/ports/чивототам/ make install clean
как собственно ЗДЕСЬ поставить ожидание окончания вышенаписанного а потом уже
/usr/ports/чивотатам/make install clean
.....
.....
.....
спасибо
Re: Автоматизировать установку нескольких портов?
Добавлено: 2008-09-19 7:09:25
alex3
Код: Выделить всё
cd /usr/ports/any/ && make install clean && cd ../any2 && make install clean
так?
Re: Автоматизировать установку нескольких портов?
Добавлено: 2008-09-19 8:13:11
svmt
О!
пасибки

Re: Автоматизировать установку нескольких портов?
Добавлено: 2008-09-19 8:52:28
zingel
синфронная сборка портов будет только в новом релизе и то только после GSOC
Re: Автоматизировать установку нескольких портов?
Добавлено: 2008-09-19 9:56:57
dikens3
Код: Выделить всё
/usr/ports/чивототам/ make install clean
как собственно ЗДЕСЬ поставить ожидание окончания вышенаписанного а потом уже
/usr/ports/чивотатам/make install clean
Там ожидание будет по умолчанию.
Re: Автоматизировать установку нескольких портов?
Добавлено: 2008-09-19 11:08:37
ProFTP
dikens3 писал(а):Код: Выделить всё
/usr/ports/чивототам/ make install clean
как собственно ЗДЕСЬ поставить ожидание окончания вышенаписанного а потом уже
/usr/ports/чивотатам/make install clean
Там ожидание будет по умолчанию.
зачем ждать завершится ли первая установка или не завершится
верно?
еще можно так:
Код: Выделить всё
perl -le system("/ make"); system("/ make ");
примерно так точно не пробовал
zingel писал(а):синфронная сборка портов будет только в новом релизе и то только после GSOC
можно в студию, что это? там еще бывает вылазит не в тему make config (можно скрипт написать...)
Re: Автоматизировать установку нескольких портов?
Добавлено: 2008-09-19 12:29:28
zingel
Title Allowing for Parallel builds in the FreeBSD Ports Collection
Student David Forsythe
Mentor Mark Linimon
Abstract
While building port dependencies sequentially is the safest and easiest way to install software from the FreeBSD Ports Collection, now that multiple cores and processors are available cheaply and have become more common, its possible for users to benefit from the ability to handle more than one port build and installation at a time. Currently, this functionality is not supported, because any one port build is unaware or others. This leads to the danger of multiple processes trying to write package data.
Possibly the best reason to implement parallel safe port building would be the ability to then add functionality for parallel dependency building. If multiple dependencies are not reliant on each other, building them at the same time would be a way to shorten overall port build times. However, because port builds are not aware of each other, if more than one port is dependent on a single port, there is the danger of both ports attempting to build the dependency.
These functionalities can be implemented with a degree of safety by locking PKG_DBDIR when a port goes into its install or registration phase. The lock and check can be accomplished with the bsd.*.mk makefiles. Because multiple builds are still dangerous without making ports aware of each other, a temporary file that has information as to which ports are currently building would also be created, and modified, as the building ports continued through their phases. The end goal is to make it possible to safely pass a -j flag to make(1) to allow for dependencies to be built concurrently, with builds surviving issues that are not their own, and with the entire build process being handled in a way that is still conducive to user interaction and monitoring.
Сам код, в исходниках
http://google-summer-of-code-2008-freeb ... the.tar.gz
Re: Автоматизировать установку нескольких портов?
Добавлено: 2008-09-19 20:50:13
Morty
там еще бывает вылазит не в тему make config (можно скрипт написать...)
чтоб не вылазило можно так
проверено на КДЕ...
а если спец опции для порта нада то писать их в make.conf
Re: Автоматизировать установку нескольких портов?
Добавлено: 2008-09-19 21:36:14
f_andrey
ProFTP писал(а):там еще бывает вылазит не в тему make config (можно скрипт написать...)
Эта читаем man make скорее всего и открываем для себя make configrecursive

Re: Автоматизировать установку нескольких портов?
Добавлено: 2008-09-19 22:25:41
zg
f_andrey писал(а):Эта читаем man make скорее всего и открываем для себя make configrecursive

Код: Выделить всё
zg# man make | col -b | grep configrecursive
zg# man ports | col -b | grep configrecursive
zg# cd /usr/ports/
zg# find . -name Makefile -exec grep -i configrecursive \{\} \;
zg#

ткни куда смотреть

Re: Автоматизировать установку нескольких портов?
Добавлено: 2008-09-19 22:39:43
f_andrey
zg писал(а):
ткни куда смотреть

Код: Выделить всё
man ports | col -b | grep config
Formatting page, please wait...Done.
do this are build, checksum, clean, configure, depends, extract, fetch,
config Configure OPTIONS for this port using dialog(1).
configure Configure the port. Some ports will ask you questions during
showconfig Display OPTIONS config for this port.
showconfig-recursive
Display OPTIONS config for this port and all its depen-
rmconfig Remove OPTIONS config for this port.
rmconfig-recursive
Remove OPTIONS config for this port and all its depen-
config-conditional
config-recursive
PORT_DBDIR Directory where the results of configuring OPTIONS are
OPTIONS have been configured will have a uniquely named
блин обложался малость, но могли бы и сами догадаться

направление было верным

Re: Автоматизировать установку нескольких портов?
Добавлено: 2008-09-19 22:45:51
zg
f_andrey писал(а):Код:
вот это другой разговор

сенкс, вещь и правда полезная

Re: Автоматизировать установку нескольких портов?
Добавлено: 2008-09-19 22:52:33
f_andrey
Вот что только нерод не сделает, и не изобретет лишь бы маны не читать и поиском не пользоваться

Re: Автоматизировать установку нескольких портов?
Добавлено: 2008-09-19 23:03:21
zg
f_andrey писал(а):Вот что только нерод не сделает, и не изобретет лишь бы маны не читать и поиском не пользоваться

-)))) у нас админ такой же:
- была проблема, ты её устранил?
- да
- что сделад?
- ничего...
и ты туда же:
- ничё вы не знаете, надо делать так
- но так не работает
- ну одну букву пропустил, могли бы и сами догадаться, неучи!
))) попытка свалить вину на других или избежать отвественности не есть хороший признак

Re: Автоматизировать установку нескольких портов?
Добавлено: 2008-09-22 6:48:33
svmt
Все сбацал
вчарася обкатал.... прЭлисть!
запустил и пашол 3 часа курить бамбук
Всем спасиб
Код: Выделить всё
#!/bin/sh
echo 'Copy files'
cp -Rf /cdrom/usr/ports/* /usr/ports/
echo 'Start Install Ports'
sleep 3
cd /usr/ports/misc/mc/ && make config &&
cd /usr/ports/www/squid/ && make config &&
cd /usr/ports/ftp/proftpd/ && make config &&
cd /usr/ports/lang/php5/ && make config &&
cd /usr/ports/misc/mc/ && make install clean &&
cd /usr/ports/sysutils/cdrtools/ && make install clean &&
cd /usr/ports/sysutils/webmin/ && make install clean &&
cd /usr/ports/www/squid/ && make install clean &&
cd /usr/ports/www/squidguard/ && make install clean &&
cd /usr/ports/www/sarg/ && make install clean &&
cd /usr/ports/net/samba/ && make install clean &&
cd /usr/ports/ftp/proftpd/ && make install clean &&
cd /usr/ports/net-mgmt/trafd/ && make install clean &&
cd /usr/ports/net/trafshow/ && make install clean &&
cd /usr/ports/net-mgmt/arpwatch/ && make install clean &&
cd /usr/ports/russian/apache13/ && make install clean &&
cd /usr/ports/databases/mysql50-server/ && make install clean &&
cd /usr/ports/lang/perl5/ && make install clean &&
cd /usr/ports/lang/php5/ && make install clean &&
cd /usr/ports/databases/php5-mysql/ && make install clean &&
cd /usr/ports/www/php5-session/ && make install clean &&
Re: Автоматизировать установку нескольких портов?
Добавлено: 2008-09-22 7:00:00
zg
пакетами проще

тем более, что php5 всё равно собирается неправильно
Re: Автоматизировать установку нескольких портов?
Добавлено: 2008-09-23 14:29:37
MAK
svmt писал(а):запустил и пашол 3 часа курить бамбук 8)
Ну это больше похоже на решение несуществующей проблемы. ) Если в порте зависимость требует конфигурации - весь ваш процесс остановится. ) А если надо добавить еще один порт - это +2 строки. А если порт уже установлен - опять отвалимся... Ну и тд...
update: а sleep 3 - похож на анек про индусов... ) извините, не удержался.
Re: Автоматизировать установку нескольких портов?
Добавлено: 2008-09-23 15:30:48
zg
MAK писал(а):Ну это больше похоже на решение несуществующей проблемы. ) Если в порте зависимость требует конфигурации - весь ваш процесс остановится.
гм... ну таки да

для сборки php нужно поставить php5-session, а для мускуля php5-mysql

чтоб только испытать механизм зависимостей на практике

это напомнило анек про стоматологов, которые хвастались как зубы дёргают

Re: Автоматизировать установку нескольких портов?
Добавлено: 2008-09-24 15:47:56
mike345
MAK писал(а): Если в порте зависимость требует конфигурации - весь ваш процесс остановится. )
Ну это можно обойти скопировав /var/db/ports/*name_port*/options c системы где уже установлен порт. Я так делал. Правда если опции поменялись, то фиг его знает что получится...
Re: Автоматизировать установку нескольких портов?
Добавлено: 2008-12-06 16:59:54
Volodymyr
MAK писал(а):Если в порте зависимость требует конфигурации - весь ваш процесс остановится.
Не совсем по теме, но. Как установить порт (скажем /usr/ports/x11/kde3) у которого много зависимостей да и он сам требует конфигурации через интерактивное меню без постоянного подтверждения в этом меню?
Re: Автоматизировать установку нескольких портов?
Добавлено: 2008-12-06 17:02:30
ProFTP
Volodymyr писал(а):MAK писал(а):Если в порте зависимость требует конфигурации - весь ваш процесс остановится.
Не совсем по теме, но. Как установить порт (скажем /usr/ports/x11/kde3) у которого много зависимостей да и он сам требует конфигурации через интерактивное меню без постоянного подтверждения в этом меню?
Morty писал(а):там еще бывает вылазит не в тему make config (можно скрипт написать...)
чтоб не вылазило можно так
проверено на КДЕ...
а если спец опции для порта нада то писать их в make.conf