¿Cómo generar el file `Release` en un repository de packages local?

Context

Con el repository de packages local, me refiero a un set de software y configuraciones en un server que permite almacenar un software y cualquier cliente para instalar este software mediante el command apt-get normal (suponiendo que el repository se haya agregado a sources.list)

Para la creación de un repository de packages local, seguí este tutorial , que consiste en:

  1. generar el .deb
  2. Almacene el file .deb sobre el server apache2
  3. Genera un file Package.gz

1- Para generar el .deb, se requieren los files de software, se genera una carpeta DEBIAN con metadatos y el siguiente command realiza el trabajo:

 dpkg-deb --build <software folder with DEBIAN> 

2- Me salteo esta parte como muy sin relación

3- Con el directory actual como la carpeta apache con .deb , llame al:

 dpkg-scanpackages debian /dev/null | gzip -9c > debian/Packages.gz 

El problema

Llamando a apt-get update sobre la máquina cliente, se queja con:

W: El repository ' http://example.com packages / Release' no tiene un file Release.

Este file no se encuentra en mi tienda local y parece un logging de sums de comprobación. Pero después de search en Internet, y dado mi poco conocimiento del tema, no pude encontrar cómo generarlo.

Nota: my sources.list tiene la siguiente línea:

 deb http://example.com packages/ 

La pregunta

¿Cómo generar el file de Release para un repository de packages local?

Related of "¿Cómo generar el file `Release` en un repository de packages local?"

Hay varias maneras de hacerlo; Yo uso apt-ftparchive .

  1. Cree un file aptftp.conf en la raíz de su repository:

     APT::FTPArchive::Release { Origin "Your origin"; Label "Your label"; Suite "unstable"; Codename "sid"; Architectures "amd64 i386 source"; Components "main"; Description "Your description"; }; 

    con los valores apropiados (cambie "Origen", "Etiqueta", "Descripción" al less, y ajuste "Arquitecturas" para que coincidan con los binarys que aloja).

  2. Cree un file aptgenerate.conf coincidente junto con:

     Dir::ArchiveDir "."; Dir::CacheDir "."; TreeDefault::Directory "pool/"; TreeDefault::SrcDirectory "pool/"; Default::Packages::Extensions ".deb"; Default::Packages::Compress ". gzip bzip2"; Default::Sources::Compress ". gzip bzip2"; Default::Contents::Compress "gzip bzip2"; BinDirectory "dists/unstable/main/binary-amd64" { Packages "dists/unstable/main/binary-amd64/Packages"; Contents "dists/unstable/Contents-amd64"; SrcPackages "dists/unstable/main/source/Sources"; }; BinDirectory "dists/unstable/main/binary-i386" { Packages "dists/unstable/main/binary-i386/Packages"; Contents "dists/unstable/Contents-i386"; SrcPackages "dists/unstable/main/source/Sources"; }; Tree "dists/unstable" { Sections "main"; # contrib non-free"; Architectures "amd64 i386 source"; }; 

    (eliminando i386 si no necesitas eso).

  3. En su repository, borre la database:

     rm -f packages-i386.db packages-amd64.db 
  4. Genera los catálogos de packages:

     apt-ftparchive generate -c=aptftp.conf aptgenerate.conf 
  5. Genere el file de Release :

     apt-ftparchive release -c=aptftp.conf dists/unstable >dists/unstable/Release 
  6. Firmarlo:

     gpg -u yourkeyid -bao dists/unstable/Release.gpg dists/unstable/Release 

    (con la identificación apropiada en lugar de yourkeyid ).

Cada vez que realice un cambio en el repository, debe ejecutar los pasos 3 a 6 nuevamente.