The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Создание локального зеркала Debian (apt-mirror + ProFTPd + Apache2)
Введение: Нужно было сделать зеркало Debian в локальной сети университета. Под
эти нужны была создана виртуальная машина и установлен "голый" Debian.
IP адрес достался по-наследству от старого зеркала: 192.168.1.200.
Были поставленыVMware Tools. И всё сконфигурировано для работы.

Далее пойдем по порядку.

В нашем университете используется прокси-сервер,
и чтобы установить его по умолчанию в файл конфигурации окружения /etc/profile
необходимо внести изменения, а именно добавить:

   export http_proxy=http://192.168.251.1:8080/
   export ftp_proxy=ftp://192.168.251.1:8080/

Ставим пакет, который будет выполнять зеркалирование apt-mirror:

   apt-get install apt-mirror

Дальше нам надо определиться с файлом конфигурации зеркала. Что будет зеркалироваться и откуда.
Так как через университетский прокси доступно быстрое зеркало http://ftp.mgts.by/debian

Правим /etc/apt/mirrors.list:

   # apt-mirror configuration file
   ##
   ## The default configuration options (uncomment and change to override)
   ##
   #

   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 defaultarch i386
   set nthreads 20
   set _tilde 0

   # etch's section
   #deb http://ftp.mgts.by/debian etch main contrib non-free

   # lenny's section
   deb http://ftp.mgts.by/debian lenny main contrib non-free

   # squeeze's section
   deb http://ftp.mgts.by/debian squeeze main contrib non-free


   # sid's section
   deb http://ftp.mgts.by/debian sid main contrib non-free

   ##
   ## Cleaner configuration example
   ##

   set cleanscript $var_path/clean.sh

   # Cleaning section

   clean http://ftp.mgts.by/

   skip-clean http://ftp.mgts.by/debian/doc/
 

Что бы не было ошибки при выполнении /var/spool/apt-mirror/var/clean.sh надо
пропатчить /usr/bin/apt-mirror

Содержание файла apt-mirror.patch:

   --- /usr/bin/apt-mirror 2007-12-02 11:22:02.000000000 +0100
   +++ apt-mirror-patched 2008-06-15 11:28:47.000000000 +0200
   @@ -518,14 +518,14 @@
   my $dir = shift;
   my $is_needed = 0;
   return 1 if $skipclean{$dir};
   - opendir(DIR, $dir) or die "apt-mirror: can't opendir $dir: $!";
   - foreach (grep { !/^\.$/ && !/^\.\.$/ } readdir(DIR)) {
   + opendir(my $dir_h, $dir) or die "apt-mirror: can't opendir $dir: $!";
   + foreach (grep { !/^\.$/ && !/^\.\.$/ } readdir($dir_h)) {
   my $item = $dir . "/". $_;
   $is_needed |= process_directory($item) if -d $item && ! -l $item;
   $is_needed |= process_file($item) if -f $item;
   $is_needed |= process_symlink($item) if -l $item;
   }
   - closedir DIR;
   + closedir $dir_h;
   push @rm_dirs, $dir unless $is_needed;
   return $is_needed;
   }

Патчим:

   cat apt-mirror.patch | patch -p1

Логинимся под пользователем apt-mirror:

   su - apt-mirror

Запускаем программу зеркалирования:

   apt-mirror

Идем пить чай.

Оговорюсь, в зависимости от количества дистрибутивов выбранных для
зеркалирования и каталогов для зеркалирования объем скачанной информации может
быть очень большой.

Поэтому запаситесь терпением и работайте в screen'е :)
Должны быть всякие сообщения о том что всё ок. А при ошибке надо гуглить и исправлять.

После окончания успешного зеркалирования выполняем /var/spool/apt-mirror/var/clean.sh:

   # /bin/bash /var/spool/apt-mirror/var/clean.sh

Чистим от "шлаков". И освобождаются Гигабайты пространства.

Настраиваем автоматизацию по планировщику. Правим планировщик для проверки
зеркала каждый день в час ночи и очистки от "мусора" в четыре утра.

В /etc/cron.d/apt-mirror добавляем: 

   #
   # Regular cron jobs for the apt-mirror package
   #
   0 1 * * * apt-mirror /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log
   0 4 * * * root /bin/bash /var/spool/apt-mirror/var/clean.sh > /var/spool/apt-mirror/var/cron_cl.log
   #

Ставим apache2 для доступа по HTTP к зеркалу:

   apt-get install apache2

Делаем доступ к зеркалу через HTTP, для этого создаем симлинк:

   ln -s /var/spool/apt-mirror/mirror/ftp.mgts.by/debian /var/www/debian

