Come posso creare il mio PPA personalizzato da condividere con la comunità Ubuntu? Sto cercando di creare il mio set di pacchetti personalizzato e mi piacerebbe davvero condividerlo con la community.
Come posso creare il mio PPA personalizzato da condividere con la comunità Ubuntu? Sto cercando di creare il mio set di pacchetti personalizzato e mi piacerebbe davvero condividerlo con la community.
Utilizzando un archivio di pacchetti personali ( PPA ), puoi distribuire software e aggiornamenti direttamente agli utenti di Ubuntu. Crea il tuo pacchetto sorgente, caricalo e Launchpad compilerà i binari e poi li ospiterà nel tuo repository apt.
Ecco una spiegazione dettagliata .
Questo è un tutorial sulla creazione di un file .deb di base da un determinato script di esempio. In questo tutorial creiamo innanzitutto un programma di esempio in bash che mostra solo "CIAO DA PROGRAMMA". Quindi creiamo un file di controllo per il programma per creare un programma di installazione debian. Infine sono impacchettati in un file .deb
.
crea un programma di esempio in bash
mkdir "$HOME/create_deb/pgmdir"
gedit "$HOME/create_deb/pgmdir/zenity_hello.sh"
incollaci il seguente codice
#!/bin/bash
echo 'HELLO FROM PROGRAM' | zenity --text-info
Rendi il programma eseguibile
chmod +x "$HOME/create_deb/pgmdir/zenity_hello.sh"
Crea un file di controllo per il pacchetto debian
Crea un file chiamato control
nella cartella DEBIAN
mkdir "$HOME"/create_deb/DEBIAN
gedit "$HOME"/create_deb/DEBIAN/control
e incolla i seguenti dettagli
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.
Puoi modificare i contenuti se lo desideri. Maggiori informazioni sul formato di questo file qui e here.
Crea lo script postinst
, che viene eseguito immediatamente dopo l'installazione del pacchetto
gedit "$HOME"/create_deb/DEBIAN/postinst
quindi incolla
#!/bin/sh
set -e
echo 'Installing program : zenity_hello.sh ......' | zenity --text-info
e renderlo eseguibile
chmod +x "$HOME/create_deb/DEBIAN/postinst"
Crea lo script prerm
, che viene eseguito prima della rimozione del pacchetto
#!/bin/sh
set -e
echo 'Removing program : zenity_hello.sh ......' | zenity --text-info
e renderlo eseguibile
chmod +x "$HOME/create_deb/DEBIAN/prerm"
Crea la struttura del pacchetto e copia programmi, dati, ecc.
Crea una struttura dei tuoi programmi installati e dei suoi dati. In questo esempio inseriamo il file in /bin
.
mkdir -p "$HOME"/create_deb/bin
cp "$HOME/create_deb/pgmdir/zenity_hello.sh" "$HOME/create_deb/bin/zenity_hello"
Crea il file .deb .
dpkg-deb --build "$HOME"/create_deb .
Il .
assegnerà automaticamente il nome al file .deb
con versione, arch ecc. O il tuo nome personalizzato
dpkg-deb --build "$HOME"/create_deb "$HOME"/create_deb/hellodeb.deb
O se costruisci il file .deb con
debuild -k'your GPG key here' -S
quindi puoi caricarlo su Ubuntu Launchpad con
dput ppa:<lp-username>/<ppa-name> packet-source.changes
come descritto qui (fonte: crea un pacchetto .deb da script o binari )
Installa il pacchetto .deb
appena creato.
Puoi aprirlo con software-center
ma potrebbe non consentirne l'installazione. Quindi consiglio di utilizzare gdebi
gestore pacchetti.
sudo apt-get install gdebi
gdebi "$HOME"/create_deb/hellodeb.deb
Ora puoi installarlo. Durante l'installazione dovresti vedere un dialogo gtk
Installazione del programma: zenity_hello.sh ......
Dopo aver installato apri un terminale e digita zenity_hello
. Se il programma è installato correttamente e tutto OK, dovresti vedere un dialogo gtk
CIAO DAL PROGRAMMA
Rimozione del pacchetto
sudo apt-get remove zenity_hello
Dato che l'OP vuole un modo semplice per pubblicare i suoi pacchetti, sto dando un accesso facile.
requisito: account Dropbox (o qualsiasi altro servizio, ad esempio github ) con una cartella pubblica.
Crea una cartella all'interno della tua cartella Public-Dropbox in cui inserisci i tuoi file * .deb:
mkdir ~/Dropbox/Public/deb-packages
o crea quella cartella altrove e inserisci un collegamento simbolico nella cartella pubblica:
mkdir ~/deb-packages
cd ~/Dropbox/Public
ln -s ~/deb-packages/ deb-packages
Entra in quella cartella e crea uno script che, una volta eseguito, crea Packages.gz, contenente tutte le informazioni necessarie sui tuoi pacchetti deb. creare:
gedit import.sh
inserisci questo:
#!/bin/bash
dpkg-scanpackages . /dev/null |gzip > Packages.gz
renderlo eseguibile:
chmod x import.sh
Copia alcuni file * .deb nella cartella. Potrebbe essere il tuo o alcuni che non sono disponibili attraverso altri repository. Quindi vai nella cartella ed esegui lo script che abbiamo inserito:
cd ~/deb-packages/
./import.sh
Questo dovrebbe creare il cosiddetto file Packages.gz , che apt cerca di sapere quali pacchetti si trovano in questo repository.
Ora, attendi che Dropbox sincronizzi la cartella e recuperi URL pubblico da Packages.gz
. Dovrebbe assomigliare a questo:
http://dl.getdropbox.../Packages.gz
Elimina la fine di quel collegamento, aggiungi alcune parole e ora puoi utilizzare e popolare la seguente riga per sources.list:
deb http://dl.getdropbox.../deb-packages ./
È così che hai il tuo repository deb in esecuzione. Sempre sincronizzati localmente, ma disponibili a chiunque, sempre e ovunque.
NOTA: dpkg-scanpackages
è disponibile da dpkg-dev
di riferimento
Avrai bisogno di un account Launchpad.net per creare un PPA. Basta fare clic sul tuo utente su Launchpad (fai clic sul tuo nome in alto a sinistra) e crea un PPA. Potrebbe essere necessario prima firmare il Codice di condotta e avere una chiave GPG registrata nel proprio account.
Leggi altre domande sui tag ppa