Локальный репозитарий

Модератор: Модераторы разделов

Аватара пользователя
Snupt
Бывший модератор
Сообщения: 2062
Статус: No Place for RTFM Here…
ОС: Mac OS X

Локальный репозитарий

Сообщение Snupt »

Вобщем, есть система прошедшая кучу обновлений и, соответственно, нежелание выкачивать обновления из инета на другой машине. Читал доки на Wiki дистрибутива и форуме BBS. Решений так и не нашёл. В мане есть только создание локального репозитария используя собранные пакеты из портов. Моей же целью является, грубо говоря, сделать файл myrepo.db.tar.gz имея при этом всё необходимое в /var/cache/pacman/pkg и /var/lib/pacman. Пробовал банально ложить в архив содержимое /var/lib/pacman/local - результатов не дало. Кто сталкивался, подскажите.
Спасибо сказали:
Аватара пользователя
alastor
Сообщения: 844
Статус: ARCH'еноид
ОС: Arch Linux current

Re: Локальный репозитарий

Сообщение alastor »

Код: Выделить всё

If you have a directory with a lot of packages (current/extra/testing/selfbuild/etc) and you want to include them into one repository.

(I needed to rebuild install CD to put everything I need for a custom installation on a computer without internet connection). You can generate current.db.tar.gz from that directory by using a small script (not very elegant but works)

Пойдет??
Тогда здесь: http://wiki.archlinux.org/index.php/Custom...ABS_and_gensync
А еще можно обновлять по локалке: http://wiki.archlinux.org/index.php/Howto_...ia_Home_Network
Спасибо сказали:
Аватара пользователя
Snupt
Бывший модератор
Сообщения: 2062
Статус: No Place for RTFM Here…
ОС: Mac OS X

Re: Локальный репозитарий

Сообщение Snupt »

Код: Выделить всё

You can generate current.db.tar.gz from that directory by using a small script

Пытался использовать я скрипты с этого WiKi. Они не работают. А так как они написаны на пёрле и питоне разобраться в чём там дело не смог. gensync же используется когда есть PKGBUILD для пакетов. То есть собирал ты из портов кучу софта и вдруг возникла необходимость закинуть это всё на болванку в виде custom репозитария. И ещё, я уже говорил:
(CnupT @ Aug 14 2006, в 23:03) писал(а):Читал доки на Wiki дистрибутива и форуме BBS.

У меня же ситуация такая что есть только:
(CnupT @ Aug 14 2006, в 23:03) писал(а):/var/cache/pacman/pkg и /var/lib/pacman

Нужно сгенерировать *.db.tar.gz. И всё. Вопрос только в том как это сделать. Смотрел содержимое db файлов других репозитариев и ничего особенного там не видел. Просто архив папок, которые распаковываются в /var/lib/pacman. Почему же тогда не помогает архивирование /var/lib/pacman/local в файл *.db.tar.gz... не знаю.
Спасибо сказали:
Аватара пользователя
cheer
Сообщения: 729
Статус: Самовлюблённый сноб
ОС: archlinux i686-current

Re: Локальный репозитарий

Сообщение cheer »

Я использовал скрипт на Перле, всё работает. На двух машинах. А что пишет? Файл должен находиться в /tmp. Скрипт желательно положить так, чтобы он и директория с пакетами лежали в одной директории (надеюсь, понятно объяснил).
Спасибо сказали:
Аватара пользователя
cheer
Сообщения: 729
Статус: Самовлюблённый сноб
ОС: archlinux i686-current

Re: Локальный репозитарий

Сообщение cheer »

Кстати, имя файла должно совпадать с указанным в pacman.conf репозиторием. Может, в этом проблема?
Спасибо сказали:
Аватара пользователя
Snupt
Бывший модератор
Сообщения: 2062
Статус: No Place for RTFM Here…
ОС: Mac OS X

Re: Локальный репозитарий

Сообщение Snupt »

(cheer @ Aug 16 2006, в 13:32) писал(а):Кстати, имя файла должно совпадать с указанным в pacman.conf репозиторием.

Каким ещё репозитарием? Пакеты ставились со всех репозитариев. Пример: pacman -S _пакет_, качается пакет и летит в директорию /var/cache/pacman/pkg, инфа о пакете копируется из папки /var/lib/pacman/_имя_репозитария_ в /var/lib/pacman/local, затем пакет распаковывается, гробо говоря. Схема примерно такая. О каком име репозитария тогда Вы говорите?

Далее, пытаюсь сделать всё по Вашей схеме:
1.Создал скрипт с именем "local"
2.Копирую в директорию /tmp.
3.Копирую в директорию /tmp каталог с пакетами, находящийся в /var/cache/pacman/pkg.
4.Запускаю скрипт:

Код: Выделить всё

[cnupt@linux ~]$ ./local

Usage: create_pkgdb <DIR>

[cnupt@linux ~]$

Вывод. Судя по всему скрипт не знает что папка pkg это и есть датабаза которую надо генерировать. Вопрос - какие манипуляции надо делать в скрипте?
Спасибо сказали:
Аватара пользователя
cheer
Сообщения: 729
Статус: Самовлюблённый сноб
ОС: archlinux i686-current

Re: Локальный репозитарий

Сообщение cheer »

Так написано же

Код: Выделить всё

./local <DIR_NAME>
- так понятнее? В результате будет сгенерирован custom.db.tar.gz, а для установки пакетов в pacman.conf должна быть строчка типа такой:

Код: Выделить всё

[custom]
Server = file:///home/arch/packages

То есть в вашем примере надо запустить скрипт так (если скрипт и каталог pkg лежат в /tmp):

Код: Выделить всё

./local pkg
Потом можно перенести куда угодно весь локальный репозиторий, главное - скопировать в каталог с пакетами файл /tmp/pkgdb/custom.db.tar.gz и написать вышеуказанные строчки в pacman.conf
Спасибо сказали:
Аватара пользователя
Snupt
Бывший модератор
Сообщения: 2062
Статус: No Place for RTFM Here…
ОС: Mac OS X

Re: Локальный репозитарий

Сообщение Snupt »

(cheer @ Aug 17 2006, в 01:22) писал(а):./local <DIR_NAME>

Всё, до меня вот этот момент не доходил. Всё работает. Со всем сотальным я в силах сам разобраться. Спасибо за помощь.
Спасибо сказали: