Имея небольшую локалку, некоторое количество пользователей-линуксоидов и довольно тощий канал в инет, разумно было бы поднять свое зеркало репозитария Убунты, чтобы пользователи лишний раз не лазили куда не надо. Удобнее всего зеркало умеет делать сам линукс – буквально в пару команд. Но из серверов в наличии имеется только FreeBSD версии 7.2 – не смертельно конечно, но повозиться придется чуть дольше.
Перво-наперво определяемся с местом – у меня зеркало для двух версий (9.04 и 9.10) заняло около 80 гигов. Затем ставим нужные пакеты:
/usr/ports/www/p5-libwww /usr/ports/devel/p5-LockFile-Simple /usr/ports/archivers/p5-IO-Compress-Base /usr/ports/archivers/p5-Compress-Zlib/ /usr/ports/archivers/p5-Compress-Raw-Zlib/ /usr/ports/archivers/p5-IO-Compress-Zlib /usr/ports/security/p5-Digest-SHA1 /usr/ports/security/p5-MD5 /usr/ports/net/p5-URI /usr/ports/security/gnupg
После это качаем исходники скрипта debmirror отсюда.
Качаем, распаковываем – в линуксе его можно установить, у меня он работает и без этого – достаточно просто знать, куда мы его распаковали. После этого готовим специальный скрипт:
#!/bin/sh /home/snake/debmirror --progress --verbose \ --cleanup --nosource --md5sums --host=mirror.yandex.ru \ --root=ubuntu --ignore-release-gpg \ --dist=jaunty,jaunty-security,jaunty-updates,jaunty-backports, \ karmic,karmic-security,karmic-updates,karmic-backports --section=main,restricted,universe,multiverse --method=http \ --arch=i386,amd64 /mnt/media4/ubuntu
Кратко поясню:
# --arch #Архитектура. Может быть i386, powerpc или amd64. # --section= # Секция (main/restricted/universe/multiverse). Как минимум main, restricted # --dist= # Релиз (кодовое название, а так же опции security, updates, backports # --host= # Имя сервера # --root= # Папка на сервере (обычно /ubuntu) # --method= # Протокол для передачи (http, ftp, hftp, rsync) # /mnt/media4/ubuntu # Директория с зеркалом # --nosource #не качает deb-src пакеты, существенно экономит место # --progress #показывает процесс скачивания # --cleanup #удаляет устаревшие пакеты # --verbose #показывает подробные ошибки # --ignore-release-gpg # не проверять gpg подпись скачиваемых пакетов. # Почему-то не отключается, и получать gpg ключ все равно приходится. # Как получить - написано ниже. # --md5sums # Проверять md5 хэши скачиваемых пакетов
Если при запуске скрипта вываливается вот такая ошибка:
gpgv: keyblock resource `/root/.gnupg/trustedkeys.gpg': general error gpgv: Signature made Срд 22 Апр 2009 21:35:26 UTC using DSA key ID 437D05B5 [GNUPG:] ERRSIG 40976EAF437D05B5 17 2 00 1240436126 9 [GNUPG:] NO_PUBKEY 40976EAF437D05B5 gpgv: Can't check signature: public key not found
То выполняем вот такую команду:
snake@snake [~/.gnupg]# gpg --keyserver keyserver.ubuntu.com -a --no-default-keyring --keyring trustedkeys.gpg --recv-keys <key ID>
Где
Когда все файлы обновлений скачаются, следует открыть доступ к папке с зеркалом через http и/или ftp, например так:
ln -s /mnt/media4/ubuntu /var/www/ubuntu
Добавим наш скрипт в cron. Для этого в файл /etc/crontab добавим:
30 4 * * 7 root /home/snake/umirror.sh
Наше зеркало будет обновлять раз в неделю в 4.30 утра – пакеты обновляются не так уж часто, а в случае чего-то критического никто не мешает запустить обновление вручную.
Далее остаются сущие мелочи – настроить клиента:
cd /etc/apt sudo mv sources.list sources.list.orig sudo mcedit sources.list deb http://snake.khd.ru/ubuntu karmic main restricted universe multiverse deb http://snake.khd.ru/ubuntu karmic-updates main restricted universe multiverse deb http://snake.khd.ru/ubuntu karmic-security main restricted universe multiverse deb http://snake.khd.ru/ubuntu karmic-backports main restricted universe multiverse
После этого пользователи должны вообще забыть о существовании удаленных репозиториев – разве что для какой-то экзотики.


Это все конечно замечательно, и у меня давно подняты зеркала Ubuntu, Debian, Fedora и CentOS.
Хотя можно и под гентой (благо вналичие) попробовать, она как бы ближе всего к фре стоит
Но вот подскажите мне, как мне поднять зеркало FreeBSD под линуксом? Что-то я догнать немогу вообще…
Не охото из-за одного сервера ставить фрю на тазик
Ответить
snake Reply:
мая 19, 2011 at 7:57
А что нужно? Дерево портов по cvsup отдавать? Или зеркало фтпшника с образами, пакетами (частично) и т.д?
Ответить