Создание зеркала репозитория Сравнение версий

Различия

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

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:создание_зеркала_репозитория [2011/02/20 12:02]
[Ссылки]
wiki:создание_зеркала_репозитория [2016/11/01 07:26] (текущий)
[Краткое описание руководства] отделю-ка кэширование, и так огромная статья
Строка 14: Строка 14:
  
 Таким хранилищем может быть FTP или HTTP сервер,​ специально сформированный CD/​DVD-диск,​ директория на жёстком диске или флешке. Данная статья описывает различные способы создания локального/​сетевого зеркала репозиториев. Таким хранилищем может быть FTP или HTTP сервер,​ специально сформированный CD/​DVD-диск,​ директория на жёстком диске или флешке. Данная статья описывает различные способы создания локального/​сетевого зеркала репозиториев.
 +
 +<​note>​Собственный репозиторий нужен для установки программ на компьютеры,​ не имеющие доступа в интернет. Если доступ в интернет у вас есть, и вы хотите сэкономить время и трафик при установке программ на множество компьютеров,​ то лучше использовать [[Кэширование репозиториев|кэширование (проксирование) репозиториев.]]</​note>​
  
 FIXME - По возможности тут будут собраны все основные способы зеркалирования,​ создания и распространения репозиториев. ​ FIXME - По возможности тут будут собраны все основные способы зеркалирования,​ создания и распространения репозиториев. ​
Строка 23: Строка 25:
 ==== Способ №1. При помощи debmirror ==== ==== Способ №1. При помощи debmirror ====
  
