Здравствуйте господа!!!
Наверное где-то больше двух часов потратил, перерыл мануалы но так и разобрался.
Пишу простенький sh скрипт который будет устанавливать 2 или 3 пакета из портов у которых нет зависимостей.
Но у них есть опции, т.е. можно выбрать с чем собрать пакет.
Моя Цель заключается в том, чтоб когда человек запустит мой скрипт, конфиг (make config) пакета с опциями формировался автоматом, и в нем изменялось две - три опции с NO на YES. Т.е. чтоб у человека не было интерактива... чтоб он запустил этот скрипт и пошел курить...
Что-то нарыл http://forums.freebsd.org/showthread.php?t=3718 но боюсь что это не совсем то. Думал даже как-то форсить создания конфига и с помощью awk менять опции в /var/db/ports/..... но мне кажется это не совсем корректно... когда-то я видел очень изящный и простой способ... но к сожалению уже забыл как делать (
Решено: Манипуляция с портами (Как отключить интерактивный режим?)
Модератор: arachnid
-
Rootlexx
- Бывший модератор
- Сообщения: 4471
- Статус: GNU generation
- ОС: Debian GNU/Linux
Re: Решено: Манипуляция с портами
Можно воспользоваться expect (man expect).
Добавлено: материал по теме: http://www.opennet.ru/base/dev/interactive_tools.txt.html.
Добавлено: материал по теме: http://www.opennet.ru/base/dev/interactive_tools.txt.html.
Спасибо сказали:
-
rooty
- Сообщения: 83
- ОС: laptop: openSuSE 12.1
Re: Решено: Манипуляция с портами
Rootlexx писал(а): ↑26.10.2010 22:58Можно воспользоваться expect (man expect).
Добавлено: материал по теме: http://www.opennet.ru/base/dev/interactive_tools.txt.html.
Код: Выделить всё
[sandel@dream]:/home/sandel> man expect
No manual entry for expect
Exit 1
[sandel@dream]:/home/sandel> man 8 expect
No entry for expect in section 8 of the manual
Exit 1Ну да ладно.. я на самом деле видел как работает эта штука и даже думал над тем, чтоб сделать реализацию с помощью ее. Но это как из последних вариантов...
Я помню встречал способ решить данную задачу одной не большой строкой...
-
Shura
- Сообщения: 1537
- Статус: Оказывается и без KDE есть жизнь
- ОС: FreeBSD 8.0-RC2
Re: Решено: Манипуляция с портами
man ports читал?
На предмет опции config-conditional
И еще можно man portinstall до кучи.
На предмет опции config-conditional
И еще можно man portinstall до кучи.
Rock'n'roll мертв © БГ
-
rooty
- Сообщения: 83
- ОС: laptop: openSuSE 12.1
Re: Решено: Манипуляция с портами
конечно читал...
portinstall это утилита portupgrade не родная, ее нужно доставлять поэтому этот вариант отпадает (
а config-conditional при чем тут?
Код: Выделить всё
config-conditional
Skip the ports which have already had their OPTIONS con-
figured.Там же говорится, скипнуть если конфиг уже составлен...
Мне же нужно составить дефолтный конфиг и при этом поменять у него пару опций...
Или я что-то не так понял?
-
rooty
- Сообщения: 83
- ОС: laptop: openSuSE 12.1
Re: Решено: Манипуляция с портами
ээхх.. пока накатал такую часть кода на примере порта nginx
Во второй строчке приведенного кода находится сэдом пустая строка в файле /usr/ports/www/nginx/Makefile и вставляется там BATCH=1 . Сделано для того, чтобы не появлялась синяя менюшка по составлению конфига сборки только у nginx... мало ли что там может быть у его зависимостей...
может кому-то пригодится...
если найду проще вариант, как встречал раньше, скину...
Код: Выделить всё
sed -i ".ps-orig" 's/\(^.*HTTP_GEOIP_MODULE.*\)off \\/\1on \\/' /usr/ports/www/nginx/Makefile
sed -i "" "$(awk '$0 ~ /^$/ {print NR}' /usr/ports/www/nginx/Makefile | xargs | awk -F" " '{print $1}')s/^$/BATCH=1/" /usr/ports/www/nginx/Makefile
#/usr/bin/make -DBATCH -C /usr/ports/www/nginx install clean
/usr/bin/make -C /usr/ports/www/nginx install clean
mv -f /usr/ports/www/nginx/Makefile.ps-orig /usr/ports/www/nginx/MakefileВо второй строчке приведенного кода находится сэдом пустая строка в файле /usr/ports/www/nginx/Makefile и вставляется там BATCH=1 . Сделано для того, чтобы не появлялась синяя менюшка по составлению конфига сборки только у nginx... мало ли что там может быть у его зависимостей...
может кому-то пригодится...
если найду проще вариант, как встречал раньше, скину...
-
NekoExMachina
- Сообщения: 485
- ОС: Кошерная.
Re: Решено: Манипуляция с портами
Моя Цель заключается в том, чтоб когда человек запустит мой скрипт, конфиг (make config) пакета с опциями формировался автоматом, и в нем изменялось две - три опции с NO на YES. Т.е. чтоб у человека не было интерактива... чтоб он запустил этот скрипт и пошел курить...
Не проще ли поступить без извратов да посмотреть какие файлы модифицируются при изменении и сохранении опций в make config?
эти файлы по-моему создать и подправить проще, чем пытаться взаимодействовать скриптом с некоим UI.
На форуме больше не появляюсь.
Высокопарность и надменность довела.
Высокопарность и надменность довела.
OpenBSD-current+scrotwm*1 (acer aspire one 531h)
FreeBSD 8.1+kde3*1 (desktop)
FreeBSD 8.1+scrotwm*1 (hp530)
FreeBSD 9.0+dwm*1 (old toshiba satellite)
FreeBSD 8.1+kde3*1 (desktop)
FreeBSD 8.1+scrotwm*1 (hp530)
FreeBSD 9.0+dwm*1 (old toshiba satellite)