Счетчик

Поисковый анализ сайта
яндекс.ћетрика
Cервер и сайт запущен 2011.02.01 на Debian

Добрый день!
Сегодня поговорим о том как можно создать локальное зеркало на своей машине. 
Я раньше не понимал для чего оно мне, но когда начил усердно тестить систему я сталкнулся с тем что мне надоело постоянно ждать, пока скачается тот или иной пакет, и был вынужден создать свое зеркало, со всеми обновления безопасности и так далее.

И так приступим, нам надо установить сам пакет apt-mirror
логинемся под рутом, хотя и не рекомендуют этого делать, всеже мне не понятен этот пользователь sudo, я как то привык все делать на свой страх и риск. 
даем команду apt-get install apt-mirror он попросит установить первый диск в dvd нажимаем ок, он еще установит зависимости. 
перед тем как начать настройку убедитесь что ваша система свободна на 50 гигов примерно, я просто беру с запасом. Почему вы спросите? Я отвечу идет постоянное обновление и число пакетов растет.
после этого нам надо отредактировать конфиг файлы, сам файл находится по пути /etc/apt/mirror.list, и так начнем
даем команду
nano /etc/apt/mirror.list 
откроется конфиг файл
на примере я вложу свой конфиг файл кому лень самому писать это все дело

############# config ##################
#
# set base_path /var/spool/apt-mirror
#
[b]set mirror_path /home/chircov/repo/[/b]
set skel_path /home/chircov/repo/
# set var_path $base_path/var
# set cleanscript $var_path/clean.sh
# set defaultarch <running host architecture>
# set postmirror_script $var_path/postmirror.sh
# set run_postmirror 0
set nthreads 20
set _tilde 0
#
############# end config ##############

deb http://security.debian.org/ squeeze/updates main contrib
deb http://deb.opera.com/opera/ squeeze non-free
deb http://ftp.ru.debian.org/debian/ squeeze contrib non-free main
deb http://www.debian-multimedia.org/ squeeze main non-free

clean http://ftp.ru.debian.org/debian/ squeeze main contrib non-free
clean http://www.debian-multimedia.org/ squeeze main non-free
clean http://deb.opera.com/opera/ squeeze non-free
clean http://security.debian.org/ squeeze/updates main contrib

########################
по первому полю все понятно security.debian.org/ здесь находятся критические обновления
в deb.opera.com находится браузер всем изветсный OPERA
ftp.ru.debian.org/debian/ - тут находятся все пакеты программы игры вообщем все 
http://www.debian-multimedia.org тут находятся все для мультимедии
строчки которые начинаются со слов clean это говорит о том что будут удаляться все старые пакеты в замен новым.
в выделенной строке мы указываем куда складывать наши репозитории, создадим каталог например в домашней директории
mkdir /home/pupkin/repo
и значет /home/pupkin/repo мы вставляем в выделенную мною строку
и в конце после того как настроили сохраняем файл кнопками ctrl+o (o английская буква)
и закрываем ctrl+x
далее даем команду /usr/bin/apt-mirror и вы увидите сколько надо скачать на данный момент у меня составляет размер 37,5 гигов. Наберемся терпения и качаем
После того как скачается все редактируем файл, нам ведь надо как то обновить систему и сказать нашей машине откуда брать эти обновления
nano /etc/apt/sources.list


deb cdrom:[Debian GNU/Linux 6.0.0 _Squeeze_ - Official i386 DVD Binary-1 20110205-17:27]/ squeeze contrib main

deb file:///home/pupkin/repo/security.debian.org/ squeeze/updates main contrib
deb file:///home/pupkin/repo/deb.opera.com/opera/ squeeze non-free
deb file:///home/pupkin/repo/ftp.ru.debian.org/debian/ squeeze contrib non-free main
deb file:///home/pupkin/repo/www.debian-multimedia.org/ squeeze main non-free