-FIXME +==== Способ №2. При помощи ubuntu-repository.exe ==== 
 +Многих также интересует вопрос "​**Какой размер репозитория ubuntu**"​ и "​**как удалить старые версии пакетов репозитория ubuntu**"?​ 
 +{{:​wiki:​screen.jpg?​nolink&​400|http://​mozgoed-mgoy.narod.ru/​ubuntu-repository/​screen.jpg}}
  
 +0.**Требования к запуску программы.**
 +Практически такие же как и у автора программы.
 +  * Windows 2000, Windows XP, Windows Server 2003 - Нужен .Net Framework 2.0
 +  * Windows Vista, Windows 7 - Ничего не нужно.
 +  * Ubuntu 10.10 - Нужен пакет Mono. Запускать можно через консоль "mono ubuntu-repository.exe"​.
 +
 +1.**Как узнать размер скачиваемого репозитория?​**
 +Моя программа позволяет в интерактивной форме узнать размеры репозитория и отдельных его частей.
 +  - Выбираете нужные дистрибутивы(первая колонка).
 +  - Выбираете компоненты распространения (вторая колонка).
 +  - Выбираете архитектуру процессора (третья колонка)
 +Повторяете операцию (а,б,в) для каждого релиза,​ который вам нужен (на момент публикации этого сообщения актуальной была Oneiric).
 +Жмёте "​Анализ"​. Прога изучает все вкладки и по каждой выдаёт суммарный размер репозитория. И в конце выдаёт размер всего-всего,​ что вы выбрали вообще.
 +Программа не создаёт никаких временных файлов в процессе "​Анализа",​ поэтому считается полностью Portable. (можно даже с CD запускать)
 +
 +2. **Как скачать Ubuntu репозиторий?​**
 +Данная программа может скачать ubuntu репозиторий с опциональным выбором его частей.
 +  - Выбираете нужные дистрибутивы(первая колонка).
 +  - Выбираете компоненты распространения (вторая колонка).
 +  - Выбираете архитектуру процессора (третья колонка)
 +г)Повторяете операцию (а,б,в) для каждого релиза,​ который вам нужен (Dapper в репозитории Ubuntu.com более не хранится).
 +Жмёте кнопку скачивания. Программа скачивает пакеты связанные связанные с выбранными настройками.
 +**Внимание!** Возможность скачивания находится на стадии beta и при слабом Интернет соединении может падать программа.
 +
 +3. **Как удалить устаревшие пакеты из скачанного репозитория?​**
 +Такой вопрос часто возникает когда вы несколько раз обновили репозиторий с помощью другой программы,​ но она забыла удалить устаревшие пакеты. А по причине огромного размера репозитория сделать это вручную очень-очень долго.
 +  - Нажать кнопку "​Обзор"​ и выбрать корневую папку репозитория. (в ней должны быть папки "//​dists//"​ и "//​pool//"​)
 +  - Нажать кнопку "​Удалить старые пакеты"​. Дождаться окончания сканирования пакетов в репозитории (окно может зависнуть,​ потому что ещё не успел распаралелить процессы),​ и дождаться окончания сканирования пакетов в папке "​pool"​ (Процесс ещё более долгий... ​ :( )
 +  - Откроется окошко о результатах предварительного сканирования. Согласившись с вопросом о начале Удаления,​ ждём окончания работы программы.
 +Совет: Если в pool'e файлов меньше,​ чем официально должно быть, значит репозиторий не полный. Если наоборот - много больше,​ то либо репозиторий перегружен старыми версиями,​ либо стоит подумать,​ жать ли кнопку "​Да"​. Потому что вся эта разница будет наверняка удалена.
 +Для пытливых умов скажу алгоритм работы. Потому что возможно функция удаления старых пакетов Вас не устроит и удалит что-то лишнее из репозитория. Итак:
 +  - Создаётся список всех файлов в папке pool.
 +  - Находятся все Packages.gz в файле Release в корне репозитория и из каждого архива вынимаются все ссылки на файлы.
 +  - Потом для каждого файла из первого списка ищется соответствие во втором списке. Если находится,​ то файл не трогается. Если не находится,​ то файл физически удаляется.
 +Данная функция программы тоже полностью Portable.
 +
 +//​BugFixes://​
 +
 +-Исправлена ошибка при удалении старых пакетов (удалялся один пакет)
 +
 ++При удалении старых пакетов пустые папки теперь удаляются
 +
 +Скачать последнюю версию
 +[[http://​mozgoed-mgoy.narod.ru/​ubuntu-repository/​ubuntu-repository.zip]]
 ===== Создание "​доверенного"​ репозитория ===== ===== Создание "​доверенного"​ репозитория =====
  
Строка 34: Строка 82:
 FIXME - описание. FIXME - описание.
  
 +
 +==== Прокси репозитория ====
 +  * [[fullcircle/​26/​apt_cacher|Apt-Cacher на нескольких ПК]]
 +  * [[Установка программ на несколько компьютеров#​Apt-proxy|Apt-proxy]]
 ==== http доступ к репозиторию ==== ==== http доступ к репозиторию ====
  
 FIXME FIXME
 +
  
 ==== Репозиторий на CD/DVD ==== ==== Репозиторий на CD/DVD ====
 +=== APTonCD ===
 +см. [[Установка программ на несколько компьютеров#​APTonCD|APTonCD]]
 +
 +=== Вручную через debmirror ===
  
 Описана последовательность действий для lucid (10.04) в других версиях некоторые шаги могут не понадобиться или наоборот - потребоваться что-то ещё. Описана последовательность действий для lucid (10.04) в других версиях некоторые шаги могут не понадобиться или наоборот - потребоваться что-то ещё.
Строка 55: Строка 112:
  
  
-**3.** Готовим каталоги дисков:​+**3.** Если создать каталоги дисков прямо сейчас,​ то пакеты на дисках будут расположены как попало. Чтобы этого избежать,​ отсортируем пакеты по популярности с помощью статистики сайта http://​popcon.ubuntu.com:​ 
 + 
 +<​code>​wget --output-document - http://​popcon.ubuntu.com/​all-popcon-results.txt.gz | zcat | ruby -ne '/​(\S+)\s+(\d+)\s+\d+\s+(\d+)/​ =~ $_; puts "#​{$2.to_i+$3.to_i} #​{$1}"'​ | sort -nr | cut -d' ' -f2 | grep -v Package | grep -v '​^$'​ > ~/​ubuntu_packages_popularity.txt</​code>​ 
 + 
 +После этого в домашнем каталоге появится файл ~/​ubuntu_packages_popularity.txt,​ в котором содержится список пакетов,​ отсортированный по убыванию популярности. На следующем шаге мы подсунем его debpartial. Таким образом,​ все самые необходимые пакеты окажутся на первых двух-трех DVD. 
 + 
 + 
 +**4.** Готовим каталоги дисков:​
  
 <​code>​debpartial --nosource --dirprefix=ubuntu --section=main,​restricted,​multiverse,​universe --dist=lucid,​lucid-security,​lucid-updates,​lucid-backports --arch=i386 --size=DVD ubuntu/ ubuntu-dvd/</​code>​ <​code>​debpartial --nosource --dirprefix=ubuntu --section=main,​restricted,​multiverse,​universe --dist=lucid,​lucid-security,​lucid-updates,​lucid-backports --arch=i386 --size=DVD ubuntu/ ubuntu-dvd/</​code>​
 +
 Соответственно,​ если нужен amd64 то замените слово **i386** на него. Соответственно,​ если нужен amd64 то замените слово **i386** на него.
 +Если на предыдущем шаге вы создали список популярности пакетов,​ то нужно указать debpartial обрабатывать пакеты по порядку в соответствии с ним - добавьте опцию --include-from=//​имя файла//​
  
 +<​code>​debpartial --include-from=ubuntu_packages_popularity.txt --nosource --dirprefix=ubuntu --section=main,​restricted,​multiverse,​universe --dist=lucid,​lucid-security,​lucid-updates,​lucid-backports --arch=i386 --size=DVD ubuntu/ ubuntu-dvd/</​code>​
  
-**4.** Создаём скрипт ruby для копирования пакетов по дискам.+**5.** Создаём скрипт ruby для копирования пакетов по дискам.
  
 Любым текстовым редактором. Вот его содержимое,​ которое необходимо туда скопировать:​ Любым текстовым редактором. Вот его содержимое,​ которое необходимо туда скопировать:​
Строка 254: Строка 321:
  
  
-**5.** Распихиваем пакеты по дискам вышесозданным скриптом:​+**6.** Распихиваем пакеты по дискам вышесозданным скриптом:​
  
 <​code>​$ sudo ruby debcopy ubuntu/ ubuntu-dvd/​ubuntu0 <​code>​$ sudo ruby debcopy ubuntu/ ubuntu-dvd/​ubuntu0
Строка 262: Строка 329:
  
  
-**6.** Создаём идентификаторы дисков чтобы apt(synaptic) не ругался:​+**7.** Создаём идентификаторы дисков чтобы apt(synaptic) не ругался:​
  
 <​code>​mkdir ubuntu-dvd/​ubuntu0/​.disk <​code>​mkdir ubuntu-dvd/​ubuntu0/​.disk
Строка 278: Строка 345:
 Можно написать что-нибудь свое. Номер **DVD-X** соответственно менять. Можно написать что-нибудь свое. Номер **DVD-X** соответственно менять.
  
-**7.** И наконец последний шаг. **Закатываем пакеты в образы**:​+**8.** И наконец последний шаг. **Закатываем пакеты в образы**:​
  
 <​code>​mkisofs -f -J -r -V "​Ubuntu 10.04 1/8" -o ubuntu-10.04-$(date -I)-complete-i386-dvd1.iso ubuntu-dvd/​ubuntu0 <​code>​mkisofs -f -J -r -V "​Ubuntu 10.04 1/8" -o ubuntu-10.04-$(date -I)-complete-i386-dvd1.iso ubuntu-dvd/​ubuntu0
Строка 357: Строка 424:
  
 https://​help.ubuntu.com/​community/​Repositories/​Personal https://​help.ubuntu.com/​community/​Repositories/​Personal
-[[http://​xand.net.ru/​tag/​zerkalo/​|Варианты создания зеркала репозитория]] 
  
-{{tag> HOWTO FIXME Администрирование Server Linux_на_предприятии}}+{{tag> HOWTO FIXME Apt Администрирование Server Linux_на_предприятии}}