... sudo apt install -y dpkg-dev gp ...
... echo "[rdvdeb] Démarrage du package DEB..." ...
... chmod a+x ./rdvdeb ...
... ./rdvdeb ..
... # Déterminer l'architecture du système dpkg-architecture -q DEB_BUILD_ARCH ...
... # Déterminer l'architecture du système dpkg --print-architecture ...
... # Créer un répertoire de package DEB mkdir -p ./pkg/rdvdeb_1.0-1_arm64 ...
... # Créer le répertoire des binaires du package mkdir -p ./pkg/rdvdeb_1.0-1_arm64/usr/bin ...
... # Copier les binaires du package cp ./src/rdvdeb ./pkg/rdvdeb_1.0-1_arm64/usr/bin/. ...
... # Créer un répertoire DEBIAN du package mkdir -p ./pkg/rdvdeb_1.0-1_arm64/DEBIAN ...
... # Créer un fichier de contrôle du package touch ./pkg/rdvdeb_1.0-1_arm64/DEBIAN/control ...
... Package: rdvdeb Version: 1.0 Maintainer: ReadyDev <youremail@readydev.com> Architecture: arm64 Homepage: https://readydev.ovh/home Description: Apprendre à créer un package DEB ...
... # Créer un fichier de post installation touch ./pkg/rdvdeb_1.0-1_arm64/DEBIAN/postinst ...
... # Rendre le fichier exécutable chmod a+x ./pkg/rdvdeb_1.0-1_arm64/DEBIAN/postinst ...
... echo "[rdvdeb] Démarrage de la post installation..." ...
... ./DEBIAN/postinst ...
... dpkg-deb --build [nom-repertoire-package] ... dpkg-deb --build ./rdvdeb_1.0-1_arm64 ...
... dpkg-deb --info [nom-repertoire-package].deb ... dpkg-deb --info ./rdvdeb_1.0-1_arm64.deb ...
... dpkg-deb --contents [nom-repertoire-package].deb ... dpkg-deb --contents ./rdvdeb_1.0-1_arm64.deb ...
... dpkg -i [nom-repertoire-package].deb ... sudo dpkg -i ./rdvdeb_1.0-1_arm64.deb ...
... whereis rdvdeb ...
... rdvdeb ...
... sudo dpkg -r [nom-package] ... sudo dpkg -r rdvdeb ...
... rdvdeb ...
... sudo dpkg -P [nom-package] ... sudo dpkg -P rdvdeb ...
... rdvpkg.exe ...
... Package...........: [nom du package: rdvdeb] Version...........: [version du package: 1.0] Maintainer........: [nom de l'auteur du package: Prénom NOM <email@dom.com>] Depends...........: [liste des dépendances du package] Architecture......: [architecture supporté par le package: all arm64 amd64] Homepage..........: [documentation sur le package: https://doc/package/] Description.......: [description du package] ...
... # Editer l'ensemble des commandes # à exécuter après l'installation du package ... commande-01 commande-02 commande-03 ...
... [nom-package]_[version]-[numero-release]_[architecture] ... [nom-package]......: [nom du package: rdvdeb] [version]..........: [version du package: 1.0] [numero-release]...: [numero de release du package: 1] [architecture].....: [nom de l'architecture: all arm64 amd64] ... # Exemples de répertoire de package rdvdeb_1.0-1_all rdvdeb_1.0-1_arm64 rdvdeb_1.0-1_amd64 ...
... # Installer un package DEB sudo apt install -f [nom-repertoire-package].deb ... # Installer un package DEB sudo apt install -f ./rdvdeb_1.0-1_arm64.deb ...
... whereis rdvdeb ...
... rdvdeb ...
... # Supprimer un package DEB sans dépendances sudo apt remove [nom-package] ... # Supprimer un package DEB sans dépendances sudo apt remove rdvdeb ...
... rdvdeb ...
... # Supprimer un package DEB sans dépendances sudo apt purge [nom-package] ... # Supprimer un package DEB sans dépendances sudo apt purge rdvdeb ...
... rdvdeb ...
... # Créer un répertoire racine d'un référentiel APT mkdir -p ./rdvapt ...
... # Créer un répertoire des packages DEB mkdir -p ./rdvapt/pool/main ...
... # Copier tous les packages DEB ./rdvapt/pool/main/[package-deb-01] ./rdvapt/pool/main/[package-deb-02] ./rdvapt/pool/main/[package-deb-03] ... # Copier tous les packages DEB ./rdvapt/pool/main/rdvdeb_1.0-1_arm64.deb ...
... # Créer un répertoire des binaires DEB mkdir -p ./rdvapt/dists/stable/main/binary-arm64 ...
... # Créer la liste des packages DEB cd ./rdvapt dpkg-scanpackages --arch arm64 ./pool/ > ./dists/stable/main/binary-arm64/Packages cd .. ...
... # Afficher la liste des packages DEB cat ./rdvapt/dists/stable/main/binary-arm64/Packages ...
... # Compresser la liste des packages DEB cat ./rdvapt/dists/stable/main/binary-arm64/Packages | gzip -9 > ./rdvapt/dists/stable/main/binary-arm64/Packages.gz ...
... # Créer un générateur de fichier Release touch ./rdvapt/generate-release.sh ...
... # Rendre le fichier exécutable chmod a+x ./rdvapt/generate-release.sh ...
... #!/bin/sh set -e do_hash() { HASH_NAME=$1 HASH_CMD=$2 echo "${HASH_NAME}:" for f in $(find -type f); do f=$(echo $f | cut -c3-) if [ "$f" = "Release" ]; then continue fi echo " $(${HASH_CMD} ${f} | cut -d" " -f1) $(wc -c $f)" done } cat << EOF Origin: Apprendre à créer un référentiel APT Label: rdvapt Suite: stable Codename: stable Version: 1.0 Architectures: arm64 Components: main Description: | Le but de ce référentiel est d'apprendre à créer un référentiel APT Date: $(date -Ru) EOF do_hash "MD5Sum" "md5sum" do_hash "SHA1" "sha1sum" do_hash "SHA256" "sha256sum" ...
... # Générer un fichier Release cd ./rdvapt/dists/stable ../../generate-release.sh > Release cd ../../.. ...
... # Afficher le contenu du fichier Release cat ./rdvapt/dists/stable/Release ...
... Origin: Apprendre à créer un référentiel APT Label: rdvapt Suite: stable Codename: stable Version: 1.0 Architectures: arm64 Components: main Description: | Le but de ce référentiel est d'apprendre à créer un référentiel APT Date: Fri, 07 Mar 2025 14:35:01 +0000 MD5Sum: 542f0a441fbdfced17310f0ca113b3ed 403 main/binary-arm64/Packages e2f3e100788aadd399713e661a93a4c9 325 main/binary-arm64/Packages.gz SHA1: 54ed314f88882d9eb50d16f2c6bb38ef75f59b73 403 main/binary-arm64/Packages 44c8554e1ad062379d237c2c664baf940b3a8697 325 main/binary-arm64/Packages.gz SHA256: 20dccae10557c9169e7358e6e4182191c593b225b9a1c87a6a2957adc67e6708 403 main/binary-arm64/Packages 2ba6cd9dfd732e4b3865b72dbe75848e356d4053389d80f2a534e65a470bb2a0 325 main/binary-arm64/Packages.gz ...
... # Démarrer un serveur du référentiel APT python3 -m http.server ...
... http://localhost:8000/ ...
... # Configurer les sources d'un référentiel APT echo "deb [arch=arm64] http://127.0.0.1:8000/rdvapt stable main" | sudo tee /etc/apt/sources.list.d/rdvapt.list ...
... # Lister les sources des packages APT ll /etc/apt/sources.list.d ...
... # Lister les sources des packages APT cat /etc/apt/sources.list.d/rdvapt.list ...
... # Autoriser les packages non authentifiés sudo apt update --allow-insecure-repositories ...
... # Installer un package APT sudo apt install rdvdeb ...
... whereis rdvdeb ...
... rdvdeb ...
... mkdir -p ./rdvapt/cmd touch ./rdvapt/cmd/template-pgp-key.batch ...
... %echo Génération d'une clé PGP Key-Type: RSA Key-Length: 4096 Name-Real: rdvapt Name-Email: youremail@readydev.com Expire-Date: 0 %no-ask-passphrase %no-protection %commit ...
... export GNUPGHOME="$(mktemp -d ./rdvapt/cmd/pgpkeys-XXXXXX)" gpg --no-tty --batch --gen-key ./rdvapt/cmd/template-pgp-key.batch ...
... gpg --list-keys ...
... gpg --armor --export rdvapt > ./rdvapt/cmd/pgp-key.public ...
... cat ./rdvapt/cmd/pgp-key.public ...
... cat ./rdvapt/cmd/pgp-key.public | gpg --list-packets ...
... gpg --armor --export-secret-keys rdvapt > ./rdvapt/cmd/pgp-key.private ...
... cat ./rdvapt/cmd/pgp-key.private ...
... export GNUPGHOME="$(mktemp -d ./rdvapt/cmd/pgpkeys-XXXXXX)" ...
... gpg --list-keys ...
... cat ./rdvapt/cmd/pgp-key.private | gpg --import ...
... gpg --list-keys ...
... cat ./rdvapt/dists/stable/Release | gpg --default-key rdvapt -abs > ./rdvapt/dists/stable/Release.gpg ...
... cat ./rdvapt/dists/stable/Release.gpg ...
... cat ./rdvapt/dists/stable/Release | gpg --default-key rdvapt -abs --clearsign > ./rdvapt/dists/stable/InRelease ...
... cat ./rdvapt/dists/stable/InRelease ...
... sudo cp /home/.../rdvapt/cmd/pgp-key.public /etc/apt/keyrings/. ...
... echo "deb [arch=arm64 signed-by=/etc/apt/keyrings/pgp-key.public] http://127.0.0.1:8000/rdvapt stable main" | sudo tee /etc/apt/sources.list.d/rdvapt.list ...
... sudo apt clean sudo apt update ...
... sudo apt install rdvdeb ...
... whereis rdvdeb ...
... rdvdeb ...
... Origin: [origine-package] Label: rdvapt Suite: stable Codename: stable Version: 1.0 Architectures: arm64 Components: main Description: [description-package] Date: Fri, 07 Mar 2025 14:08:48 +0000 MD5Sum: 542f0a441fbdfced17310f0ca113b3ed 403 main/binary-arm64/Packages e2f3e100788aadd399713e661a93a4c9 325 main/binary-arm64/Packages.gz SHA1: 54ed314f88882d9eb50d16f2c6bb38ef75f59b73 403 main/binary-arm64/Packages 44c8554e1ad062379d237c2c664baf940b3a8697 325 main/binary-arm64/Packages.gz SHA256: 20dccae10557c9169e7358e6e4182191c593b225b9a1c87a6a2957adc67e6708 403 main/binary-arm64/Packages 2ba6cd9dfd732e4b3865b72dbe75848e356d4053389d80f2a534e65a470bb2a0 325 main/binary-arm64/Packages.gz ...
... [Origin]...........: [origine du référentiel en une seule ligne] [Label]............: [nom du référentiel: rdvapt] [Suite]............: [définit la suite du référentiel: stable] [Codename].........: [nom de code du référentiel: stable] [Version]..........: [version du référentiel: 1.0] [Architectures]....: [architectures supportées par le référentiel: arm64 amd64] [Components].......: [composants du référentiel: main] [Description]......: [description du référentiel] [Date].............: [date de création du référentiel] [MD5Sum]...........: [empreinte md5 pour la vérification de l'intégrité des packages] [SHA1].............: [empreinte sha1 pour la vérification de l'intégrité des packages] [SHA256]...........: [empreinte sha256 pour la vérification de l'intégrité des packages] ...