Закоментируем строки какие там есть, а лучше просто удалить и туда впишем такое то что у меня чуть выше.
указываем путь до наших репозиторий
даем команду apt-get update и видем что есть еще маленькие недароботки то-есть открытые ключи, я честно не помню что там выскакиевает их названия но помню что надо делать с ними.
даем команду apt-get cache search key эта команды ищет пакеты из тех что есть у вас в локальном использовании. находим что то
он находит такой пакет debian-multimedia-keyring список будет большой и даем такую команду
apt-get install debian-multimedia-keyring
затем даем команду
wget -O - http://deb.opera.com/archive.key | apt-key add -
этой командой мы скачаем ключик для использования репозитории для браузера оперы.
еще раз даем команду apt-get update и у нас пропали непонятные строки.

Создание зеркала репозитория Debian

Надоели постоянные тормоза яндексовского зеркала, поэтому пришло решение сделать свое зеркало Ubuntu 10.04 и Debian 6.0 (i386 и amd64). Погуглив решил использовать пакет apt-mirror, как наиболее простой в конфигурировании.


Для начала необходимо поставить apt-mirror (спасибо кеп):

$ aptitude install apt-mirror



Также нам потребуется веб-сервер для доступа к репозиториям по http:

$ aptitude install apache2



Далее необходимо решить, в каком каталоге будет храниться копия репозиториев. Я использую папку /media/mirrors, которая распологается на отдельном hdd (120Gb). При выборе места хранения надо заранее продумать доступность свободного пространства т.к. репозитории штука не из легких, у меня перечисленные выше зеркала заняли 103Gb!

Настройка apt-mirror
Собственно конфиг apt-mirror очень похож на sources.list. И так открываем /etc/apt/mirror.list и правим примерно так:

############# config ##################
#Директория, в которую складываем зеркало
set base_path /media/mirrors
#Далее идут служебные каталоги, их значения обычно менять не надо.
#Первый каталог - это собственно непосредственно файлы зеркала.
# set mirror_path $base_path/mirror
#Временные файлы apt-mirror
# set skel_path $base_path/skel
#Логи выполнения apt-mirror
# set var_path $base_path/var
# set cleanscript $var_path/clean.sh
#Архитектура, для которой создаём зеркало. По умолчанию - архитектура системы, на которой работает apt-mirror.
#set defaultarch i386
# set postmirror_script $var_path/postmirror.sh
# set run_postmirror 0
#Служебные параметры. Лучше не менять.
set nthreads 10
set _tilde 0
#
############# end config ##############

############ Зеркала Ubuntu ###########
deb-i386 http://archive.ubuntu.com/ubuntu lucid main restricted universe multiverse
deb-amd64 http://archive.ubuntu.com/ubuntu lucid main restricted universe multiverse

deb-i386 http://archive.ubuntu.com/ubuntu lucid-updates main restricted universe multiverse
deb-amd64 http://archive.ubuntu.com/ubuntu lucid-updates main restricted universe multiverse

########### Зеркала Debian ############
deb-i386 http://ftp.fi.debian.org/debian/ squeeze main contrib non-free
deb-amd64 http://ftp.fi.debian.org/debian/ squeeze main contrib non-free

deb-i386 http://ftp.fi.debian.org/debian/ squeeze-updates main contrib non-free
deb-amd64 http://ftp.fi.debian.org/debian/ squeeze-updates main contrib non-free

#Эти строчки сообщают apt-mirror, что более ненужные файлы из основного репозитория
# (например, устаревшие версии пакетов, отсутствующие в индексах) можно удалить из локальной копии,
# тем самым освободив место.
clean http://archive.ubuntu.com/
clean http://ftp.fi.debian.org/

#Пропуск указанных каталогов при очистке
skip-clean http://archive.ubuntu.com/ubuntu/dists/lucid/main/installer-i386/
skip-clean http://ftp.fi.debian.org/debian/dists/squeeze/main/installer-i386/




Добавим в файл еще немного зеркал

deb http://security.debian.org/ squeeze/updates main contrib
deb http://ftp.de.debian.org/debian squeeze main contrib non-free
deb http://deb.opera.com/opera/ squeeze non-free
deb http://download.virtualbox.org/virtualbox/debian/ squeeze contrib non-free
deb http://download.webmin.com/download/repository sarge contrib
deb http://repos.zend.com/zend-server/deb server non-free
deb http://qutim.org/debian/squeeze squeeze main
deb http://backports.debian.org/debian-backports squeeze-backports main
clean http://ftp.de.debian.org/      



