Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: [HOWTO] Различные способы создания локального репозитория  (Прочитано 79652 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Alexey-S

  • Активист
  • *
  • Сообщений: 296
    • Просмотр профиля
Re: Сетевой репозиторий.
« Ответ #75 : 21 Мая 2009, 19:38:10 »
Интересно, а почему автор не захотел использовать apt-proxy?
Я его установил для обновления кучи своих виртуальным машин. Там и 8.04, и 8.10, и в разных вариациях - x32 и x64.
Никаких проблем с настройкой и удалением старых пакетов.

Оффлайн MadKox

  • Активист
  • *
  • Сообщений: 441
  • =)
    • Просмотр профиля
    • Моя страница на Launchpad
Re: Сетевой репозиторий.
« Ответ #76 : 22 Мая 2009, 00:48:20 »
Потому не захотел, что не знал  :2funny: Изначально на форуме нашел инфу по debmirror... и не стал искать что-то другое - меня все вполне устраивает...
Homo homini admini est...

Оффлайн Nesmit

  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
Re: Сетевой репозиторий.
« Ответ #77 : 22 Мая 2009, 10:07:56 »
Интересно, а почему автор не захотел использовать apt-proxy?
Я его установил для обновления кучи своих виртуальным машин. Там и 8.04, и 8.10, и в разных вариациях - x32 и x64.
Никаких проблем с настройкой и удалением старых пакетов.
можно посмотреть конфиг?

Оффлайн Alexey-S

  • Активист
  • *
  • Сообщений: 296
    • Просмотр профиля
Re: Сетевой репозиторий.
« Ответ #78 : 23 Мая 2009, 08:45:21 »
Увы, файл настроек дать не могу. Сейчас в отпуске.
Самая главная проблема - держать статический IP адрес машины с установленным apt-proxy.
В настройках надо прописывать IP адрес, а не доменное имя машины. Авторы подумали, а вдруг у вас несколько сетевых адресов. Вот и зашились на адрес.
Не забыть указать порт, например 80.
Далее, на клиенте меняем все доменные имена серверов на имя машины с apt-proxy. Если порт отличается от 80, надо указать этот порт.
Далее,в настройках apt-proxy можно прописать, обращение к репозитариям.
Работает это примерно так:
* Клиентская машина обращается к репозитарию apt-proxy, а тот, в свою очередь лезет на стандартный сайт за проверками новых версий ПО.
* Если обновления есть и пользователь хочет их поставить, тянет в своё хранилище и сразу же отдает клиентской машине.
* Второй и последующие клиенты получают данные из внутреннего хранилища.

Оффлайн Nesmit

  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
Re: Сетевой репозиторий.
« Ответ #79 : 23 Мая 2009, 13:32:19 »
На сколько я понял, для этого еще нужно прописать те самые репозитории к которым будут обращаться пользователи.

Оффлайн Alexey-S

  • Активист
  • *
  • Сообщений: 296
    • Просмотр профиля
Re: Сетевой репозиторий.
« Ответ #80 : 23 Мая 2009, 22:01:09 »
На сколько я понял, для этого еще нужно прописать те самые репозитории к которым будут обращаться пользователи.
[/quote
Правильно думаете.
Количество описаний сайтов гораздо меньше, чем в стандартном sources.list.
Любой поисковый сервер может предложить вам много статей по использованию этой системы.

Оффлайн MadKox

  • Активист
  • *
  • Сообщений: 441
  • =)
    • Просмотр профиля
    • Моя страница на Launchpad
Re: Сетевой репозиторий.
« Ответ #81 : 11 Июня 2009, 13:22:27 »
Пришла в голову мысль:

Можно ли как нибудь сравнить репы на компьютере где установлен debmirror  и на переносном харде, чтоб не переписывать каждый раз такой обьем а просто заменить обновленные пакеты или лучше того чтоб переписать обновленные пакеты на флэшку  и добавить на локальный репозиторий.

