Здравствуйте друзья линуксоиды! Я бы хотел поделится опытом создания зеркала, для репозитория дистрибутива Ubuntu. Причин по которым Вы захотите создать репозиторий может быть несколько: например у Вас нестабильно работающий или(и) медленный интернет и Вы бы хотели хранить репозиторий у себя на жестком диске, еще один вариант, это создание зеркала внутри локальной сети, именно так и поступил я и руководство будет для этого варианта. Итак для начала нам потребуется сам репозиторий, для закачки его на винчестер нам потребуется программа debmirror, установить ее можно через ваш любимый менеджер пакетов Adept или Synaptic, ну или через консоль . Здесь я буду приводить примеры для консоли, ну а с графикой Вы и сами разберетесь ;) . Устанавливаем программу debmirror
sudo apt-get install debmirror
Теперь подготовим папку в которую будет закачан репозиторий
mkdir ubuntu
Конечно же вы можете назвать папку как угодно. Теперь нам нужно создать скрипт, в этой самой папке, который собственно и будет закачивать репозиторий.
gedit archive.ubuntulinux.org.sh
Скрипт должен содержать следующие строки
#! /bin/bash -x /usr/bin/debmirror --nosource -m --passive --host=archive.ubuntulinux.org \
--root=ubuntu --method=http --progress \
--dist=maverick,maverick-security,maverick-updates,maverick-backports \
--ignore-release-gpg --section=main,restricted,multiverse,universe \
--arch=i386 /путь/к/папке/репозитория/
Этот скрипт будет выкачивать репозиторий для версии Ubuntu 8.04. Наверное вы все заметили параметр —arch этот параметр указывает архитектуру для которой собраны пакеты Вы также можете установить значение параметра amd64. Ну все теперь выполняем скрипт
./archive.ubuntulinux.org.sh
Учтите что у меня например репозиторий занял около 22Гб (i386). Работу скрипта всегда можно завершить без каких либо последствий, а после следующего старта скрипта он проверит все md5 суммы пакетов и продолжит работу(учтите что проверка контрольных сумм занимает значительный ресурс процессора, так что по мере роста количества скачанных пакетов старайтесь реже прерывать работу скрипта) Ну вот теперь у вас на жестком диске лежит копия репозитория, если вы желаете добавить его в источники пакетов вам нужно прописать строку примерно следующего вида
deb file:///blablabla/ubuntu/ru.archive.ubuntu.com/ hardy main restricted multiverse universe
Теперь собственно создание зеркала. Итак для зеркала нам понадобится WEB-сервер Apache. Для установки индейца наберите в терминале
sudo apt-get install apache2
Установили? Запускаем и... ничего. Его еще нужно немного настроить, не бойтесь настроек там совсем немного ;-) . Большинство настроек хранятся в конфигурационном файле
/etc/apache2/apache2.conf
открываем его для редактирования
sudo gedit /etc/apache2/apache2.conf
Находим в этом файле строчки с параметрами
User
Group
устанавливаем значение этих параметров в www-data. Должно получится следующее
User www-data Group www-data
Теперь нужно указать Apache имена файлов которые он будет открывать по умолчанию, когда браузер обратится к вашему сайту. Этот шаг необязателен, он нужен нам будет для проверки работоспособности сервера. Добавляем строку
DirectoryIndex index.html index.phtml index.php
Теперь можно проверить работоспособность сервера, запустив Apache и набрав в браузере свой IP адрес. Я еще добавил (на всякий случай) строку
DocumentRoot "/var/www/"
Которая указывает на директорию в которой находится сайт. Вы можете указать директорию где находится репозиторий. Или можете просто скопировать содержимое репозитория в эту папку. Я вот сделал немного по другому, разместил репозиторий на отдельном разделе и примонтировал его в /var/www/. Все теперь удаляем файл index.html из директории с сайтом и опять набираем в браузере свой адрес, там должен появится репозиторий. Для добавления репозитория в источники пакетов вам нужно прописать в файле /etc/apt/sources.list примерно следующее
deb http://Ваш IP адрес/ru.archive.ubuntu.com/ hardy main restricted multiverse universe
Обсудить этот и другие вопросы связаные с программным обепечением можно в разделе форума http://trambroid.com/forum/16