Debmirror

Revision 10 as of 2009-04-18 08:10:52

Clear message

Чтобы создать зеркало репозитория, следуйте этим инструкциям

Это не покроет все остальные варианты, но даст возможность поэксперементировать. Чтобы всё прошло успешно, понадобится 8,2 ГБ дискового пространства для основных исходников и бинарных пакетов. Это число со временем возрастёт.

Альтернативная точка зрения

Создание локального репозитария - позволит вам создать локальный репозиторий для пакетов, принесенных на флешке или другом носителе, а потом использовать synaptic/kynaptic (или apt-get install package_name).

Если вы желаете скачать все возможные бинарники apt для всех ящиков в один сетевой ящик, то возможно apt-cache или transparent proxy (т.е. http-replicator) - то что вам нужно.

Ещё один метод - использование rsync. Страница Rsyncmirror даёт лучшее детальное представление об этом методе. Rsync может создать полное зеркало сайта и выбирает все файлы без исключения. В свою очередь, Debmirror, более контролируемый метод выбора файлов для зеркала и не так беспощаден к вашему дисковому пространству.

apt-mirror - Эта инструкция покажет, как создать зеркало Debian/Ubuntu для вашей локальной сети при помощи утилиты apt-mirror.

Начало процесса создания зеркала

Откройте gnome-terminal кликнув Приложения -> Стандартные -> Терминал.
Если в ваш лист репозитариев включён universe, то следующий шаг пропустите.
Откройте ваш список источников (sudo sensible-editor /etc/apt/sources.list), и добавьте следующую строку
deb http://cc.archive.ubuntu.com/ubuntu/ dapper universe
Затем сохраните и вернитесь к приглашению терминала (prompt).
В вышеуказанном примере, cc - код вашей страны (т.е. lv означает Latvia), а dapper замените на релиз, который вы используете.

Обновите список пакетов (sudo apt-get update), а затем установите debmirror (sudo apt-get install debmirror).
Сейчас мы должны создать папку, куда мы сохраним файлы. Примерный размер зеркала (только i386): # Временами меняется.

feisty

~27ГБ

main, restricted, universe, multiverse

dapper

15ГБ

main, restricted, universe, multiverse

Пожалуйста, заранее убедитесь, что для пакетов, которые вы собираетесь скачать, достаточно места!
(Если вы продвинутый пользователь, то можете создать разные части зеркала на разных носителях, но в этом путеводителе этот вариант не описывается.)
Своё зеркало мы будем создавать в /home/ при помощи

sudo mkdir /home/UbuntuMirror

Создайте файл `mirrorbuild.sh`

Чтобы создать файл mirrorbuild.sh
Откройте предпочитаемый вами редактор так

sudo sensible-editor /usr/local/bin/mirrorbuild.sh

Скопируйте текст из следующего поля в редактор.
Вы можете пропустить строки, начинающиеся с # (NB EXCEPTION строка, которая начинается с #!/bin/bash должна остаться.)

Содержимое скрипта зеркала, пожалуйста адаптируйте его под свои нужды

#### Start script to automate building of Ubuntu mirror #####
## THE NEXT LINE IS NEEDED THE REST OF THE LINES STARTING WITH A # CAN BE DELETED

#!/bin/bash

## Setting variables with explanations.

# Arch=         -a      # Architecture. For Ubuntu can be i386, powerpc or amd64.
# sparc, only starts in dapper, it is only the later models of sparc
#
arch=i386

# Minimum Ubuntu system requires main, restricted
# Section=      -s      # Section (One of the following - main/restricted/universe/multiverse).
#
section=main,restricted,universe,multiverse

# Release=      -d      # Release of the system (Dapper, Edgy, Feisty, Gutsy), and the -updates and -security ( -backports can be added if desired)
#
release=dapper,dapper-security,dapper-updates

# Server=       -h      # Server name, minus the protocol and the path at the end
# CHANGE "*" to equal the mirror you want to create your mirror from. au. in Australia  ca. in Canada.
# This can be found in your own /etc/apt/sources.list file, assuming you have Ubuntu installed.
#
server=cc.archive.ubuntu.com

# Dir=          -r      # Path from the main server, so http://my.web.server/$dir, Server dependant
#
inPath=/ubuntu

# Proto=        -e      # Protocol to use for transfer (http, ftp, hftp, rsync)
# Choose one - http is most usual the service, and the service must be avaialbe on the server you point at.
#
proto=http

# Outpath=              # Directory to store the mirror in
# Make this a full path to where you want to mirror the material.
#
outPath=/home/UbuntuMirror

# The --nosource option only downloads debs and not deb-src's
# The --progress option shows files as they are downloaded
# --source \ in the place of --no-source \ if you want sources also.
# Start script
#
debmirror       -a $arch \
                --no-source \
                -s $section \
                -h $server \
                -d $release \
                -r $inPath \
                --progress \
                -e $proto \
                --ignore-release-gpg \
                $outPath


#### End script to automate building of Ubuntu mirror ####

Как использовать файл

  • Сохраните файл и выйдите из редактора.
  • Теперь поменяйте права и владельца зеркала. Имя группы - ваше имя пользователя:

sudo chown -R root.username /home/UbuntuMirror
sudo chmod -R 571 /home/UbuntuMirror
  • И заключительная часть настраивания зеркала - загрузка файлов

mirrorbuild.sh

Теперь прогуляйтесь. Вашей машине придётся много чего скачать!

Установите зеркало

Нам нужно установить веб-сервер - Apache2. Вы можете выбрать apache версии 1.3, но это выходит за рамки этого документа.
Обычно это делается так: sudo apt-get install apache2

Затем (для простоты) давайте сделаем ссылку из /home/UbuntuMirror на /var/www/ubuntu.

ln -s /home/UbuntuMirror /var/www/ubuntu

Это означает, что когда вы захотите скачать с вашего зеркала, вы заходите на http://mirrorbox/ubuntu/.

Отлично! Значит так, у нас есть все пакеты и работающий сервер. Теперь нам нужно настроить клиентов.

Создайте cronjob чтобы зеркало обновлялось

Чтобы зеркало оставалось актуальным, добавьте скрипт зеркала в cron. Чтобы отредактировать файл crontab пользователя root, выполните:

sudo crontab -e

И вставьте эту строку:

2 */12 * * * /usr/local/bin/mirrorbuild.sh

Она будет запускать скрипт каждые двенадцать часов на второй минуте часа. УБЕДИТЕСЬ что под добавленной строкой есть пустая строка, иначе команда никогда не выполнится. Если вам свойственна педантичность, перезапустите cron:

sudo /etc/init.d/cron restart

Настройте клиенские системы

Откройте терминал и введите:

cd /etc/apt
sudo mv sources.list sources.list.orig
sudo sensible-editor sources.list

Теперь в редакторе наберите следующие строки:

# Зеркала локальной сети.
deb http://mirrorbox/ubuntu dapper main restricted universe multiverse
deb http://mirrorbox/ubuntu dapper-updates main restricted universe multiverse
deb http://mirrorbox/ubuntu dapper-security main restricted universe multiverse

Затем сохраните и закройте файл.
Если теперь запустить

sudo apt-get update
sudo apt-get dist-upgrade

, обновления будут загружаться с вашего нового сервера!


CategoryDocumentation CategoryNetworking