Шаманы в зазеркалье: поднимаем зеркало Ubuntu под FreeBSD
Имея небольшую локалку, некоторое количество пользователей-линуксоидов и довольно тощий канал в инет, разумно было бы поднять свое зеркало репозитария Убунты, чтобы пользователи лишний раз не лазили куда не надо. Удобнее всего зеркало умеет делать сам линукс – буквально в пару команд. Но из серверов в наличии имеется только 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
Где
Когда все файлы обновлений скачаются, следует открыть доступ к папке с зеркалом через 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 под линуксом? Что-то я догнать немогу вообще…
Не охото из-за одного сервера ставить фрю на тазик 🙁 Хотя можно и под гентой (благо вналичие) попробовать, она как бы ближе всего к фре стоит 🙂
А что нужно? Дерево портов по cvsup отдавать? Или зеркало фтпшника с образами, пакетами (частично) и т.д?
Вот за это благодарен тебе, о умнейший !!! : gpg –keyserver keyserver.ubuntu.com -a –no-default-keyring –keyring trustedkeys.gpg –recv-keys
Расцеловал бы в дёсна за gpg.