Domanda Come posso creare un pacchetto Debian nativo per file statici?


Ho bisogno di Debianizzare alcune risorse statiche per un progetto software, ma sono confuso dalle informazioni disponibili e potrei usare delle indicazioni per farlo. Ecco i materiali che ho letto:

Il Nuova guida del manutentore di Debian sembra il più a proposito, soprattutto questo capitoloma la mia presentazione didattica non è efficace per me; legge più come un riferimento per il re-apprendimento che come una guida per l'inconsapevolezza. Molte delle informazioni che ho trovato sono allo stesso modo orientate a includere i pacchetti in un repository pubblico di cui non ho bisogno. Per fare in modo che una buona gente possa mostrarmi la via, ho creato un piccolo progetto statrec che esemplifica il tipo di pacchetto che ho bisogno di creare. L'albero dei sorgenti è così:

statrec/
├── LICENSE
├── README.md
├── share
│   ├── gilgamesh.txt
│   └── thoreau.txt
└── VERSION

Devo ma non sono in grado di dedurre come:

  • installare statrec/share a /usr/share/statrec/VERSION/,
  • creare o modificare un collegamento simbolico da /usr/share/statrec/current/ a /usr/share/statrec/VERSION/ e poi
  • disinstallare le versioni precedenti di Statrec.

Capisco come realizzare qualcosa di questo, forse quali strumenti usare ma mi sento piuttosto paralizzato dal eccesso di informazioni.


12
2017-08-24 13:17


origine


risposte:


Direi che la cosa più semplice sarebbe:

  1. Crea un makefile, che installerà i file come vuoi che li onorino DESTDIR impostazione e non fare nulla per il target predefinito. Qualcosa sulla falsariga di:

    all: # nothing to build
    
    install:
        cp -r share/* $(DESTDIR)/usr/share/statrec/$(VERSION)
    

    Il DESTDIR la cosa è importante; non verrà installato sul sistema, ma in una directory temporanea che dpkg non comprenderà. Tutti i link simbolici devono puntare alle destinazioni finali (senza $(DESTDIR) prefisso).

  2. Permettere dh_make --native fai affari (creerà un altro makefile debian/rules chiamerà il primo makefile).

  3. Guarda i file sotto debian. Particolarmente debian/changelog potrebbe aver bisogno di modifiche (è dove debuild /dpkg-buildpackage ottenere il numero di versione, quindi deve essere compilato).

    Credo debuild usi fakeroot automaticamente, per dpkg-buildpackage devi specificarlo manualmente. Non pensarci nemmeno di eseguirlo come vera radice.

  4. Uso debuild o dpkg-buildpackage -rfakeroot per costruirlo

Non c'è bisogno di preoccuparsi per la disinstallazione come dpkg lo gestirà.

Aggiornare: suggerisco dh_make --native, perché ho capito che la domanda è semplicemente installando una manciata di file di dati su una manciata di sistemi debian. Se dovrebbe essere distribuito, suggerisco semplicemente di andare a chiedere sul canale IRC di irc.debian.org # debian e probabilmente lasciandolo su Debian Developer (solo gli sviluppatori Debian possono caricare nell'archivio Debian e di solito vogliono gestire la confezione da soli) .

Inoltre, se fa parte del software piuttosto che un gruppo di file di dati autonomi, l'installazione dovrebbe far parte dell'installazione generale del software utilizzando un makefile comune, dovrebbe esserci solo uno Pacchetto sorgente Debian e solo il debian/control e debian/*.filesdovrebbe specificare quali file vanno al pacchetto dell'applicazione (che è "Architecture: any") e quali file vanno al pacchetto dati (che è "Architecure: all" e di solito ottiene il suffisso -data).


8
2017-08-24 13:56



Ho trovato la guida di "Hosting a Cydia Repository" di saurik's (di cydia / jailbreak fame) utile per creare i propri file .deb. Dai un'occhiata qui: http://www.saurik.com/id/7


1
2017-08-24 14:58



Dovresti leggere la sezione 15.2.2 in debian-manuale.

Ho trovato utile creare un file .install e saltare quella parte di Makefile, per il mio progetto


1
2017-08-29 10:07