{{tag>Brouillon apt deb Repo}}
= Dépôt Debian APT repository
Voir :
* [[Notes debmirror]]
* http://doc.ubuntu-fr.org/tutoriel/comment_creer_depot
Voir aussi :
* aptly
wget -c http://www.gostcrypt.org/download/1.0/linux/Gostcrypt_1.0.deb
mv Gostcrypt_1.0.deb gostcrypt.deb
wget -c http://ftp.fr.debian.org/debian/pool/main/w/wxwidgets2.8/libwxgtk2.8-dev_2.8.12.1-12_amd64.deb
wget -c https://github.com/adobe/brackets/releases/download/release-1.5/Brackets.Release.1.5.64-bit.deb
wget -c ftp://ftp.mondorescue.org/debian/8/mondo_3.2.1-1_amd64.deb
wget -c http://ftp.fr.debian.org/debian/pool/non-free/a/afio/afio_2.5.1.20130626+gite266635-1_amd64.deb
wget -c http://ftp.fr.debian.org/debian/pool/non-free/f/firmware-nonfree/firmware-linux-nonfree_0.44~bpo8+1_all.deb
wget -c http://ftp.fr.debian.org/debian/pool/main/p/pdfedit/pdfedit_0.4.5-1_amd64.deb
Modification d'un paquet .deb
wget -c http://www.gostcrypt.org/download/1.0/linux/Gostcrypt_1.0.deb
rm tmp* -rf
mkdir tmp
cd tmp/
ar x ../Gostcrypt_1.0.deb
ls -l
mkdir DEBIAN
cd DEBIAN/
tar xzvf ../control.tar.gz
ls
rm ../control.tar.gz
vim control
cd ..
ls
cd ..
mv Gostcrypt_1.0.deb ..
dpkg-deb --build tmp/
== Comment créer un dépôt de paquets
Réf :
* http://doc.ubuntu-fr.org/tutoriel/comment_creer_depot
* https://wiki.debian.org/SettingUpSignedAptRepositoryWithReprepro
apt-get install reprepro
mkdir apt
cd apt
mkdir conf
mkdir incoming
''conf/distributions''
Origin: Acme
Label: Acme
Suite: stable
Codename: jessie
Version: 8.2
Architectures: amd64
Components: main
Description: Global Private Acme Repository
Placer les fichiers .deb dans le dossier incoming
''reprepro -Vb . includedeb (distribution) incoming/(nom_du_paquet)''
Exemple :
reprepro -Vb . includedeb jessie incoming/atop
''/etc/nginx/sites-available/repo''
server {
listen 80 ;
server_name apt.acme.fr ;
root /var/www/apt ;
autoindex on;
charset utf-8;
}
== Faire un Dépôt partiel (partial Debian mirror) qui contiendra l'ensemble des paquets nécessaires
Voir
* https://www.debian-administration.org/article/286/Setting_up_your_own_APT_repository_with_upload_support
* https://blog.sileht.net/create-a-smart-debian-repository-with-reprepro.html
Voir équivalent pour RPM RedHat [[creation_d_un_depot_redhat_rpm_pour_yum]]
== Add Packages in local Debian repository
Exemple
Pour que GPG ne nous demande pas mille fois la paraphrase
eval $(gpg-agent --daemon)
Et
apt-get install paquet
cd /var/www/apt/incoming/
for paq in $(dpkg -l | grep ^ii | awk '{print $2}') ; do apt-get download $paq ; done
cd ..
for deb in incoming/*.deb ; do reprepro -Vb . includedeb jessie $deb ; done
''add_packages.sh''
#! /bin/bash
set -o nounset
WD=$(dirname $(realpath $0))
pushd . > /dev/null
cd /var/www/apt/incoming/
for paq in $(cat $WD/packages_list.txt) $(dpkg -l | grep ^ii |awk '{print $2}'|egrep -v "$(cat $WD/packages_list_ignored.txt |tr "\n" "|" | sed -e 's/|$//')" )
do
apt-get download $paq # > /dev/null
done
cd /var/www/apt/
for deb in incoming/*.deb
do
reprepro -Vb . includedeb jessie $deb # >/dev/null
done
popd > /dev/nul
== Créer un paquet Debian
https://www.debian.org/doc/manuals/packaging-tutorial/packaging-tutorial.fr.pdf
== Signer les paquets
Sur le serveur repo
1) Générer une clef
Export de la clef publique
gpg --list-key
gpg --export -a 0x3E4DC2000A8903CF > /var/www/apt/conf/0x3E4DC2000A8903CF.asc
''conf/distributions''
SignWith: 0x3E4DC2000A8903CF
reprepro --ask-passphrase export
Sur un client
wget http://repo.local/conf/0x3E4DC2000A8903CF.asc
apt-key add 0x3E4DC2000A8903CF.asc
#curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3E4DC2000A8903CF" | sudo apt-key add