Синхронизация дист-файлов. [SOLVED]
Добрый день.
Для друга, живущего в регионе и имеющий не скоростной канал енета, 3-4 раза в месяц привожу синхронизированные зеркала дист-файлов на винте.
Он, как и я, так же использует оверлеи.
Известно, что дист-файлы из оверлея, не всегда есть (а чаще нет) в официальном зеркале.
Написал небольшой скрипт, который fetch-ит файлы из ебилдов.
Одно неудобство, к примеру фетчишь sabayon/app-office/openoffice/openoffice-3.1.1-r2.ebuild
emerge проверяет все зависимости.
Затем когда фетчишь следующую версию, emerge опять проверяет все зависимости по ebuild-у.
А это очень удлиняет процесс.
Может кто-то знает более грамотное решение?
Скрипт прикладываю:
#!/bin/bash.
echo "начало синхронизации всех портежей"
if [ -e /mnt/big_WD/Linux/overlay ]
then echo "проверка требуемых каталогов портежей завершена успешно"
echo "начало синхронизации всех портежей"
cd /etc
ln -nsf /etc/make.conf_~x86 make.conf
cd /pub/Linux/overlay/portage_layman
# for d in calculate callisto enlightenment lcd-filtering rion rostov sabayon sunrise.
for d in callisto desktop-effects enlightenment sabayon sunrise rion rostov zugaina
do
echo /pub/Linux/overlay/portage_layman/$d
cd /pub/Linux/overlay/portage_layman/$d
for i in *
do
for j in $i/*
do
for eb in $j/*.ebuild
do
# ACCEPT_KEYWORDS="~x86 ~amd64" emerge -f $eb.
emerge -f $eb
done
done
done
done
fi
cd /etc
ln -nsf /etc/make.conf_work make.conf
- Для комментирования войдите или зарегистрируйтесь
ebuild $eb fetch
ebuild $eb fetch, должен скачать SRC_URI, но без зависимостей.
Спасибо, помогло :)
Спасибо, помогло :)
Реально ли необходимы все
Реально ли необходимы все версии, или достаточно актуальных?
Может быть и более компактный вариант устроит? Получение стабильной и топовой версии всех пакетов, известных eix.
EMERGE="emerge -f --nodep";\ for i in `eix -c --nocolor |\ sed "s/^[^ ]* //;s/ .*$//;/^[0-9]*$/d;/\"/d"` ; \ do \ $EMERGE $i && \ ACCEPT_KEYWORDS="fixme:~arch" $EMERGE $i ;\ done
emacs — отличная операционка которой не хватает только хорошего текстового редактора.
спасибо, надо попробовать
спасибо, надо попробовать Ваше решение.
Получилось, с Вашей помощью и
Получилось, с Вашей помощью и идеей, сделать так:
#!/bin/bash
d=`date +%Y%m%d%H%M`
echo "начало синхронизации всех портежей"
if [ -e /mnt/big_WD/Linux/overlay ]
then echo "проверка требуемых каталогов портежей завершена успешно"
echo "начало синхронизации всех портежей"
cd /pub/Linux/overlay/portage_layman
for d in callisto desktop-effects enlightenment sabayon sunrise rion rostov zugaina
do
cd /pub/Linux/overlay/portage_layman/$d
for i in $( find /pub/Linux/overlay/portage_layman/$d -type f -name '*.ebuild' | grep -v 'KEYWORDS="-*' )
do
ebuild $i fetch
done
done
fi