Страница 1 из 1

portupgrade

Добавлено: 2010-04-01 10:46:44
QuAzI
Если долго не обновляться, накапливается прилично портов, которым требуется прилично места в /var и /tmp и много времени на сборку. Использовать mount -t tmpfs для portswrkdir не вариант - уже несколько раз напоролся на кернел паник (да он и при монтировании пишет, что сыровато ещё tmpfs). Обновлять всё через пакеты тоже не катит - кой чего собрано со специфическими опциями.
Взял за основу эту доку 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
}
Но тут, как и в исходном скрипте лиссяры есть какой-то затык. Порты типа erun, qt4-gui и ещё некоторые не обновляются. Он пишет что начал обновлять его, в памяти процессы висят... и всё. Отстояло всю ночь в пустую, с места не двинулось. Ctrl+c нажал, этот порт он пропустил и сразу же начал собирать следующий (причём реально видно что он его собирает).
Отсель два вопроса :
1) Почему он может стопориться?
2) Прокатывает ли такой метод обновления портов, для которых заданы какие-то опции при сборке (ака "make config") или как лучше такие порты обновлять?
Сидеть сутки и тыкать каждый порт ежемесячно что-то не в кайф.

Re: portupgrade

Добавлено: 2010-04-01 12:36:03
ProFTP
уточяйте что не собирается?

для тех кто в танке:
http://www.lissyara.su/articles/freebsd ... t_upgrade/

в прицнипе можно сделать, чтоыб скрипт нажимал на энтер
(я это не тестировал...)

Код: Выделить всё

   #  экспериментально: 
   #  можно добавить чтобы скрипт автоматически нажимал на энтер
   #    use IO::Select;  
   #     my $select = IO::Select->new;
   #    for(@array) 
   #     open my $pipe, "|$_";
   #     $select->add($pipe);
   #    }
   #    my @waiters = $select->can_write($timeout);
   #    print $_ "\x0a" for @waiters; 
или если некотрое время ничего не собирается, чтобы то вырубил Ctrl+c и пошел дальше

для make config
есть make.conf

Re: portupgrade

Добавлено: 2010-04-01 13:35:50
QuAzI
erun и qt4-gui не собираются. Я тоже думал, что он чего-то там спрашивает. Жал Enter, таб и enter, без толку.
По ходу надо по этим портам самому проходиться, а уже остальные собирать "на автопилоте".

Re: portupgrade

Добавлено: 2010-04-04 10:18:29
kbakenov
портапгрейд портапгрейд - конца не найдешь - недоделанная вата

Re: portupgrade

Добавлено: 2010-04-05 9:58:21
ProFTP
kbakenov писал(а):портапгрейд портапгрейд - конца не найдешь - недоделанная вата
но другие аналоги такие же?

Re: portupgrade

Добавлено: 2010-04-05 20:04:26
kbakenov
аналоги понятие растяжимое....