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

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:создание_зеркала_репозитория [2011/09/07 15:15]
[Способ №2. При помощи ubuntu-repository.exe]
wiki:создание_зеркала_репозитория [2016/11/01 07:26] (текущий)
[Краткое описание руководства] отделю-ка кэширование, и так огромная статья
Строка 14: Строка 14:
  
 Таким хранилищем может быть FTP или HTTP сервер,​ специально сформированный CD/​DVD-диск,​ директория на жёстком диске или флешке. Данная статья описывает различные способы создания локального/​сетевого зеркала репозиториев. Таким хранилищем может быть FTP или HTTP сервер,​ специально сформированный CD/​DVD-диск,​ директория на жёстком диске или флешке. Данная статья описывает различные способы создания локального/​сетевого зеркала репозиториев.
 +
 +<​note>​Собственный репозиторий нужен для установки программ на компьютеры,​ не имеющие доступа в интернет. Если доступ в интернет у вас есть, и вы хотите сэкономить время и трафик при установке программ на множество компьютеров,​ то лучше использовать [[Кэширование репозиториев|кэширование (проксирование) репозиториев.]]</​note>​
  
 FIXME - По возможности тут будут собраны все основные способы зеркалирования,​ создания и распространения репозиториев. ​ FIXME - По возможности тут будут собраны все основные способы зеркалирования,​ создания и распространения репозиториев. ​
Строка 25: Строка 27:
 ==== Способ №2. При помощи ubuntu-repository.exe ==== ==== Способ №2. При помощи ubuntu-repository.exe ====
 Многих также интересует вопрос "​**Какой размер репозитория ubuntu**"​ и "​**как удалить старые версии пакетов репозитория ubuntu**"?​ Многих также интересует вопрос "​**Какой размер репозитория ubuntu**"​ и "​**как удалить старые версии пакетов репозитория ubuntu**"?​
-{{:​wiki:​screen.jpg?​nolink&​400|http://​mozgoed-mgoy.narod.ru/​ubuntu/​screen.jpg}}+{{:​wiki:​screen.jpg?​nolink&​400|http://​mozgoed-mgoy.narod.ru/​ubuntu-repository/​screen.jpg}}
  
 0.**Требования к запуску программы.** 0.**Требования к запуску программы.**
 Практически такие же как и у автора программы. Практически такие же как и у автора программы.
-Windows 2000, Windows XP, Windows Server 2003 - Нужен .Net Framework 2.0 +  * Windows 2000, Windows XP, Windows Server 2003 - Нужен .Net Framework 2.0 
-Windows Vista, Windows 7 - Ничего не нужно. +  ​* ​Windows Vista, Windows 7 - Ничего не нужно. 
-Ubuntu 10.10 - Нужен пакет Mono. Запускать можно через консоль "mono ubuntu-repository.exe"​.+  ​* ​Ubuntu 10.10 - Нужен пакет Mono. Запускать можно через консоль "mono ubuntu-repository.exe"​.
  
 1.**Как узнать размер скачиваемого репозитория?​** 1.**Как узнать размер скачиваемого репозитория?​**
 Моя программа позволяет в интерактивной форме узнать размеры репозитория и отдельных его частей. Моя программа позволяет в интерактивной форме узнать размеры репозитория и отдельных его частей.
-а) Выбираете нужные дистрибутивы(первая колонка). +  - Выбираете нужные дистрибутивы(первая колонка). 
-б) Выбираете компоненты распространения (вторая колонка). +  ​- ​Выбираете компоненты распространения (вторая колонка). 
-в) Выбираете архитектуру процессора (третья колонка) +  ​- ​Выбираете архитектуру процессора (третья колонка) 
-г)Повторяете операцию (а,б,в) для каждого релиза,​ который вам нужен (на момент публикации этого сообщения актуальной была Oneiric).+Повторяете операцию (а,б,в) для каждого релиза,​ который вам нужен (на момент публикации этого сообщения актуальной была Oneiric).
 Жмёте "​Анализ"​. Прога изучает все вкладки и по каждой выдаёт суммарный размер репозитория. И в конце выдаёт размер всего-всего,​ что вы выбрали вообще. Жмёте "​Анализ"​. Прога изучает все вкладки и по каждой выдаёт суммарный размер репозитория. И в конце выдаёт размер всего-всего,​ что вы выбрали вообще.
 Программа не создаёт никаких временных файлов в процессе "​Анализа",​ поэтому считается полностью Portable. (можно даже с CD запускать) Программа не создаёт никаких временных файлов в процессе "​Анализа",​ поэтому считается полностью Portable. (можно даже с CD запускать)
Строка 44: Строка 46:
 2. **Как скачать Ubuntu репозиторий?​** 2. **Как скачать Ubuntu репозиторий?​**
 Данная программа может скачать ubuntu репозиторий с опциональным выбором его частей. Данная программа может скачать ubuntu репозиторий с опциональным выбором его частей.
-а) Выбираете нужные дистрибутивы(первая колонка). +  - Выбираете нужные дистрибутивы(первая колонка). 
-б) Выбираете компоненты распространения (вторая колонка). +  ​- ​Выбираете компоненты распространения (вторая колонка). 
-в) Выбираете архитектуру процессора (третья колонка)+  ​- ​Выбираете архитектуру процессора (третья колонка)
 г)Повторяете операцию (а,б,в) для каждого релиза,​ который вам нужен (Dapper в репозитории Ubuntu.com более не хранится). г)Повторяете операцию (а,б,в) для каждого релиза,​ который вам нужен (Dapper в репозитории Ubuntu.com более не хранится).
 Жмёте кнопку скачивания. Программа скачивает пакеты связанные связанные с выбранными настройками. Жмёте кнопку скачивания. Программа скачивает пакеты связанные связанные с выбранными настройками.