В качестве источников вы можете указать свои любимые репы=)

Перед запуском необходимо убедиться, что основной каталог /media/mirrors, а так же все вспомогательные каталоги mirror, var и skel внутри него, существуют и доступны для записи пользователю apt-mirror. Создать все эти каталоги и задать права доступа можно командами:

$ mkdir -p /media/mirrors/
$ mkdir -p /media/mirrors/{mirror,var,skel}
$ sudo chown -R apt-mirror:www-data /media/mirrors/



Теперь осталось запустить apt-mirror и дождаться окончания его выполнения:

# apt-mirror



Автоматическое обновление нашего зеркала
Если не охота обновлять зеркало каждый раз вручную, то открываем и редактируем /etc/cron.d/apt-mirror:

#
# Regular cron jobs for the apt-mirror package
#
0 4 * * * apt-mirror /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log



По умолчанию автоапдейт будет происходить каждый день в 04:00.

Работа с нашим зеркалом
Локальные копии всех репозиториев, указанных в mirror.list, будут храниться в папках mirror/имя_репозитория в указанной основной рабочей папке apt-mirror. Таким образом копия репозитория, который был задан в mirror.list как:
deb-i386 http://archive.ubuntu.com/ubuntu lucid main restricted universe multiverse
окажется в нашем случае в папке /media/mirrors/mirror/archive.ubuntu.com/ubuntu. И именно эту папку нужно будет подключать как репозиторий к другим системам с помощью веб-сервера.

Сденлаем симлинки, указывающие на наши папки с репами:

ln -s /media/mirrors/mirror/ftp.fi.debian.org/debian /var/www/debian
ln -s /media/mirrors/mirror/archive.ubuntu.com/ubuntu /var/www/ubuntu



После этого можно будет подключить этот компьютер как источник приложений ко всем остальным в сети, указав на них вот такой репозиторий:
Ubuntu:

deb http://адрес_вашего_компьютера/ubuntu lucid main restricted universe multiverse
deb http://адрес_вашего_компьютера/ubuntu lucid-updates main restricted universe multiverse
Debian:
deb http://адрес_вашего_компьютера/debian/ squeeze main contrib non-free
deb http://адрес_вашего_компьютера/debian/ squeeze-updates main contrib non-free



Так же после того как успешно скачали и у нас стало свое зеркало добавим в sources.list своем емсто хранение зеркала. Очень удобно.
После вывода команды apt-get update мы увидим.

W: Ошибка GPG: file: squeeze Release: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY 54422A4B98AB5139
W: Ошибка GPG: file: sarge Release: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY D97A3AE911F63C51
W: Ошибка GPG: file: server Release: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY 2EAE1437F7D2C623
W: Ошибка GPG: file: squeeze Release: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY 755B00F7C90C75EB



Все просто, выполним следующее:

gpg --keyserver hkp://subkeys.pgp.net --recv-keys 54422A4B98AB5139
gpg --export --armor 54422A4B98AB5139 | sudo apt-key add -
wget http://www.webmin.com/jcameron-key.asc
apt-key add ./jcameron-key.asc



wget http://repos.zend.com/zend.key -O- |apt-key add -



wget -O - http://qutim.org/debian/archive.key | sudo apt-key add -



wget -O - http://deb.opera.com/archive.key | sudo apt-key add -



Далее даем команду

apt-get update


Все ошибки о том что не подписаны ключами исчезли!

Если вы хотите использовать вашу копию репозитория как локальный репозиторий, то вам необходимо будет подключить ваш носитель с репозиторием к нужному компьютеру, а затем добавить примерно следующую строчку к списку источников приложений на этом компьютере:
deb file:/media/mirrors/mirror/archive.ubuntu.com/ubuntu lucid main restricted universe multiverse
Путь, конечно, в вашем случае может отличаться.

Напоследок хочется заметить, что во многих случаях совершенно не обязательно делать копию всего репозитория, а достаточно использовать что-то вроде apt-cache или apt-move.

Добавить комментарий


Защитный код
Обновить