Далее делаем, как и положено, ссылку на stable дистрибутив:

   cd /var/spool/apt-mirror/mirror/ftp.mgts.by/debian/dists
   ln -s lenny/ stable

Дальше надо сделать доступ по FTP к зеркалу с помощью сервера ProFTPd:

   apt-get install proftpd

Конфигурируем его. Правим /etc/proftpd/proftpd.conf под наши нужды:

   Include /etc/proftpd/modules.conf

   UseIPv6 off
   IdentLookups off

   ServerName "Debian mirror"
   ServerType standalone
   DeferWelcome off

   MultilineRFC2228 on
   DefaultServer on
   ShowSymlinks on

   TimeoutNoTransfer 600
   TimeoutStalled 600
   TimeoutIdle 1200

   DisplayLogin welcome.msg
   DisplayChdir .message true
   ListOptions "-l"

   DenyFilter \*.*/

   RequireValidShell off

   # Port 21 is the standard FTP port.
   Port 21

   MaxInstances 30

   User proftpd
   Group nogroup
   Umask 022 022

   AllowOverwrite on

   TransferLog /var/log/proftpd/xferlog
   SystemLog /var/log/proftpd/proftpd.log


   User ftp
   Group nogroup
   UserAlias anonymous ftp
   DirFakeUser on ftp
   DirFakeGroup on ftp
   # Пускать пользователей с шелом /bin/false и прочей невалидной ерундой
   RequireValidShell off
   MaxClients 100


Так как ProFTPd не понимает симлинки за пределы текущего FTP-дерева, то сделаем хитрый mount:

   mkdir /home/ftp/debian
   mount --bind /var/spool/apt-mirror/mirror/ftp.mgts.by/debian /home/ftp/debian

Чтобы не пропадал mount после перезагрузки в /etc/fstab вносим изменения,
добавляем в конец строчку:

   /var/spool/apt-mirror/mirror/ftp.mgts.by/debian /home/ftp/debian none bind

Всё. Готово. Для уверенности можем перезагрузить сервер и понять, что всё будет работать :)

Ссылки:

* http://apt-mirror.sourceforge.net - apt-mirror (apt sources mirroring tool)
* http://www.howtoforge.com/local_debian_ubuntu_mirror - How To Create A Local
Debian/Ubuntu Mirror With apt-mirror
* http://www.linuxnsk.ru/index.php?option=com_content&task=view&id=171&Itemid=1
- Как создать локальное зеркало Debian/Ubuntu используя apt-mirror (перевод)
*
http://wiki.binarylife.ru/index.php/Apt-get_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_%D0%BF%D1%80%D0%BE%D0%BA%D1%81%D0%B8 -
 Apt-get через прокси
* http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=484876 - apt-mirror: many closedir() errors
* http://itblog.su/proftpd-vs-symlinks.html - proftpd vs symlinks
* http://sudouser.com/nastrojka-cron - Настройка Cron
 
