LINUX.ORG.RU

debian - сделать снапшот(?) репозитария


0

2

хочу вот что сделать: есть KDE 4.7.4 в experimental, надо выкачать оттуда все пакеты (все пакеты, которые установились бы командой aptitude --install-recommends -t experimental kde-full), и создать из всего этого локальный (или не очень) репозиторий, чтобы можно было потом без проблем подключить этот репозиторий (я его куда-нибудь на VPS положу) и в любое время поставить Кеды 4.7.4
как такое красивее всего организовать? (кроме собственно aptitude install kde-full && mv /var/cache/apt/archives/*deb траляля)

aptitude --install-recommends -t experimental kde-full

aptitude -d --install-recommends -t experimental kde-full

(только скачать в кэш)

и создать из всего этого локальный (или не очень) репозиторий

Если только один раз, то хватит apt-move. Лично я использую reprepro, но он требует знания матчасти по устройству репов и собственно использованию самой программы.

GotF ★★★★★
()

Для выкачивания всего репозитория или указанных разделов, main, contrib, non-free ... есть debmirror и apt-proxy.

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

Затем вы сможете сделать доступным ваш репозиторий по http и ftp и прописать в sources.list

Так же есть отдельная команда для генерации Packages.gz для существующих пакетов, «погуглите».

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Так же есть отдельная команда для генерации Packages.gz для существующих пакетов

dpkg-scanpackages/dpkg-scansources. Самый простой способ, но пригодный лишь для небольших наборов пакетов и непригодный для дальнейшего сопровождения репозиториев.

сделать доступным ваш репозиторий по http и ftp

Для локальных есть file:///

GotF ★★★★★
()
Ответ на: комментарий от GotF

dpkg-scanpackages/dpkg-scansources. Самый простой способ, но пригодный лишь для небольших наборов пакетов и непригодный для дальнейшего сопровождения репозиториев ...

Ну насчёт непригодный, смотря как это понимать, я, когда использовал Debian, уже года 3 назад, создавал локальную копию репозитория, испоьлзовал debmirror, но чтобы не выкачивать все пакеты заново копировал их с установочных dvd дисков, но на каждом диске были свои Packages.gz и Packages.bz2, а для того, что бы debmirror не выкачивал весь репозиторий заново нужно было создать эти файлы. Возможно создавал как раз с помощью dpkg-scanpackages, точно не помню, но было что-то вроде 'scanpackages debian/pool/<main, contrib ...> | gzip > debian/dists/<release>/<main, contrib ...>/binary-<arch>/Packages.gz'.

Ну а дальше запуск debmirror.

debmirror /mnt/sdd1/mirror/debian -p -v --nosource -h ftp.debian.org -e http -d lenny -s main,contrib,non-free -a i386 --ignore-release-gpg

Затем на копию репозитория делалась ссылка на /var/www/localhost/htdocs и можно было ставить Debian на машинах сети.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Ну насчёт непригодный, смотря как это понимать

Так и понимать :) Годится для «один раз сделать и ничего не менять». Мне же нужны: удобное добавление/удаление пакетов, в том числе по заданным критериям, создание всяких Release и Contents-$ARCH.gz, подписывание своим ключом. Тут уже приходится использовать более продвинутые инструменты, такие как reprepro. Сейчас используется следующий зоопарк:

1) Полное зеркало, обновляемое с каждым пойнт-релиз;
2) Репозиторий на основе кэша дальнейших обновлений;
3) Аналогично для бэкпортов;
4) Репозиторий для локально созданных пакетов.

GotF ★★★★★
()
Ответ на: комментарий от GotF

Я и предложил использовать один раз команду для генерации Packages.gz, т.к. ТС хочет создать репозиторий, в котором содержались бы только пакеты с kde-4.7.4, как следствие раз это репозиторий, а не копия /var/cache/atp/archives нужен Packages.gz и как следствие перечисленного выше в нём должны быть только записи о пакетах содержащихся в репозитории, а именно только пакетов с kde и зависимостями, что бы не было ложных записей. Для этого команда:

dpkg-scanpackages debian/pool/<main, contrib ...> | gzip > debian/dists/<release>/<main, contrib ...>/binary-<arch>/Packages.gz

подходит, дальше ТС может подключать свой репозиторий и спокойно ставить пакеты с kde даже не подключая официальный репозиторий и у него так же не будет проблем с установкой пакетов из других репозиториев, т.к. в Packages.gz и *.bz есть записи только о пакетах из его репозитория.

Мне же нужны: удобное добавление/удаление пакетов ...

Это нужно ВАМ, а не ТС.

создание всяких Release и Contents-$ARCH.gz, подписывание своим ключом. Тут уже приходится использовать более продвинутые инструменты, такие как reprepro.

Аналогично предыдущему, но для целей ТС reprepo скорее всего не столько нужен, хотя это не суть.

Я не претендую на полную компетентность, т.к. сейчас уже debian не использую и то что я предложил возможно уже устарело, но думаю всё ещё используется. И опять же этого как раз хватает для решения задачи ТС.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

дальше ТС может подключать свой репозиторий и спокойно ставить пакеты с kde даже не подключая официальный репозиторий и у него так же не будет проблем с установкой пакетов из других репозиториев

Тут не всё так просто. Если на момент установки будет подключён репозиторий с более новыми версиями, придётся ставить с явным указанием версий или suite (здесь уже нужен файл Release/InRelease), а потом блокировать дальнейшее обновление пакетов. Но это уже не связано с темой, да.

Это нужно ВАМ, а не ТС.

Безусловно, поэтому ТС я предложил apt-move, который всё сделает одной командой, а полученный репозиторий будет соответствовать стандартам (мне кажется, это плюс, особенно, если в это хозяйство нужно будет потом внести какие-то изменения).

GotF ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.