Тот же debmirror я думаю может это сделать. По аналогии с выкачиванием репозитория можно написать скрипт по "сливанию" репозитория на переносной хард. Т.е. он будет "качать" оттуда, куда скачал с инета, а писать на хард. Вот только я думаю что проще (да и по времени быстрее) будет перекинуть весь реп целиком =)
Homo homini admini est...

Оффлайн netum

  • Любитель
  • *
  • Сообщений: 82
    • Просмотр профиля
Re: Сетевой репозиторий.
« Ответ #82 : 16 Сентября 2009, 08:06:47 »
Дабы не создавать новую тему, спрошу тут. Есть скрипт для создания репозитория, в нём среди прочего есть строка: debmirror --host=archive.infralinux.org/infralinux --root=/ --nosource --passive --method=http --ignore-release-gpg --progress --debug --dist=jaunty-updates --section=main /mnt/repo.Так вот до какого-то времени всё работало, но после выхода ОО3.1.1 от инфры, не обнаружил такового в локальной репе. После разборов полёта пришёл к следующему: в логе работы дебмиррора вижу http://archive.infralinux.org/infralinux///dists/jaunty-updates/Release => [0%] Getting: dists/jaunty-updates/Release... 200 OKВ консоли делаю wget archive.infralinux.org/infralinux///dists/jaunty-updates/Release получаю файл Release размером 8 867. Обратил внимание на "тройной слеш" в сцылке, убрал один слеш и сделал wget archive.infralinux.org/infralinux//dists/jaunty-updates/Release - получил файл Release размером 7 748. В итоге получается, что один лишний слеш решает проблему. НО как его убрать?
P.S.: проведя эксперименты с другими репозиториями разницы в размере файла Release  от кол-ва слешей не было. Т.е. проблема только у репы инфры. В ФФ при открытии сцылки одинаковый файл, проверил под оффтопиком в качалке ДМ, получить файл "релеаз" по двум сцылкам с разным кол-ом слешей. В итоге получаю результат, как с вгетом, разный "релеаз".  :'(
« Последнее редактирование: 16 Сентября 2009, 08:26:22 от netum »

Оффлайн svm

  • Активист
  • *
  • Сообщений: 372
    • Просмотр профиля
Re: Сетевой репозиторий.
« Ответ #83 : 16 Сентября 2009, 09:41:19 »
debmirror какой используется?
если взятый из 9.04, то пакет криво был собран.

Оффлайн netum

  • Любитель
  • *
  • Сообщений: 82
    • Просмотр профиля
Re: Сетевой репозиторий.
« Ответ #84 : 16 Сентября 2009, 10:02:21 »
О "кривости" дебмирора в 9.04 я знаю, в частности его работу с "бз2". И спользую патченый на эту тему дебмиррор, но проблема не в этом, проблма в кол-ве слешей (и\или самой репе инфры), которые дебмирор ставит в сцылку, на это кол-во слешей я давно ещё обратил внимание, но с другими репами такой беды не было.

Оффлайн surface

  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля

Я пытаюсь сделать локальный репозиторий для ubuntu 9.10. Попытался сделать как указано в начале этой ветки форума. И столкнулся  спроблемой. Не все пункты представленные здесь работают. Кое как разобрался с пунктами 1-6 а вот на седьмом споткнулся.
----------------------------------------------
7) Делаем аналогично предыдущему разу, только теперь перебираем все подпапки binary-<arch> и создаем аналогичные (со всей структурой) в MIRROR_PATH/dists

$ sudo for i in `find dists* -regex ^dists[0-9]+/.*/binary-[^\/]*$`; do mkdir -p `echo $i | sed -r ’s/dists[0-9]+/dists/’`; done
--------------------------------------

Я скопировал это в терминал и запустил. Мне выдает следующее
surface@TEST:~/repository/mirror$ sudo for i in `find dists* -regex ^dists[0-9]+/.*/binary-[^\/]*$`; do mkdir -p `echo $i | sed -r ’s/dists[0-9]+/dists/’`; done
bash: syntax error near unexpected token `do'

Так разобраться и не смог...

Оффлайн QWR

  • Новичок
  • *
  • Сообщений: 46
    • Просмотр профиля
После 5-ти лет в виндос окна стали тесноваты. Два дня назад поставил UBUNTU9.10_386 попытался создать на винте реп по ману,показан ниже....Репозитории в Ubuntu: Часть 1
   
 
 
   
   
 Репозитории в Ubuntu: Часть 1 - использование многодисковых срезов на CD/DVD

 

Имеем: срез репозитория *buntu на 6ти DVD. Самый простой вариант использования - вставляем диски по очереди в привод и в консоли выполняем команду:

$ sudo apt-cdrom add

После этого можно использовать ваш любимы менждер пакетов - при установке новых пакетов сначала они будут искаться на DVD, а потом уже в интернет-репозиториях.

Допустим кому-то лень постоянно вставлять диски с дистрибами. Например, привод один а хочеться музыку слушать или места просто много на винте. Можно создать локальный репозиторий. Единственный минус такого репозитория - в нем не будет обновлений. Но если прописать такой репозиторий в самом верху /etc/apt/sources.list, то менеджер пакетов будет сначала искать в локальном репозитории а потом уже во всех остальных.

Итак, приступим:

1) все диски содержат 2 папки: dists - содержит файлы описания репозитория и пакетов, pool - сами пакеты структурированно разложенные по подпапкам именованным по алфавиту.

2) создадим папку /path/to/our/repository/mirror (далее будем называть ее MIRROR_PATH)

3) создадим в MIRROR_PATH подпапки по количеству дисков (в нашем случае 6): dists1, dists2, … dists6

4) создадим в MIRROR_PATH подпапку pool

5) далее необходимо скопировать содержимое дисков: содержимое папок dists в соответсвующие папки dists1, dists2, … dists3, а содержимое папкок pool в папку pool (все в одну кучу)

Ну можно сказать что репозиторий почти готов  остается совсем чуть-чуть. Идея заключается вот в чем - каждый диск, по сути, есть отдельный репозиторий.

Немного о структуре репозитория. Каждый репозиторий (как уже было сказано выше) состоит из 2х папок - dists и pool.

Папка dists cодержит в себе описание репозиториев и имеет структуру:

dists/<repository>/<section>/binary-<арch>/Packages.gz

<repository> - название репозитория, обычно называют по имени дистрибутива (gutsy, fiesty, etch,…)

<section> - раздел репозитория (main, restricted, universe, multiverse)

<arch> - архитектура (i386, amd64, …)

Packages.gz - файл с описаниями пакетов репозитория, обычный текстовый файл в котором описания пакетов разделяются пустой строкой.

Папка pool содержит файлы пакетов репозитори, ее структура такова:

pool/<section>/<group>/…/<subgroup>/<package.deb>

<group>, <subgroup> - папки для группировки пакетов

<package.deb> - пакет

Таким образом мы имеем - папки dists с одинаковым содержимым, которое надо объединить. Приступим:

1) Открываем консоль

2) Создаем папку, где будет храниться наш репозиторий и переходим в нее

$ sudo mkdir /path/to/our/repository/mirror && cd /path/to/our/repository/mirror

3) Создаем папки для описаний репозиториев на дисках (seq 1 6 - по количеству дисков с 1 по 6-ой)

$ sudo for i in`seq 1 6`; do mkdir dists$i; done

4) Создаем папку для пакетов репозитория

$ sudo mkdir pool

5) Копируем содержимое дисков - для этог вставляем диски по очереди и для каждого выполняем 2 команды

$ sudo cp /media/cdrom/dists/* dists<номер диска>/

$ sudo cp /media/cdrom/pool/* pool/

6) Перебираем все папки dists1 и их подпапки и распаковываем файлы Packages.gz.

$ sudo find dists* -regex ^dists[0-9]+/.*/Packages.gz -exec gunzip {} \;

7) Делаем аналогично предыдущему разу, только теперь перебираем все подпапки binary-<arch> и создаем аналогичные (со всей структурой) в MIRROR_PATH/dists

$ sudo for i in `find dists* -regex ^dists[0-9]+/.*/binary-[^\/]*$`; do mkdir -p `echo $i | sed -r ’s/dists[0-9]+/dists/’`; done

8 ) Объединяем все файлы Packages с разных дисков которые храняться в одноменных папках, например, на дисках 1 и 2 есть файлы:

- dists1/gutsy/main/binary-i386/Packages и

- dists2/gutsy/main/binary-i386/Packages,

тогда поочередно необходимо выполнить следующие команды:

- cat dists1/gutsy/main/binary-i386/Packages >> dists/gutsy/main/binary-i386/Packages и

- cat dists2/gutsy/main/binary-i386/Packages >> dists/gutsy/main/binary-i386/Packages

$ sudo for i in `find dists* -regex ^dists[0-9]+/.*/Packages`; do cat $i >> `echo $i | sed -r ’s/dists[0-9]+/dists/’`; done

9) Теперь остается только упаковать полученные файлы и удалить папки dists1,2,3,4,5,6. (Кстати, упаковывать файлы Packages вовсе не обязательно, но допустимо, да и место экономится, по моему опыту, примерно 75%)

$ sudo find dists* -regex ^dists/.*/Packages -exec gzip {} \;

$ sudo find dists* -regex ^dists[0-9]+$ -exec rm -rf {} \;

Вот и все теперь можно смело прописывать в /etc/apt/sources.list новый репозиторий. Для локального доступа строка будет выглядеть так:

deb file:///path/to/our/repository/mirror gutsy main restricted multiverse universe

PS. Если вы используете срез от ОСМаркет на 6-ти дисках, то вам необходимо добавить так же репозитории gusty-backports, gutsy-proposed, gutsy-updates и gutsy-security.

 

Статья с сайта whylinux.ru - информационный проект с открытым исходным кодом
 
 
 Про......ся с этим сутки, понял что к Ubuntu это вряд ли имеет отношение, просто тупо примонтировал 6DVD к файловй системе и обновился оттуда. Пожалуста если кому попадалось такой фак под Ubuntu, как сделать cделать сжатый зип архив дайте линк. Просьба в гугл не отправлять, интернет 7 килобит хлопотно это очень!!! Всего доброго

Оффлайн Oberst

  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Доброго времени суток!
Тоже вот столкнулся с необходимостью иметь локальный репозиторий, так как имеется 11 машин в локалке. Сейчас только на одной стоит ubuntu 9.04. На остальные планируется установить аналогичную систему. Собственно проблема в том, что имеется доступ в интернет со скоростью 128Kbit/s, поэтому каждую машину обновлять из интернета проблематично. Пробовал aptoncd, но он при сканировании пакетов на 86% выдаёт ошибку "failed to fork"; переустановка не помогла. Посему решил создать локальный репозиторий, чтобы можно было обновляться и черезь локалку. В данной теме быстренько просмотрел вышеприведённые способы, но, увы остались вопросы:
1. Так как выкачивать полный репозиторий из инета (около 30ГБ) для меня просто невыполнимо, то хотелось бы узнать, а возможно ли просто добавить в локальный репозиторий только те пакеты, что уже установлены на машине, ну и собственно как это сделать.
2. Как быть со вновь закачанными пакетами? Их нужно будет вручную переносить, или есть возможность, чтобы они автоматически закачивались и в локальный репозиторий?
3. Как собственно настроить всё это, чтобы оно работало, ну в смысле, чтобы данный репозиторий был доступен и для других машин в сетке?
Да, большая просьба объяснять как для детсадовца, потому как консольные команды только осваиваем, а о всяких скриптах имею только самое смутное представление...
Большое спасибо! :)

Оффлайн RaY

  • Новичок
  • *
  • Сообщений: 34
    • Просмотр профиля
Laptop Acer Aspire 5520G-6A1G16Mi /AMD Turion™ 64 X2 Mobile TK-55
GeForce 8400M G / Mem 2 GB / Hitachi HTS542516K9SA00 (SATA)
Wi-Fi (802.11а/b/g)Atheros AR5007EG / BT /Card Reader

Оффлайн Oberst

  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Спасибо :) Только жаль, что на басурманском статьи. Может на русском что есть?

 

Страница сгенерирована за 0.021 секунд. Запросов: 21.