15.04.2010 , Автор: Yuri Rybnikov
Раздел:    Корень / Администратору / Система / Linux специфика / Установка и работа с пакетами программ в Linux

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, Sakalou Aliaksei, 10:45, 16/04/2010 [ответить] [смотреть все]
  • +/
    Возьми в тег ссылку на http://wiki.binarylife.ru
     
  • 1.2, ffsdmad, 11:04, 16/04/2010 [ответить] [смотреть все]
  • +/
    как то сложно, наверняка это же можно сделать проще
     
     
  • 2.3, gyouja, 12:07, 16/04/2010 [^] [ответить] [смотреть все]
  • +/
    Конечно можно Пакет debmirror гораздо удобнее, причем синкает еще и образы для ... весь текст скрыт [показать]
     
     
  • 3.8, ffsdmad, 11:20, 19/04/2010 [^] [ответить] [смотреть все]  
  • +/
    debmirror это который на руби и тормозит по полчаса в процессе обновления и который не умеет снимать блокировки?
    спасибо, пользуюсь им же, но уже сыт по горло
     
     
  • 4.10, RapteR, 11:35, 19/04/2010 [^] [ответить] [смотреть все]  
  • +/
    >debmirror это который на руби и тормозит по полчаса в процессе обновления
    >и который не умеет снимать блокировки?
    >спасибо, пользуюсь им же, но уже сыт по горло

    debmirror это который на перле, не тормозит и с блокировками проблем нет. вот в лог проезжания ниженаписанного скрипта:

    Update local repo started at 07:00:01 (04/19/10)
    Ubuntu repo updated at 07:01:23
    OpenOffice.org repo updated at 07:01:26
    UNetBootIn repo updated at 07:01:27
    VirtualBox repo updated at 07:01:29
    Qutim repo updated at 07:01:30
    Qutim.SVN repo updated at 07:01:32
    WINE repo updated  at 07:01:33
    Update complite!

    Общий вес репозиториев составляет 47 ГБ и все это перелопачивает 4 пенек ворочия стареньким ide винтом за полторы минуты. Толщина канала в инет 10 мегабит. ЧЯДНТ?

     
  • 3.14, lioncub, 10:44, 06/04/2012 [^] [ответить] [смотреть все]  
  • +/
    >Конечно можно. Пакет debmirror гораздо удобнее, причем синкает еще и образы для netboot и т.п.

    а как с помощью него зазеркалить, http://archive.ubuntu.com/ubuntu/dists/lucid/main/installer-amd64/ ?

     
  • 2.4, Анон, 13:00, 16/04/2010 [^] [ответить] [смотреть все]  
  • +/
    Все элементарно -- apt-cacher-ng. Может конечно не совсем то что было нужно -- кэширует по требованию. Самое то, если цель -- экономия трафика.
    Вот тут хауту делал по этой теме http://wiki.e-lug.ru/%D0%9A%D0%B5%D1%88%D0
     
  • 1.5, RapteR, 13:59, 16/04/2010 [ответить] [смотреть все]  
  • +1 +/
    Убунтологам на заметку Качается репа несколько полезных сторонних репозиторие... весь текст скрыт [показать]
     
  • 1.6, PavelR, 16:32, 16/04/2010 [ответить] [смотреть все]  
  • +/

    подскажите мануал на тему:

    требуется вести собственный форк пакета, т.е. определенные опции сборки + свои патчи применяются к некоторому стандартному пакету. При этом хочется его обновлять патчами "из апстрима", не теряя своих патчей. Подскажите как производить эту процедуру и какие инструменты применять.

     
  • 1.7, Kirill, 09:10, 19/04/2010 [ответить] [смотреть все]  
  • +/
    Более универсальный метод установки параметров proxy, как мне кажется:
    $ cat /etc/apt/apt.conf.d/proxy
    Acquire::http::Proxy "http://proxy.company.ru:8080";
     
     
  • 2.9, ffsdmad, 11:22, 19/04/2010 [^] [ответить] [смотреть все]  
  • +/
    >Более универсальный метод установки параметров proxy, как мне кажется:
    >$ cat /etc/apt/apt.conf.d/proxy
    >Acquire::http::Proxy "http://proxy.company.ru:8080";

    прокси тоже нужно настраивать определённым образом, в частности разрешить кеширование больших файлов и выделить оГРОМЕННЫй раздел под кешь
    иначе пара ядер, ооо и гномов отключат весь инет у company.ru

     
  • 1.11, slavon, 14:15, 22/04/2010 [ответить] [смотреть все]  
  • +/
    apt-cacher-ng
     
  • 1.12, DieselxXx, 16:35, 23/12/2010 [ответить] [смотреть все]  
  • +/
    Есть хороший гайд как создать локальное зеркало Ubuntu http://thetech.com.ua/?p=1394
     
  • 1.13, Mozgoed, 03:27, 18/09/2011 [ответить] [смотреть все]  
  • –1 +/
    Моя программа может справиться с этой проблемой в визуальном режиме)
    Фото: http://mozgoed-mgoy.narod.ru/ubuntu/screen.jpg
    Ссылка: http://mozgoed-mgoy.narod.ru/ubuntu/ubuntu-repository.zip
    Программа Portable и кроссплатформенная. Для работы нужен .Net Framework 2.0
    Есть английская версия.
    Подробности на http://forum.ubuntu.ru/index.php?topic=123223.msg1024374#msg1024374
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:

     Добавить заметку
     Версия для печати
     
     Поиск заметки:
     

    Последние заметки
    - 12.05 Организация шифрованного бэкапа с помощью rdiff-backup, encfs и Dropbox
    - 11.05 Настройка беспроводного соединения в Debian GNU/Linux
    - 07.05 Использование Google Drive в Linux
    - 18.04 Использование нескольких сетевых стеков в Linux
    - 15.04 Восстановление стандартного KDE меню после его удаления (например, wine)
    - 11.04 Настройка gmirror при использовании GPT во FreeBSD 9
    - 09.04 Маршрутизатор на базе FreeBSD с приоритизация трафика средствами PF и ALTQ
    - 02.04 Частичное восстановление данных MySQL из бэкапа, созданного с использованием LVM
    - 21.03 Настройка DNSSEC в BIND 9.9
    - 17.03 Набор номера на Cisco IP Phone 7960/7940 из скрипта
    RSS | Следующие 15 записей >>


    ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

    Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

    Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

    Оформить подписку на год


      Закладки на сайте
      Проследить за страницей
    Created 1996-2012 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    RUNNet TopList