Репозиторий с 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