02.03.2010 18:08
Тестовый выпуск утилиты SmartPortsUpgrader для FreeBSD
|
 |
|
Выпущена тестовая версия утилиты, позволяющей быстро получить информацию об возможных обновлениях портов FreeBSD, и создать скрипт "умного" обновления портов.
Требования:
- Установленное JRE-окружение;
- Дерево портов, обновленное через cvsup до последней версии;
- Выкачанный или построенный Index-файл.
Утилита поставляется с двумя исполняемыми файлами и демонстрационными шаблонами. Первый скрипт выводит порты, для которых есть более новые версии. Второй скрипт создает скрипт обновления портов, т.н. "update-script", который принимает параметры fetch и/или build. При указании fetch - загружаются все необходимые "distfile"; При указании build - делается попытка собрать и обновить каждый порт, в порядке убывания количества зависимых портов. То есть, сначала собираются приложения и библиотеки от которых зависят другие порты, например, perl, а потом уже всё остальное.
Можно создать файл skipfile, и в нем построчно указать порты, которые обновлять нельзя. При желании и необходимости, можно писать свои шаблоны, генерирующие скрипты или вывод в нужном формате.
Пример скорости работы (на разных конфигурациях):
- при 252 установленных портах: 1.366u 0.173s 0:01.28 119.5% 109+1419k 0+4io 0pf+0w
- при 762 установленных портах: 2.446u 0.869s 0:17.22 19.1% 117+1060k 796+6io 145pf+0w
- при 1297 установленных портах: 4.007u 0.996s 0:28.84 17.3% 104+4120k 0+0io 140pf+0w
Внимание! Граф зависимостей не строится, так что если есть очень важная библиотека, а от неё зависит только одна программа и эта программа зависит еще от других компонентов, то библиотека будет собираться в самом конце. Из-за этого, при обновлении сложных конфигураций могут возникнуть проблемы.
|
|
|
- Главная ссылка к новости (http://code.google.com/p/smartportsupgra...)
|
| Автор новости: yerenkow |
| Тип: Программы |
| Ключевые слова: freebsd, ports, build, packet, (найти похожие документы) |
| При перепечатке указание ссылки на opennet.ru обязательно |
| Реклама |
|
|
|
| |
| 1.8, аноним, 19:48, 02/03/2010 [ответить] [смотреть все]
| +1 +/– |
Написано на java (можно не продолжать), преимуществ перед portupgrade нет, возможностей гораздо меньше. Что хотел сказать автор?
|  | | |
| 1.17, iZEN, 23:56, 02/03/2010 [ответить] [смотреть все]
| +/– |
#!/bin/csh
csup /path/to/ports.supfile
pkg_version -v | grep need
portupgrade -aF && cd /usr/ports/ && portsdb -Uu && portupgrade -ap
pkg_version -v | grep need || echo 'Разруливать вручную нечего.'
|  | | |
| |
| |
| 3.33, iZEN, 00:40, 04/03/2010 [ответить] [смотреть все]
| +/– |
>но за #!/bin/csh - неуд.
>точно также как и за #!/usr/bin/env bash нужно отрубать половой орган (по
>самый локоть).
Проблемы негров шерифа улыбают. :)
|  | | |
|
| 2.24, _Nec, 16:45, 03/03/2010 [ответить] [смотреть все] [показать ветку]
| +/– |
>#!/bin/csh
>csup /path/to/ports.supfile
>pkg_version -v | grep need
>portupgrade -aF && cd /usr/ports/ && portsdb -Uu && portupgrade -ap
>pkg_version -v | grep need || echo 'Разруливать вручную нечего.'
Это всё зачем?
Достаточно:
1. portsnap fetch update && portversion -v | grep -v "="
2. portupgrade -Fa (Этот шаг не обязателен, portmaster всё в бэкграунде загружает, но это не интерактивно)
3. portmaster -Da -no-confirm
И для профилактики - portsclean -CDLP
|  | | |
| |
| 3.32, iZEN, 00:33, 04/03/2010 [ответить] [смотреть все]
| +/– |
#!/bin/csh
cd /usr/ports/ && chflags -R noschg * && csup /path/to/ports.supfile
pkg_version -v | grep need && portupgrade -aF && portsdb -Uu && portupgrade -ap && rehash && pkgdb -u && portaudit -Fa
portsclean -CDL
pkg_version -v | grep need || echo 'Abgemacht.'
"portsclean -CDLP" — нельзя. Вдруг не понравится новый пакет и захочется откатиться на предыдущую версию.
|  | | |
| |
| 4.39, _Nec, 22:20, 04/03/2010 [ответить] [смотреть все]
| +/– |
>#!/bin/csh
>cd /usr/ports/ && chflags -R noschg * && csup /path/to/ports.supfile
>pkg_version -v | grep need && portupgrade -aF && portsdb -Uu &&
>portupgrade -ap && rehash && pkgdb -u && portaudit -Fa
>portsclean -CDL
>pkg_version -v | grep need || echo 'Abgemacht.'
>
Хм.. если решил всё, бессмысленно, в кучу собрать, то туда же pkgdb -L и pkgdb -Fa воткни.. и portmaster --check-depends, и --check-port-dbdir... иии-ии-и-и..
Резника и Михалкова, Шевчука и Шахрина,
и Земфиру с Мумий Троллем, и Жечкова
с Пеленягрэ,
а особо тех у...богих, что писали для "На-На".
>"portsclean -CDLP" — нельзя. Вдруг не понравится новый пакет и захочется откатиться
>на предыдущую версию.
Тогда уж - portsclean -CL
|  | | |
|
|
|
|
|
| Ваш комментарий |
|
|
| |
|