PDA

Bekijk de volledige versie : Создание зеркала репозитория Debian|Ubuntu



poisons
30-08-2009, 05:25
Есть цель - сделать на роутере зеркало репозитория для debian/ubuntu, гуглеж дал понимание того, что это удобно и просто делается на дебианобразной системе с помощью утилиты debmirror, как например тут (http://trambroid.com/node/30). Как бы красиво и элегантно это реализовать для нашей коробочки?
debmirror имеет такие вот зависомости

Пакет: debmirror
Состояние: не установлен
Версия: 20070123ubuntu3
Приоритет: дополнительный
Раздел: universe/net
Сопровождающий: Ubuntu MOTU Developers <ubuntu-motu@lists.ubuntu.com>
Размер в распакованном виде: 135k
Зависимости: libnet-perl, libdigest-md5-perl, libdigest-sha1-perl, liblockfile-simple-perl, rsync, libcompress-zlib-perl, bzip2, libwww-perl

debmirror - скрипт на перле, но как быть с зависимостями?

chemtech
25-09-2009, 13:00
Итак, сначала скачаем скрипт debmirror, как, например, я:
sudo aptitude download debmirror

Вытаскиваем оттуда модуль и копируем его на роутер.
Положим, например, в /opt/bin/

Устнавливаем perl:
ipkg install perl

Устанавливаем зависимости:
ipkg install perl-libnet
ipkg install perl-digest-perl-md5
ipkg install perl-digest-sha1
ipkg install perl-compress-zlib
ipkg install perl-libwww
ipkg install rsync
ipkg install bzip2

Ставим make:
ipkg install make

Качаем отсутствующий модуль:
wget http://search.cpan.org/CPAN/authors/id/J/JV/JV/LockFile-Simple-0.207.tar.gz
tar zxf СкачанныйМодуль.tar.gz
cd СкачанныйМодуль

perl Makefile.PL
make
make test
make install

Создаем папку для репозиториев:
mkdir -p /opt/share/www/repo
Даем права для пользователя p2p:
chown p2p /opt/share/www/repo/
Заходим под пользователем p2p и создаем папку ubuntu:
mkdir ubuntu

В скрипте меняем "#!/usr/bin/perl -w" на "#!/opt/bin/perl -w"

Создадим скрипт /opt/bin/debmirrorscript.sh:
"
#!/bin/sh

/opt/bin/debmirror /opt/share/www/repo/ubuntu/ --nosource -m --passive --host=archive.ubuntulinux.org --root=ubuntu/ --method=ftp --progress --dist=jaunty,jaunty-updates,jaunty-security,jaunty-backports --section=main,multiverse,universe,restricted --arch=i386 ubuntu/ --ignore-release-gpg
"

Дадим ему права на выполнение:
chmod +x /opt/bin/debmirrorscript.sh

Для добавления репозитория в источники пакетов вам нужно прописать в файле /etc/apt/sources.list примерно следующее

deb http://Ваш IP адрес/repo/ubuntu/ jaunty main restricted multiverse universe

Честно говоря, достали проблемы с кодировкой. Бывает и не сохраняет исправления сообщений (((

ryzhov_al
25-09-2009, 17:14
Можно проще. Fast and dirty:

#!/bin/sh
wget --output-file=/tmp/harddisk/backup/updatedeb.log --mirror --no-parent --no-host-directories --cut-dirs=2 --directory-prefix=/tmp/harddisk/backup/ ftp://archive.ubuntulinux.org/ubuntu/dists/jaunty/

В качестве фичи (или бага) при обновлении репозитария будут сохранены в том числе старые версии пакетов. В случае неприятностей при обновлении будет возможность откатиться к предыдущей версии.

Или с Debian так просто не выйдет?

chemtech
25-09-2009, 18:15
Старые пакеты сами удалять будете, если они не нужны?

satch
25-09-2009, 20:45
и сколько гигов это займет?
не легче ли просто обновлять как раньше?

chemtech
26-09-2009, 05:39
25 гигов где-то.
Это статья/тема форума для тех кому это надо, а не для тех кто хочет обновлять как раньше, плюс для тех кому интересно.

satch
26-09-2009, 17:18
25 гигов где-то.
Это статья/тема форума для тех кому это надо, а не для тех кто хочет обновлять как раньше, плюс для тех кому интересно.
да, я это понимаю. мне тоже стало интересно, но ,подумав, решил для себя что все равно репозитории регулярно обновляются(ubuntu), поэтому для меня это не очень то и надо :) а вообще, задумка интересная, тем более для тех, у кого в локалке не один комп убунту/дебиан и траффик не дешевый

chemtech
27-09-2009, 07:24
:)

Зашел на роутер в screen, а там последние строки такие:
Timeout at /opt/lib/perl5/5.8.8/Net/FTP.pm line 503
releasing 1 pending lock... at /opt/lib/perl5/site_perl/5.8.8/LockFile/Simple.pm line 206.


Наверное инет временно пропадал...

SpiderX
27-09-2009, 13:02
Timeout at /opt/lib/perl5/5.8.8/Net/FTP.pm line 503
releasing 1 pending lock... at /opt/lib/perl5/site_perl/5.8.8/LockFile/Simple.pm line 206.
Сам по фтп обновлял, потом забил, и стал зеркалировать репозиторий через http, debmirror, в случае когда зеркалирование идет через http, качает их wget'ом (если меня не подводит память), и собственно это и решило проблемы с падениеми debmirror'а.
Уже больше полугода зеркалирую репозитории убунты + куча других репозиториев, проблем нет.

chemtech
27-09-2009, 15:03
Сделал доступ для анонимусов только для чтения для папки где у меня лежит репозиторий.
Итак, как это делается:
Создаем пользователя ftp
adduser -h /opt/share/www/repo/ ftp

В vsftpd.conf пишем:
anonymous_enable=YES
anon_root=/opt/share/www/repo/

А cat /etc/apt/sources.list:
deb ftp://192.168.0.1/ubuntu/ jaunty main restricted universe multiverse
deb ftp://192.168.0.1/ubuntu/ jaunty-updates main restricted universe multiverse
deb ftp://192.168.0.1/ubuntu/ jaunty-security main restricted universe multiverse
deb ftp://192.168.0.1/ubuntu/ jaunty-backports main restricted universe multiverse

IRVy
07-11-2009, 05:38
Спасибо!
Только хотел вопрос задать, а тут уже и ответы понаписали :)

Вопрос лишь один остался: реально ли сделать репозиторий (точнее кэш) только используемых пакетов (машинами во внутр. сети)? Правильно ли я понимаю, что нужен apt-cacher-ng?

Hunter84
11-11-2009, 17:28
При запуске скрипта показывает ошибку:

"Use of uninitialized value in split at /opt/lib/perl5/5.8.8/mipsel-linux/DynaLoader.pm line 80.

Patch binary missing, falling back to --pdiff=none

Ed binary missing, falling back to --pdiff=none".

Зеркалирование начинает, до конца так ни разу и не дошел почему то. Запускается ежедневно через Cron. Уже как месяц зазеркалировать не может. Вопрос. У всех есть такая ошибка при запуске, или только у меня?

MercuryV
30-06-2013, 13:39
реально ли сделать репозиторий (точнее кэш) только используемых пакетов (машинами во внутр. сети)? Правильно ли я понимаю, что нужен apt-cacher-ng?
Вполне реально. Если еще есть заинтересованные в apt-cacher-ng на роутере - прошу отозваться.
(да, я знаю, что вопрос был задан в 2009 году :) )