Mi piacerebbe essere in grado di creare un pacchetto che non contiene alcun codice o programma stesso, ma invece installa altri pacchetti che esistono nei repository su un computer, una specie di come fa il ubuntu-restricted-extras
pacchetto?
Mi piacerebbe essere in grado di creare un pacchetto che non contiene alcun codice o programma stesso, ma invece installa altri pacchetti che esistono nei repository su un computer, una specie di come fa il ubuntu-restricted-extras
pacchetto?
Risposte:
Un meta-pacchetto come questo può essere creato con uno strumento chiamato equivs
che creerà un pacchetto con solo informazioni sulla dipendenza.
Innanzitutto, crea una directory:
mkdir my-metapackage
cd my-metapackage/
Ora esegui il programma:
equivs-control ns-control
Creerà un file chiamato ns-control
, aprirà questo file con l'editor di testo. Il file di controllo che si genera dovrebbe avere le sue Depends
o le Recommends
linee modificate in base ai pacchetti che si desidera installare:
Section: misc
Priority: optional
Standards-Version: 3.9.1
Package: my-metapackage
Version: 1.0
Depends: openssh-server, gedit
Description: This package installes an ssh server and a text editor
The Long description of this package ends with a newline!
(Solo un esempio, dovresti includere ulteriori informazioni)
E infine, crea il pacchetto eseguendo
equivs-build ns-control
Il pacchetto si trova all'indirizzo my-metapackage/my-metapackage_1.0_all.deb
.
Se si desidera creare anche un pacchetto sorgente, l' --full
opzione può essere passata a equivs-build
, ad es equivs-build --full ns-control
. Questo utilizzerà debuild e creerà anche file .dsc & .tar.gz.
Per creare un file .changes di origine che è possibile caricare su un PPA, estrarre e creare il pacchetto di origine con
dpkg-source -x my-metapackage_1.0.dsc
cd my-metapackage-1.0
debuild -S
Se il Maintainer che hai impostato in ns-control corrisponde alla tua chiave GPG, dovrebbe compilare e firmare il file my-metapackage_1.0_source.changes affinché tu possa eseguire il dput sul tuo PPA
~/.devscripts
file e definisci in modo specifico una chiave GPG diversa da usare nel file devscripts, sovrascriverà il processo dpkg / debuild e ce l'hai usa la chiave GPG specifica specificata in .devscripts
. Proprio come un punto degno di nota per l'ultima frase nella tua risposta
Depends:
rende l'installazione buona se e solo se ci sono pacchetti; non li installa se non sono sulla mia macchina. Per installarli, ho usato Provides
invece e funziona come un fascino. Vedi il mio codice (appena cambiato): github.com/palladius/debian-packages/blob/master/…