portupgrade
Добавлено: 2010-04-01 10:46:44
Если долго не обновляться, накапливается прилично портов, которым требуется прилично места в /var и /tmp и много времени на сборку. Использовать mount -t tmpfs для portswrkdir не вариант - уже несколько раз напоролся на кернел паник (да он и при монтировании пишет, что сыровато ещё tmpfs). Обновлять всё через пакеты тоже не катит - кой чего собрано со специфическими опциями.
Взял за основу эту доку http://www.lissyara.su/articles/freebsd ... rtupgrade/
Чуть чуть допилил, получилось что пробегается по портам, а потом то что не обновил из портов (не нашёл файла options или ещё чего) - пробует обновить через пакеты.
Но тут, как и в исходном скрипте лиссяры есть какой-то затык. Порты типа erun, qt4-gui и ещё некоторые не обновляются. Он пишет что начал обновлять его, в памяти процессы висят... и всё. Отстояло всю ночь в пустую, с места не двинулось. Ctrl+c нажал, этот порт он пропустил и сразу же начал собирать следующий (причём реально видно что он его собирает).
Отсель два вопроса :
1) Почему он может стопориться?
2) Прокатывает ли такой метод обновления портов, для которых заданы какие-то опции при сборке (ака "make config") или как лучше такие порты обновлять?
Сидеть сутки и тыкать каждый порт ежемесячно что-то не в кайф.
Взял за основу эту доку http://www.lissyara.su/articles/freebsd ... rtupgrade/
Чуть чуть допилил, получилось что пробегается по портам, а потом то что не обновил из портов (не нашёл файла options или ещё чего) - пробует обновить через пакеты.
Код: Выделить всё
#!/bin/sh
echo Обновляем порты имеющие конфиг
cd /var/db/ports
ls |
{
while read port_name
do
if [ -f /var/db/ports/${port_name}/options ]
then
echo Updating ${port_name}
portupgrade -R ${port_name}
fi
done
}
echo Обновляем всё что ещё не обновилось, желательно через пакеты
/usr/sbin/pkg_version -v | grep "need" | awk '{print $1}' |
{
while read pkg_name
do
echo Updating ${pkg_name}
/usr/local/sbin/portupgrade -RP ${pkg_name}
done
}
Отсель два вопроса :
1) Почему он может стопориться?
2) Прокатывает ли такой метод обновления портов, для которых заданы какие-то опции при сборке (ака "make config") или как лучше такие порты обновлять?
Сидеть сутки и тыкать каждый порт ежемесячно что-то не в кайф.