Comment créer mon propre PPA personnalisé à partager avec la communauté Ubuntu? J’essaie de créer mon propre ensemble de paquets personnalisé et j’aimerais vraiment le partager avec la communauté.
À l’aide d’une archive de paquet personnel ( PPA ), vous pouvez dissortingbuer des logiciels et des mises à jour directement aux utilisateurs d’Ubuntu. Créez votre paquet source, téléchargez-le et Launchpad construira des fichiers binarys, puis les hébergera dans votre propre référentiel apt.
Voici une explication détaillée .
Ceci est un tutoriel sur la création d’un fichier .deb de base à partir d’un exemple de script. Dans ce tutoriel, nous créons d’abord un exemple de programme dans bash qui affiche simplement ‘HELLO FROM PROGRAM’. Ensuite, nous créons un fichier de contrôle pour le programme afin de créer un programme d’installation Debian. Enfin, ils sont regroupés dans un fichier .deb
.
créer un exemple de programme dans bash
mkdir "$HOME/create_deb/pgmdir" gedit "$HOME/create_deb/pgmdir/zenity_hello.sh"
coller le code suivant
#!/bin/bash echo 'HELLO FROM PROGRAM' | zenity --text-info
Rendre le programme exécutable
chmod +x "$HOME/create_deb/pgmdir/zenity_hello.sh"
Créer un fichier de contrôle pour le paquet Debian
Créer un fichier nommé control
dans le dossier DEBIAN
mkdir "$HOME"/create_deb/DEBIAN gedit "$HOME"/create_deb/DEBIAN/control
coller et coller les détails suivants
Package: hellodeb Version: 0.1 Architecture: all Maintainer: totti Installed-Size: 6 Depends: zenity, bash Section: testing Priority: optional Homepage: http://askubuntu.com Description: This is my first debian package. Guided by Totti Torvalds. In Description new line start with a space.
Vous pouvez modifier le contenu si vous le souhaitez. En savoir plus sur le format de ce fichier ici et ici .
Créer postinst
script postinst
, exécuté immédiatement après l’installation du package
gedit "$HOME"/create_deb/DEBIAN/postinst
puis coller
#!/bin/sh set -e echo 'Installing program : zenity_hello.sh ......' | zenity --text-info
et le rendre exécutable
chmod +x "$HOME/create_deb/DEBIAN/postinst"
Créer prerm
script prerm
, exécuté avant la suppression du package
#!/bin/sh set -e echo 'Removing program : zenity_hello.sh ......' | zenity --text-info
et le rendre exécutable
chmod +x "$HOME/create_deb/DEBIAN/prerm"
Créer une structure de paquet et copier des programmes, des données, etc.
Créez une structure de vos programmes installés et de leurs données. Dans cet exemple, nous plaçons le fichier dans /bin
.
mkdir -p "$HOME"/create_deb/bin cp "$HOME/create_deb/pgmdir/zenity_hello.sh" "$HOME/create_deb/bin/zenity_hello"
Construisez le fichier .deb .
dpkg-deb --build "$HOME"/create_deb .
Le .
nommera automatiquement le fichier .deb
avec la version, l’arch, etc. Ou votre nom personnalisé
dpkg-deb --build "$HOME"/create_deb "$HOME"/create_deb/hellodeb.deb
Ou si vous construisez le fichier .deb avec
debuild -k'your GPG key here' -S
alors vous pouvez le télécharger sur Ubuntu Launchpad avec
dput ppa:/ packet-source.changes
comme décrit ici (source: créer un paquet .deb à partir de scripts ou de fichiers binarys )
Installez le package .deb
nouvellement créé. Vous pouvez l’ouvrir avec software-center
mais il se peut que vous ne puissiez pas l’installer. Je recommande donc d’utiliser le gdebi
paquets gdebi
.
sudo apt-get install gdebi gdebi "$HOME"/create_deb/hellodeb.deb
Maintenant, vous pouvez l’installer. Pendant l’installation, vous devriez voir un dialog gtk
Programme d’installation: zenity_hello.sh ……
Après l’installation, ouvrez un terminal et tapez zenity_hello
. Si le programme est correctement installé et que tout va bien, vous devriez voir un dialog gtk
BONJOUR DU PROGRAMME
Retrait du paquet
sudo apt-get remove zenity_hello
Comme l’OP veut un moyen simple de publier ses paquets, je lui donne un hack facile.
exigence: compte dropbox (ou tout autre service, par exemple github ) avec un dossier public.
Créez un dossier dans votre dossier Public-Dropbox dans lequel vous placerez vos fichiers * .deb:
mkdir ~/Dropbox/Public/deb-packages
ou créez ce dossier ailleurs et mettez un lien symbolique dans votre dossier Public:
mkdir ~/deb-packages cd ~/Dropbox/Public ln -s ~/deb-packages/ deb-packages
Accédez à ce dossier et créez un script qui, une fois exécuté, crée le fichier Packages.gz, contenant toutes les informations nécessaires sur vos deb-packages. créer:
gedit import.sh
mettez ceci dedans:
#!/bin/bash dpkg-scanpackages . /dev/null |gzip > Packages.gz
le rendre exécutable:
chmod x import.sh
Copiez quelques fichiers * .deb dans le dossier. Peut-être le vôtre ou certains qui ne sont pas disponibles via d’autres référentiels. Ensuite, allez dans le dossier et exécutez le script que nous avons mis là:
cd ~/deb-packages/ ./import.sh
Cela devrait créer ce que l’on appelle le fichier Packages.gz , que apt cherche à savoir quels paquets sont situés dans ce référentiel.
Maintenant, attendez que Dropbox synchronise le dossier et récupérez l’ URL publique à partir de Packages.gz
. Ça devrait ressembler a quelque chose comme ca:
http://dl.getdropbox.../Packages.gz
Débarrassez-vous de la fin de ce lien, mettez quelques mots supplémentaires et vous pouvez maintenant utiliser et renseigner la ligne suivante pour le fichier sources.list:
deb http://dl.getdropbox.../deb-packages ./
Voilà, vous avez votre propre référentiel deb en cours d’exécution. Toujours synchronisé localement, mais disponible pour tout le monde, à tout moment, n’importe où.
REMARQUE: dpkg-scanpackages
est disponible à partir de dpkg-dev
référence
Vous aurez besoin d’un compte Launchpad.net pour créer un PPA. Il suffit de cliquer sur votre utilisateur dans le tableau de bord (cliquez sur votre nom en haut à gauche) et de créer un PPA. Vous devrez peut-être d’abord signer le code de conduite et disposer d’une clé GPG enregistrée avec votre compte.