Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > *NIX системы: Общие вопросы > Перепутались репозитарии Debian


Автор: Bepeck 4.1.2008, 19:54
Не скажу какими правдами и неправдами, но появился у меня на жестком диске срез Dedian. А это в нашем, забытом инетом городке большое событие. Так вот. Срез для AMD64 и i386 архитектур занял 113 гектар. Да и плюс ко всему добрый друг залил туда кроме Etch и Lenny заодно Sid и Sarge, которые мне в принципе не нужны. И вот начались мучения: место ушло много, знакомым-друзьям тоже отдавать всю свалку нет никакого резона. Поэтому сделал хитрый ход конём (не пинайте за извращённость мышления):
1. Поднял Апач
2. Сделал папку с репозитарием localhost
3. Дал добрую команду:
Цитата

debmirror /home/veresk/Debian --host=localhost/apache2-default --root=/ --method=http --progress --dist=etch,lenny --section=main,contrib,non-free --arch=i386,amd64 --ignore-release-gpg > /home/veresk/mirror.log


Комп задумался не слабо, но через пару часов слил мне в папку /home/veresk/Debian нужные куски репозитория весом ~65 гектар. Осталась собственно мелочь: сделать правильные Packages-файлы (они почему-то не были созданы сами). Ну этим-то я нагрузил пару скриптов:
Первый install
Цитата

#/bin/bash
#MAKE INSTALL DIREKTORIES

install -d dists/etch/main/binary-i386
install -d dists/etch/main/binary-amd64
install -d dists/etch/main/source

install -d dists/etch/contrib/binary-i386
install -d dists/etch/contrib/binary-amd64
install -d dists/etch/contrib/source

install -d dists/etch/non-free/binary-i386
install -d dists/etch/non-free/binary-amd64
install -d dists/etch/non-free/source

install -d dists/lenny/main/binary-i386
install -d dists/lenny/main/binary-amd64
install -d dists/lenny/main/source

install -d dists/lenny/contrib/binary-i386
install -d dists/lenny/contrib/binary-amd64
install -d dists/lenny/contrib/source

install -d dists/lenny/non-free/binary-i386
install -d dists/lenny/non-free/binary-amd64
install -d dists/lenny/non-free/source


И второй собствено собирать должен и архивировать:
Цитата

#/bin/bash

#MAKE INDEX FILES
apt-ftparchive packages pool/contrib/ > dists/etch/contrib/binary-i386/Packages
apt-ftparchive packages pool/contrib/ > dists/etch/contrib/binary-amd64/Packages
apt-ftparchive packages pool/contrib/ > dists/etch/contrib/source/Packages

apt-ftparchive packages pool/main/ > dists/etch/main/binary-i386/Packages
apt-ftparchive packages pool/main/ > dists/etch/main/binary-amd64/Packages
apt-ftparchive packages pool/main/ > dists/etch/main/source/Packages

apt-ftparchive packages pool/non-free/ > dists/etch/non-free/binary-i386/Packages
apt-ftparchive packages pool/non-free/ > dists/etch/non-free/binary-amd64/Packages
apt-ftparchive packages pool/non-free/ > dists/etch/non-free/source/Packages

apt-ftparchive packages pool/contrib/ > dists/lenny/contrib/binary-i386/Packages
apt-ftparchive packages pool/contrib/ > dists/lenny/contrib/binary-amd64/Packages
apt-ftparchive packages pool/contrib/ > dists/lenny/contrib/source/Packages

apt-ftparchive packages pool/main/ > dists/lenny/main/binary-i386/Packages
apt-ftparchive packages pool/main/ > dists/lenny/main/binary-amd64/Packages
apt-ftparchive packages pool/main/ > dists/lenny/main/source/Packages

apt-ftparchive packages pool/non-free/ > dists/lenny/non-free/binary-i386/Packages
apt-ftparchive packages pool/non-free/ > dists/lenny/non-free/binary-amd64/Packages
apt-ftparchive packages pool/non-free/ > dists/lenny/non-free/source/Packages

#compress
gzip > dists/etch/contrib/binary-i386/Packages.gz < dists/etch/contrib/binary-i386/Packages
gzip > dists/etch/contrib/binary-amd64/Packages.gz < dists/etch/contrib/binary-amd64/Packages
gzip > dists/etch/contrib/source/Packages.gz < dists/etch/contrib/source/Packages


gzip > dists/etch/main/binary-i386/Packages.gz < dists/etch/main/binary-i386/Packages
gzip > dists/etch/main/binary-amd64/Packages.gz < dists/etch/main/binary-amd64/Packages
gzip > dists/etch/main/source/Packages.gz < dists/etch/main/source/Packages

gzip > dists/etch/non-free/binary-i386/Packages.gz < dists/etch/non-free/binary-i386/Packages
gzip > dists/etch/non-free/binary-amd64/Packages.gz < dists/etch/non-free/binary-amd64/Packages
gzip > dists/etch/non-free/source/Packages.gz < dists/etch/non-free/source/Packages


gzip > dists/lenny/contrib/binary-i386/Packages.gz < dists/lenny/contrib/binary-i386/Packages
gzip > dists/lenny/contrib/binary-amd64/Packages.gz < dists/lenny/contrib/binary-amd64/Packages
gzip > dists/lenny/contrib/source/Packages.gz < dists/lenny/contrib/source/Packages


gzip > dists/lenny/main/binary-i386/Packages.gz < dists/lenny/main/binary-i386/Packages
gzip > dists/lenny/main/binary-amd64/Packages.gz < dists/lenny/main/binary-amd64/Packages
gzip > dists/lenny/main/source/Packages.gz < dists/lenny/main/source/Packages

gzip > dists/lenny/non-free/binary-i386/Packages.gz < dists/lenny/non-free/binary-i386/Packages
gzip > dists/lenny/non-free/binary-amd64/Packages.gz < dists/lenny/non-free/binary-amd64/Packages
gzip > dists/lenny/non-free/source/Packages.gz < dists/lenny/non-free/source/Packages


И вроде бы оставалось только добавить строку deb file:/home/veresk/Arhive/Debian/ etch contrib main non-free в соурс-лист и зажить счастливой жизнью. Репозитарий Lenny я оставил для на потом, попробовать на соседней машине. Но тут-то как раз меня и ждал облом великий: при попытке первой же установки из свежеиспечёного репозитария у меня обновилась практически вся система. А этого быть не должно, ибо ставил я ее из исходного "полного" репозитария.
В общем и целом, я так понял, что скриптик собрал только новые пакеты (иначе говоря Lenny), а нужный мне Etch проигнорировал как устаревший. И распихал Packages-файлы одинаковые и в Lenny и в Etch.
В тяжких раздумьях встретил Новый год. Да еще каждый раз стал выпадать запрос про неподписанные пакеты при использовании APT-GET INSTALL. Что и где я не так накурил манов? Как теперь мне это всё поправить? Самое плохое, что исходный репозитарий я всё-таки грохнул, не подумав... :-(

ЗЫ. Структура зеркала у меня как и на официальном сайте Debian: директория pool разбита на contrib, main, non-free а потом уже в поддиректориях пакеты, все кучей: etch, lenny, amd64, i386. Ну а Packages-файлы в соответствующих дирах папки dists

Автор: ZeeLax 6.1.2008, 08:08
дайте ка сюда
Код

cat /etc/debian-version
cat /etc/apt/sources.list

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)