Строка 53: Строка 55:
 3. **Как удалить устаревшие пакеты из скачанного репозитория?​** 3. **Как удалить устаревшие пакеты из скачанного репозитория?​**
 Такой вопрос часто возникает когда вы несколько раз обновили репозиторий с помощью другой программы,​ но она забыла удалить устаревшие пакеты. А по причине огромного размера репозитория сделать это вручную очень-очень долго. Такой вопрос часто возникает когда вы несколько раз обновили репозиторий с помощью другой программы,​ но она забыла удалить устаревшие пакеты. А по причине огромного размера репозитория сделать это вручную очень-очень долго.
-а) Нажать кнопку "​Обзор"​ и выбрать корневую папку репозитория. (в ней должны быть папки "//​dists//"​ и "//​pool//"​) +  - Нажать кнопку "​Обзор"​ и выбрать корневую папку репозитория. (в ней должны быть папки "//​dists//"​ и "//​pool//"​) 
-б) Нажать кнопку "​Удалить старые пакеты"​. Дождаться окончания сканирования пакетов в репозитории (окно может зависнуть,​ потому что ещё не успел распаралелить процессы),​ и дождаться окончания сканирования пакетов в папке "​pool"​ (Процесс ещё более долгий... ​ :( ) +  ​- ​Нажать кнопку "​Удалить старые пакеты"​. Дождаться окончания сканирования пакетов в репозитории (окно может зависнуть,​ потому что ещё не успел распаралелить процессы),​ и дождаться окончания сканирования пакетов в папке "​pool"​ (Процесс ещё более долгий... ​ :( ) 
-в) Откроется окошко о результатах предварительного сканирования. Согласившись с вопросом о начале Удаления,​ ждём окончания работы программы.+  ​- ​Откроется окошко о результатах предварительного сканирования. Согласившись с вопросом о начале Удаления,​ ждём окончания работы программы.
 Совет: Если в pool'e файлов меньше,​ чем официально должно быть, значит репозиторий не полный. Если наоборот - много больше,​ то либо репозиторий перегружен старыми версиями,​ либо стоит подумать,​ жать ли кнопку "​Да"​. Потому что вся эта разница будет наверняка удалена. Совет: Если в pool'e файлов меньше,​ чем официально должно быть, значит репозиторий не полный. Если наоборот - много больше,​ то либо репозиторий перегружен старыми версиями,​ либо стоит подумать,​ жать ли кнопку "​Да"​. Потому что вся эта разница будет наверняка удалена.
 Для пытливых умов скажу алгоритм работы. Потому что возможно функция удаления старых пакетов Вас не устроит и удалит что-то лишнее из репозитория. Итак: Для пытливых умов скажу алгоритм работы. Потому что возможно функция удаления старых пакетов Вас не устроит и удалит что-то лишнее из репозитория. Итак:
-I) Создаётся список всех файлов в папке pool. +  - Создаётся список всех файлов в папке pool. 
-II) Находятся все Packages.gz в файле Release в корне репозитория и из каждого архива вынимаются все ссылки на файлы. +  ​- ​Находятся все Packages.gz в файле Release в корне репозитория и из каждого архива вынимаются все ссылки на файлы. 
-III) Потом для каждого файла из первого списка ищется соответствие во втором списке. Если находится,​ то файл не трогается. Если не находится,​ то файл физически удаляется.+  ​- ​Потом для каждого файла из первого списка ищется соответствие во втором списке. Если находится,​ то файл не трогается. Если не находится,​ то файл физически удаляется.
 Данная функция программы тоже полностью Portable. Данная функция программы тоже полностью Portable.
  
Строка 70: Строка 72:
  
 Скачать последнюю версию Скачать последнюю версию
-[[http://​mozgoed-mgoy.narod.ru/​ubuntu/​ubuntu-repository.zip]]+[[http://​mozgoed-mgoy.narod.ru/​ubuntu-repository/​ubuntu-repository.zip]]
 ===== Создание "​доверенного"​ репозитория ===== ===== Создание "​доверенного"​ репозитория =====
  
Строка 80: Строка 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) в других версиях некоторые шаги могут не понадобиться или наоборот - потребоваться что-то ещё.
Строка 101: Строка 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 для копирования пакетов по дискам.
  
 Любым текстовым редактором. Вот его содержимое,​ которое необходимо туда скопировать:​ Любым текстовым редактором. Вот его содержимое,​ которое необходимо туда скопировать:​
Строка 300: Строка 321:
  
  
-**5.** Распихиваем пакеты по дискам вышесозданным скриптом:​+**6.** Распихиваем пакеты по дискам вышесозданным скриптом:​
  
 <​code>​$ sudo ruby debcopy ubuntu/ ubuntu-dvd/​ubuntu0 <​code>​$ sudo ruby debcopy ubuntu/ ubuntu-dvd/​ubuntu0
Строка 308: Строка 329:
  
  
-**6.** Создаём идентификаторы дисков чтобы apt(synaptic) не ругался:​+**7.** Создаём идентификаторы дисков чтобы apt(synaptic) не ругался:​
  
 <​code>​mkdir ubuntu-dvd/​ubuntu0/​.disk <​code>​mkdir ubuntu-dvd/​ubuntu0/​.disk
Строка 324: Строка 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
Строка 404: Строка 425:
 https://​help.ubuntu.com/​community/​Repositories/​Personal https://​help.ubuntu.com/​community/​Repositories/​Personal
  
-[[http://​xand.net.ru/​tag/​zerkalo/​|Варианты создания зеркала репозитория]] +{{tag> HOWTO FIXME Apt Администрирование Server Linux_на_предприятии}}
- +
-{{tag> HOWTO FIXME Администрирование Server Linux_на_предприятии}}+