Michal Čihař - Archive for May 16, 2005

Jak na vlastní repository

V rámci dělání pořádku na webserveru jsem se rozhodl, že je na čase nějak zpřehlednit balíčky pro Debian, které se tam na různých místech nacházely. Takže jsem se začal poohlížet po nástrojích, které by mi usnadnily udržování repository. Asi nejjednodušší řešení je použít apt-ftparchive, tak hurá na to.

UPDATE : English version available at my web .

Strukturu jsem zvolil podobnou jako mají oficiální repository - balíčky jsou v adresáři pool, seznamy pro jednotlivé distribuce v dist. Tomu odpovídá konfigurace apt-ftparchive:

 Dir {
   ArchiveDir "/home/debbuild/packages";
   CacheDir "/home/debbuild/ftparchive/";
};

Default {
   Packages::Compress ". gzip bzip2";
   Sources::Compress ". gzip bzip2";
   Contents::Compress ". gzip bzip2";
};

TreeDefault {
   BinCacheDB "packages-$(SECTION)-$(ARCH).db";
   Directory "pool/$(SECTION)";
   Packages "$(DIST)/$(SECTION)/binary-$(ARCH)/Packages";
   SrcDirectory "pool/$(SECTION)";
   Sources "$(DIST)/$(SECTION)/source/Sources";
   Contents "$(DIST)/Contents-$(ARCH)";
};

Tree "dists/unstable" {
    Sections "mc gammu slovnik";
    Architectures "i386 source";
}

Teď již můžeme vygenerovat seznamy balíčků a jejich obsahy (pro vyhledávání pomocí apt-file):

 apt-ftparchive generate konfigurační_soubor

Protože archív chci mít podepsaný, tak nezbývá než ještě vytvořit soubor Release, který budeme podepisovat. K tomu nám opět pomůže apt-ftparchive. Je vhodné do tohoto souboru uvést některé informace o tom co distribuujeme, takže je zadáme do konfiguračního souboru:

 APT::FTPArchive::Release::Codename "sid";
APT::FTPArchive::Release::Origin "Michal Čihař";
APT::FTPArchive::Release::Components "mc slovnik gammu";
APT::FTPArchive::Release::Label "Unofficial packages";
APT::FTPArchive::Release::Architectures "i386 all";
APT::FTPArchive::Release::Suite "unstable";

A pak již jen vygenerovat Release, obsah tohoto souboru získáme pomocí příkazu:

 apt-ftparchive -c konfigurace_pro_release release /home/debbuild/packages/dists/unstable

Záverečným krokem je podepsat tento soubor, aby si uživatelé APT 0.6 a novějšího mohli ověřit původ balíčků:

  gpg --output Release.gpg -ba Release
 

Toť vše :-). Výsledek naleznete na debian.cihar.com