Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Alexander V. Ribchansky              2:5020/400     31 Jul 2006  15:41:25
 To : Andrey Zonov
 Subject : Re: portupgrade
 -------------------------------------------------------------------------------- 
 
 Andrey Zonov пишет:
 
 > Привет, All!
 > 
 > Есть сервачок под 5.4 - там стоит куча барохла, надо это барахло обновить, но
 > там трафф очень дорогой :) Есть другой сервачок с 4.11 там инет халявный.
 > Hабор софта стоит разный. Внимание вопрос: как автоматизировать процесс
 > выкачки дистфайлов на 2ом серваке для 1ого. Вообщем как получить список ссылок
 > дистфайлов для 1ого сервака?                                              
 > Успехов! 
 
 Я это делаю следующим наборчиком скриптов:
 
 00.core_soft_list.sh
 01.dist-url-list.sh
 02.dist-fetch.sh
 
 Скрипты запускаются на машине, для которой надо получить список URL-ов 
 на нужные дистфайлы. Результатом работы скриптов есть файлик url который 
 надо запустить на машине с халявным инетом. Да, выкачивается все wget-ом.
 
 Последовательность действий такая:
 1. положить скрипты куда-то на исходном серваке.
 1.1 во всех скриптах подправить переменную base указав в ней путь к 
 месту, где лежат скрипты
 1.2 перейти в каталог, где лежат скрипты
 2. запустить скрипт 00.core_soft_list.sh > ./core_soft_list
 2.1 в результате получится файлик, core_soft_list в котором будет список 
   ключевого софта на исходном сервачке (тоесть софта, который через 
 зависимости подтянет весь остальной софт этого сервачка)
 3. запустить скрипт 01.dist-url-list.sh
 3.1 в результате получится файлик url. Его надо положить в какой-нить 
 каталог на серваке с халявным инетом и запустить nohup sh url&. ждать, 
 пока оно все вытянет в этот каталог.
 3.2 перенести каталог с скачаными дистфайлами на исходный сервак
 4. подправить в скрипте 02.dist-fetch.sh путь к каталогу с дистфайлами в 
 переменной MASTER_SITE_OVERRIDE а еще лучше внести эту переменную в 
 /etc/make.conf с правильным путем к дистфайло-помойке
 4.1 запустить скрипт 02.dist-fetch.sh, который разложит все выкачанные 
 дистфайлы по своим местам в /usr/ports/distfiles
 
 Вроде бы и сложно, но на самом деле - просто и дешево. Преимущества метода:
 - для выкачивания софта подойдет любой unix, где есть wget
 - не нужно иметь дерево портов на серваке с инетом
 - вытягивание дистфайлов идет в фоновом режиме
 - не нужно таскать все distfiles, с сервака на сервак тягаются только 
 нехватающие дистфайлы
 
 недостатки:
 - некоторая кривость скриптов, обусловленная руками и спешкой Жо)
 
 Вышеописанный метод работает уже больше года. Есть еще продолжение этого 
 набора для автоматизации пересборки софта. Если кому надо - кричите!
 
 Да, здоровая критика и предложения принимаются.. Жо)
 ##00.core_soft_list.sh BEGIN
 #!/bin/sh
 
 base="/usr/home/shurik/bin"
 
 pkg_info | awk '{print $1}'| \
 while read name
 do
    echo $name `pkg_info -R $name | wc -l`
 done | egrep \ 3$ | cut -f 1 -d " " | xargs pkg_info -o | fgrep -A 1 
 Origin: | egrep -v 'Origin:|--' | sort
 ##00.core_soft_list.sh END
 
 ##01.dist-url-list.sh BEGIN
 #!/bin/sh
 
 export FETCH_CMD='wget -c'
 export DISABLE_SIZE="YES"
 
 base="/usr/home/shurik/bin"
 
 a=`grep -v \#  $base/core_soft_list`
 
 echo "REMOVING OLD url-list!!!"
 rm $base/url-list
 
 echo "Start to build url list, please wait..."
 for dir in $a
 do
          echo $dir
          echo
          cd /usr/ports/$dir && make fetch-recursive-list | sed 
 's|/usr/bin/env||g' >> $base/url-list
 done
 echo "Done!"
 
 echo "Now we sort urls, please wait..."
 sort -u $base/url-list > $base/url
 rm $base/url-list
 echo "Done!"
 
 ##01.dist-url-list.sh END
 
 ##02.dist-fetch.sh BEGIN
 #!/bin/sh
 export MASTER_SITE_OVERRIDE="file:///usr/storage/tmp-download/"
 base="/usr/home/shurik/bin"
 
 a=`cat $base/core_soft_list`
 
 echo "Start to fetch distfiles, please wait..."
 for dir in $a
 do
          echo $dir
          echo
          cd /usr/ports/$dir && make fetch-recursive
 done
 echo "Done!"
 
 ##02.dist-fetch.sh END
 --- ifmail v.2.15dev5.3
  * Origin: 813326757 (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 portupgrade   Andrey Zonov   28 Jul 2006 13:30:49 
 Re: portupgrade   Sergey Matveychuk   30 Jul 2006 18:13:46 
 Re: portupgrade   Andrey Zonov   31 Jul 2006 11:03:57 
 portupgrade   Alex Semenyaka   30 Jul 2006 23:44:02 
 Re: portupgrade   Andrey Zonov   31 Jul 2006 11:22:48 
 portupgrade   Alex Semenyaka   01 Aug 2006 09:47:36 
 portupgrade   Artem S. Ignatiev   31 Jul 2006 01:14:56 
 Re: portupgrade   Andrey Zonov   31 Jul 2006 11:23:45 
 Re: portupgrade   Alexander V. Ribchansky   31 Jul 2006 15:41:25 
 Re: portupgrade   Andrey Zonov   31 Jul 2006 21:09:16 
 Re: portupgrade   Alexander V. Ribchansky   31 Jul 2006 15:43:44 
 Re: portupgrade   Igor Nikolaev   08 Aug 2006 13:51:10 
 portupgrade   Anatoly Mashanov   08 Aug 2006 23:18:44 
Архивное /ru.unix.bsd/16781f89bf186.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional