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 package personnel ( PPA ), vous pouvez distribuer des logiciels et mettre à jour directement les utilisateurs d'Ubuntu. Créez votre paquet source, téléchargez-le et Launchpad va créer des fichiers binaires, puis les héberger 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 donné. Dans ce didacticiel, nous créons d’abord un exemple de programme dans bash qui montre simplement "HELLO FROM PROGRAM". Ensuite, nous créons un fichier de contrôle pour le programme afin de créer un installateur 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"
collez le code suivant dans le fichier
#!/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éez un fichier nommé control
à l'intérieur du dossier DEBIAN
mkdir "$HOME"/create_deb/DEBIAN
gedit "$HOME"/create_deb/DEBIAN/control
et collez 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 le script postinst
, exécuté immédiatement après l’installation du package
gedit "$HOME"/create_deb/DEBIAN/postinst
puis collez
#!/bin/sh
set -e
echo 'Installing program : zenity_hello.sh ......' | zenity --text-info
et rendez-le exécutable
chmod +x "$HOME/create_deb/DEBIAN/postinst"
Créez le script prerm
, exécuté avant la suppression du package
#!/bin/sh
set -e
echo 'Removing program : zenity_hello.sh ......' | zenity --text-info
et rendez-le exécutable
chmod +x "$HOME/create_deb/DEBIAN/prerm"
Faites la structure des paquets et copiez les programmes, les données, etc.
Créez une structure de vos programmes installés et de ses données. Dans cet exemple, nous mettons le fichier à /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, arch, etc. Ou votre nom personnalisé
dpkg-deb --build "$HOME"/create_deb "$HOME"/create_deb/hellodeb.deb
Ou si vous créez le fichier .deb avec
debuild -k'your GPG key here' -S
alors vous pouvez le télécharger sur Ubuntu Launchpad avec
dput ppa:<lp-username>/<ppa-name> packet-source.changes
comme décrit ici (source: créer un package .deb à partir de scripts ou de fichiers binaires )
Installez le package .deb
nouvellement créé.
Vous pouvez l'ouvrir avec software-center
mais cela peut ne pas vous permettre de l'installer. Je recommande donc d'utiliser gdebi
gestionnaire de paquets.
sudo apt-get install gdebi
gdebi "$HOME"/create_deb/hellodeb.deb
Maintenant, vous pouvez l'installer. Lors de l'installation, vous devriez voir un dialogue GTK
Installation du programme: 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 dialogue GTK
HELLO FROM PROGRAM
Suppression du package
sudo apt-get remove zenity_hello
Comme le PO veut un moyen simple de publier ses paquets, je donne un hack facile.
exigence: dropbox (ou tout autre service, par exemple github ) avec un dossier public.
Créez un dossier dans votre dossier de dépôt public où vous placez vos fichiers * .deb:
mkdir ~/Dropbox/Public/deb-packages
ou créez ce dossier ailleurs et placez un lien symbolique dans votre dossier Public:
mkdir ~/deb-packages
cd ~/Dropbox/Public
ln -s ~/deb-packages/ deb-packages
Allez dans ce dossier et créez un script qui, une fois exécuté, crée le Packages.gz, contenant toutes les informations nécessaires sur vos paquets deb. créer:
gedit import.sh
mettez ça dedans:
#!/bin/bash
dpkg-scanpackages . /dev/null |gzip > Packages.gz
rendez-le exécutable:
chmod x import.sh
Copiez certains fichiers * .deb dans le dossier. Peut-être le vôtre ou d'autres qui ne sont pas disponibles dans d'autres référentiels. Ensuite, allez dans le dossier et exécutez le script que nous y avons mis:
cd ~/deb-packages/
./import.sh
Cela devrait créer le fichier appelé Packages.gz , que apt recherche pour savoir quels paquets se trouvent dans ce référentiel.
Maintenant, attendez que Dropbox synchronise le dossier et récupère l'URL publique dans Packages.gz
. Il devrait ressembler à ceci:
http://dl.getdropbox.../Packages.gz
Débarrassez-vous de la fin de ce lien, ajoutez-y des mots supplémentaires et vous pouvez maintenant utiliser et remplir la ligne suivante pour les sources.list:
deb http://dl.getdropbox.../deb-packages ./
C'est vous qui avez votre propre dépôt Deb en cours d'exécution. Toujours synchronisé localement, mais accessible à tous, à tout moment et en tout lieu.
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. Cliquez simplement sur votre utilisateur sur Launchpad (cliquez sur votre nom en haut à gauche) et créez un PPA. Vous devrez peut-être d'abord signer le code de conduite et faire enregistrer une clé GPG sur votre compte.
Lire d'autres questions sur les étiquettes ppa