пятница, 20 февраля 2009 г.

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

Это не покроет все остальные варианты, но даст возможность поэксперементировать. Чтобы всё прошло успешно, понадобится 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/.

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

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

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

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
вы должны будете обновиться с вашего нового сервера!

Итак для начала нам потребуется сам репозиторий, для закачки его на винчестер нам потребуется программа debmirror, установить ее можно через ваш любимый менеджер пакетов Adept или Synaptic, ну или через консоль . Здесь я буду приводить примеры для консоли, ну а с GUI Вы и сами разберетесь. Устанавливаем программу debmirror
  1. sudo apt-get install debmirror

Теперь подготовим папку в которую будет закачан репозиторий

  1. mkdir ubuntu

Конечно же вы можете назвать папку как угодно.
Теперь нам нужно создать скрипт, в этой самой папке, который собственно и будет закачивать репозиторий.

  1. gedit archive.ubuntulinux.org.sh

Скрипт должен содержать следующие строки

  1. #!/bin/bash
  2. ## Setting variables with explanations.
  3. # Arch= -a # Architecture. For Ubuntu can be i386, powerpc or amd64.
  4. # sparc, only starts in dapper, it is only the later models of sparc
  5. #
  6. arch=i386
  7. # Minimum Ubuntu system requires main, restricted
  8. # Section= -s # Section (One of the following - main/restricted/universe/multiverse).
  9. # You can add extra file with $Section/debian-installer. ex: main/debian-installer,universe/debian-installer,multiverse/debian-installer,restricted/debian-installer
  10. #
  11. section=main,restricted,universe,multiverse
  12. # Release= -d # Release of the system (Dapper, Edgy, Feisty, Gutsy, Hardy, Intrepid), and the -updates and -security ( -backports can be added if desired)
  13. #
  14. release=hardy,hardy-security,hardy-updates,hardy-backports
  15. # Server= -h # Server name, minus the protocol and the path at the end
  16. # CHANGE "*" to equal the mirror you want to create your mirror from. au. in Australia ca. in Canada.
  17. # This can be found in your own /etc/apt/sources.list file, assuming you have Ubuntu installed.
  18. #
  19. server=archive.ubuntulinux.org
  20. # Dir= -r # Path from the main server, so http://my.web.server/$dir, Server dependant
  21. #
  22. inPath=/тут/пусть/к/папке/на сервере
  23. # Proto= -e # Protocol to use for transfer (http, ftp, hftp, rsync)
  24. # Choose one - http is most usual the service, and the service must be avaialbe on the server you point at.
  25. #
  26. proto=ftp
  27. # Outpath= # Directory to store the mirror in
  28. # Make this a full path to where you want to mirror the material.
  29. #
  30. outPath=/тут/пусть/к/папке/ubuntu
  31. # The –nosource option only downloads debs and not deb-src’s
  32. # The –progress option shows files as they are downloaded
  33. # –source \ in the place of –no-source \ if you want sources also.
  34. # –nocleanup Do not clean up the local mirror after mirroring is complete. Use this option to keep older repository
  35. # Start script
  36. #
  37. debmirror -a $arch \
  38. –no-source \
  39. -s $section \
  40. -h $server \
  41. -d $release \
  42. -r $inPath \
  43. –progress \
  44. -e $proto \
  45. $outPath

Этот скрипт будет выкачивать репозиторий для версии Ubuntu 8.04. Наверное вы все заметили параметр —arch этот параметр указывает архитектуру для которой собраны пакеты Вы также можете установить значение параметра amd64.

Сделать скрипт можно покороче, например так

  1. #!/bin/bash -x
  2. /usr/bin/debmirror –nosource -m –passive –host=archive.ubuntulinux.org \
  3. –root=ubuntu –method=ftp –progress \
  4. –dist=hardy,hardy-security,hardy-updates,hardy-backports \
  5. –ignore-release-gpg –section=main,restricted,multiverse,universe \
  6. –arch=i386 /путь/к/папке/репозитория/

Ну все теперь выполняем скрипт

  1. ./archive.ubuntulinux.org.sh

Учтите что у меня например репозиторий занял около 22Гб (i386). Работу скрипта всегда можно завершить без каких либо последствий, а после следующего старта скрипта он проверит все md5 суммы пакетов и продолжит работу(учтите что проверка контрольных сумм занимает значительный ресурс процессора, так что по мере роста количества скачанных пакетов старайтесь реже прерывать работу скрипта)
Ну вот теперь у вас на жестком диске лежит копия репозитория, если вы желаете добавить его в источники пакетов вам нужно прописать строку примерно следующего вида

  1. deb file:///blablabla/ubuntu/ru.archive.ubuntu.com/ hardy main restricted multiverse universe

Теперь собственно создание зеркала.
Итак для зеркала нам понадобится WEB-сервер Apache. Для установки индейца наберите в терминале

  1. sudo apt-get install apache2

Установили? Запускаем и… ничего. Его еще нужно немного настроить, не бойтесь настроек там совсем немного.
Большинство настроек хранятся в конфигурационном файле

  1. /etc/apache2/apache2.conf

открываем его для редактирования

  1. sudo gedit /etc/apache2/apache2.conf

Нужно указать Apache имена файлов которые он будет открывать по умолчанию, когда браузер обратится к вашему сайту. Этот шаг необязателен, он нужен нам будет для проверки работоспособности сервера. Добавляем строку

  1. DirectoryIndex index.html index.phtml index.php

Теперь можно проверить работоспособность сервера, запустив Apache и набрав в браузере свой IP адрес.
Я еще добавил (на всякий случай) строку

  1. DocumentRoot "/var/www/"

Которая указывает на директорию в которой находится сайт. Вы можете указать директорию где находится репозиторий. Или можете просто скопировать содержимое репозитория в эту папку. Я вот сделал немного по другому, разместил репозиторий на отдельном разделе и примонтировал его в /var/www/.
Все теперь удаляем файл index.htm из директории с сайтом и опять набираем в браузере свой адрес, там должен появится репозиторий.
Для добавления репозитория в источники пакетов вам нужно прописать в файле /etc/apt/sources.list примерно следующее

  1. deb http://Ваш IP адрес/ru.archive.ubuntu.com/ hardy main restricted multiverse universe

Вот и все. Теперь у Вас есть зеркало обновлений для Ubuntu.

Комментариев нет:

Отправить комментарий