Не удержался, чтоб не описать свой опыт создания локального репозитория после прочтения этой статьи.
Сразу замечу, что у меня была задача обновлять кучу Ubuntu серверов, достаточно быстро и прочно обосновавшихся в организации под нужды разработчиков, не пуская их при этом в Интернет. Для Windows есть WSUS, а что же для Ubuntu?
Итак, небольшая заметка, как при помощи apt-mirror сделать локальное зеркало репозиториев Ubuntu.
Прежде всего, понадобится компьютер (или виртуальная машина) с Ubuntu (я использовал 10.04) с выходом в интернет и достаточным количеством свободного места на локальном диске. В моем случае зеркалировались репозитории только для версии 10.04 x64. Общий объем занятого пространства: ~60Gb.
Далее все просто:
Все.
После этого необходимо лишь немного исправить конфиг apt-mirror'a, который можно найти тут: /etc/apt/mirror.list
В конфигурационном файле можно изменить дефолтные значения base_path, который указывает на то, где, собственно, будут хранится скачанные репозитории. Кроме того, не лишним будет указать путь до близжайшего к вам оффициального зеркала Ubuntu. Список зеркал можно узнать тут.
Вот пример моего конфига:
Если не указать специально, apt-mirror будет качать только пакеты той архитектуры, на которой работает ваш сервер. В моем случае сервер 64-битный.
Если хочется добавить также пакеты под х86_32, то в конфиге надо продублировать пути до выбранного вами оффициального зеркала с командой deb-i386. Вот так:
Сохраним конфиг и запустим команду:
Еще необходимо сделать symbolic link для нашего вэб-сервера, который и будет обеспечивать доступность пакетов для внутренних клиентов.
Какое-то время займет на скачивание всех нужных пакетов под все указанные вами архитектуры и версии Ubuntu.
Осталась лишь одна вешь. Сообщить нашим безинтернетным серверам и десктопам Ubuntu, откуда же можно быстро обновиться. Для этого необходимо исправить в файле /etc/apt/sources.list пути до зеркала. В моем случае это выглядит так:
Сразу замечу, что у меня была задача обновлять кучу Ubuntu серверов, достаточно быстро и прочно обосновавшихся в организации под нужды разработчиков, не пуская их при этом в Интернет. Для Windows есть WSUS, а что же для Ubuntu?
Итак, небольшая заметка, как при помощи apt-mirror сделать локальное зеркало репозиториев Ubuntu.
Прежде всего, понадобится компьютер (или виртуальная машина) с Ubuntu (я использовал 10.04) с выходом в интернет и достаточным количеством свободного места на локальном диске. В моем случае зеркалировались репозитории только для версии 10.04 x64. Общий объем занятого пространства: ~60Gb.
Далее все просто:
sudo apt-get install apt-mirror apache2
Все.
После этого необходимо лишь немного исправить конфиг apt-mirror'a, который можно найти тут: /etc/apt/mirror.list
В конфигурационном файле можно изменить дефолтные значения base_path, который указывает на то, где, собственно, будут хранится скачанные репозитории. Кроме того, не лишним будет указать путь до близжайшего к вам оффициального зеркала Ubuntu. Список зеркал можно узнать тут.
Вот пример моего конфига:
############# config ##################
#
set base_path /var/spool/apt-mirror
#
# set mirror_path $base_path/mirror
# set skel_path $base_path/skel
# set var_path $base_path/var
# set cleanscript $var_path/clean.sh
# set defaultarch # set postmirror_script $var_path/postmirror.sh
# set run_postmirror 0
set nthreads 20
set _tilde 0
#
############# end config ##############
deb http://<external_mirror_name>/ubuntu/ lucid main restricted universe multiverse
deb http://<external_mirror_name>/ubuntu/ lucid-updates main restricted universe multiverse
deb-src http://<external_mirror_name>/ubuntu/ lucid main restricted universe multiverse
deb-src http://<external_mirror_name>/ubuntu/ lucid-updates main restricted universe multiverse
clean http://<external_mirror_name>/ubuntu/
Если не указать специально, apt-mirror будет качать только пакеты той архитектуры, на которой работает ваш сервер. В моем случае сервер 64-битный.
Если хочется добавить также пакеты под х86_32, то в конфиге надо продублировать пути до выбранного вами оффициального зеркала с командой deb-i386. Вот так:
deb-i386 http://<external_mirror_name>/ubuntu lucid main restricted universe multiverse
Сохраним конфиг и запустим команду:
sudo apt-mirror
Еще необходимо сделать symbolic link для нашего вэб-сервера, который и будет обеспечивать доступность пакетов для внутренних клиентов.
cd /var/www/
sudo ln -s /var/spool/apt-mirror/mirror/<mirror_name>/ubuntu/ ubuntu
Какое-то время займет на скачивание всех нужных пакетов под все указанные вами архитектуры и версии Ubuntu.
Осталась лишь одна вешь. Сообщить нашим безинтернетным серверам и десктопам Ubuntu, откуда же можно быстро обновиться. Для этого необходимо исправить в файле /etc/apt/sources.list пути до зеркала. В моем случае это выглядит так:
deb http:///ubuntu lucid main restricted
deb-src http:///ubuntu lucid main restricted
deb http:///ubuntu lucid-updates main restricted
deb-src http:///ubuntu lucid-updates main restricted
deb http:///ubuntu lucid universe
deb-src http:///ubuntu lucid universe
deb http:///ubuntu lucid-updates universe
deb-src http:///ubuntu lucid-updates universe
deb http:///ubuntu lucid multiverse
deb-src http:///ubuntu lucid multiverse
deb http:///ubuntu lucid-updates multiverse
deb-src http:///ubuntu lucid-updates multiverse
Наше локальное зеркало репозиториев готово!