Репозиторий с apt-ftparchive
Заменяя reprepro на apt-ftparchive, в первую очередь хотелось сохранить имеющуюся структуру каталогов. Нижеприведенная конфигурация решает эту задачу, только каталог pool разделен на pool-lenny и pool-etch, поскольку так проще поддерживать.
Вот такая команда обновит список пакетов локального репозитория:
/etc/apt/apt-archive-mbg
А такая команда обновит репозиторий на основном сервере:
apt-archive-mbg-upload
Замечу, что секция non-free из локального репозитория будет скопирована в отдельный закрытый репозиторий.
Ниже приведены скрипты и конфиги, необходимые для решения указанной задачи.
apt-archive-mbg-upload
/etc/apt/apt-archive-mbg
/etc/apt/apt-ftparchive-public.conf
/etc/apt/apt-public-etch.conf
/etc/apt/apt-public-lenny.conf
Теперь можно держать в репозитории несколько версий каждого пакета, что часто бывает необходимо в процессе разработки.
Upd.
Выложил конфиги для управлениями моим репозиторием здесь же: http://mobigroup.ru/debian/ Скрипт apt-archive-mbg обновляет репозитории для всех требуемых релизов (запускать после добавления/удаления пакетов в репозиторий). Обновление инкрементальное, так что при большом количестве пакетов работает вполне шустро (моя рабочая машинка нынче - нетбук, так что я знаю толк в шустрости - мне его ресурсов хватает). На сервер пересылаю копию локального репозитория скриптом apt-archive-mbg-upload:
Вот такая команда обновит список пакетов локального репозитория:
/etc/apt/apt-archive-mbg
А такая команда обновит репозиторий на основном сервере:
apt-archive-mbg-upload
Замечу, что секция non-free из локального репозитория будет скопирована в отдельный закрытый репозиторий.
Ниже приведены скрипты и конфиги, необходимые для решения указанной задачи.
apt-archive-mbg-upload
#!/bin/dash /usr/bin/rdiff-backup --exclude '**/main' /mnt/work/apt-archive-mbg .../apt-archive-mbg /usr/bin/rdiff-backup --exclude '**/non-free' /mnt/work/apt-archive-mbg .../debian
/etc/apt/apt-archive-mbg
#!/bin/dash apt-ftparchive generate /etc/apt/apt-archive-mbg.conf cd /mnt/work/apt-archive-mbg/dists/etch apt-ftparchive -c /etc/apt/apt-mbg-etch.conf release . > Release rm -f Release.gpg gpg --output Release.gpg -ba Release cd /mnt/work/apt-archive-mbg/dists/lenny apt-ftparchive -c /etc/apt/apt-mbg-lenny.conf release . > Release rm -f Release.gpg gpg --output Release.gpg -ba Release
/etc/apt/apt-ftparchive-public.conf
Dir { ArchiveDir "/mnt/work/apt-public"; CacheDir "/mnt/work/apt-public"; }; Default { Packages::Compress ". gzip bzip2"; Sources::Compress ". gzip bzip2"; Contents::Compress ". gzip bzip2"; }; TreeDefault { BinCacheDB "packages-$(DIST)-$(SECTION)-$(ARCH).db"; Directory "pool-$(DIST)/$(SECTION)"; Packages "dists/$(DIST)/$(SECTION)/binary-$(ARCH)/Packages"; SrcDirectory "pool-$(DIST)/$(SECTION)"; Sources "dists/$(DIST)/$(SECTION)/source/Sources"; Contents "dists/$(DIST)/Contents-$(ARCH)"; }; Tree "etch" { Sections "main"; Architectures "i386 source"; } Tree "lenny" { Sections "main non-free"; Architectures "i386 source"; }
/etc/apt/apt-public-etch.conf
APT::FTPArchive::Release::Origin "MBG"; APT::FTPArchive::Release::Label "MBG public"; APT::FTPArchive::Release::Suite "oldstable"; APT::FTPArchive::Release::Codename "etch"; APT::FTPArchive::Release::Architectures "i386 source"; APT::FTPArchive::Release::Components "main"; APT::FTPArchive::Release::Description " MBG Public APT Repository";
/etc/apt/apt-public-lenny.conf
APT::FTPArchive::Release::Origin "MBG"; APT::FTPArchive::Release::Label "MBG public"; APT::FTPArchive::Release::Suite "stable"; APT::FTPArchive::Release::Codename "lenny"; APT::FTPArchive::Release::Architectures "i386 source"; APT::FTPArchive::Release::Components "main non-free"; APT::FTPArchive::Release::Description " MBG Public APT Repository";
Теперь можно держать в репозитории несколько версий каждого пакета, что часто бывает необходимо в процессе разработки.
Upd.
Выложил конфиги для управлениями моим репозиторием здесь же: http://mobigroup.ru/debian/ Скрипт apt-archive-mbg обновляет репозитории для всех требуемых релизов (запускать после добавления/удаления пакетов в репозиторий). Обновление инкрементальное, так что при большом количестве пакетов работает вполне шустро (моя рабочая машинка нынче - нетбук, так что я знаю толк в шустрости - мне его ресурсов хватает). На сервер пересылаю копию локального репозитория скриптом apt-archive-mbg-upload:
/usr/bin/rdiff-backup --exclude './apt-archive-mbg-upload' --exclude './*db' --exclude '**/non-free' . [путь на сервере к открытому репозиторию] /usr/bin/rdiff-backup --exclude './apt-archive-mbg-upload' --exclude './*db' --exclude '**/main' . [путь на сервере к закрытому репозиторию]Скрипт apt-archive-mbg-upload содержит пути на сервере, потому его не выкладываю.
Comments