2012-04-01 17 views
12

Sto creando un piccolo pacchetto deb per installare alcuni file. Alcuni di essi si troveranno in/usr/lib/mypackage/e voglio creare un collegamento simbolico da/usr/lib/mypackage/mybin a/usr/bin/mybindebian rules file make a symlink

Per la cartella/usr/lib/mypackage Sto usando mypackage.install e copio i file laggiù. Questo sembra funzionare bene.

Tuttavia, per creare il mio symlink, capisco che devo usare il file di regole debian lì e non sono sicuro di come procedere, ecco la riga che devo aggiungere, dove dovrebbe essere aggiunta e Come? Grazie

ln -s /usr/lib/mypackage/mybin /usr/bin/mybin 

risposta

20

Il modo migliore è quello di utilizzare dh_link, parte della suite debhelper. Vedi man dh_link per i dettagli del suo funzionamento. Come si può vedere da questo, che, probabilmente, si desidera qualcosa di simile a quanto segue in un file chiamato debian/$mypackage.links:

/usr/lib/mypackage/mybin /usr/bin/mybin 

Dove si dovrebbe mettere dh_link nella vostra debian/rules, se non è già lì, dipende da come si sta facendo il tuo pacco Se utilizzi Debhelper, probabilmente il tuo debian/rules dispone già della protezione dh_link (anche se stai utilizzando il classico Debhelper, la linea dh_link potrebbe essere commentata e devi decommentarla). Anche l'utilizzo di Debhelper in stile più recente (dh) o CDBS-plus-debhelper (include /usr/share/cdbs/1/rules/debhelper.mk) contano qui; si prenderanno cura di dh_link per te.

Ma se non si utilizza Debhelper e non si desidera avviare, quindi dh_link probabilmente non è un'opzione. In tal caso, devi solo assicurarti di essere conforme a Debian Policy on the subject (il che significa che il tuo link simbolico dovrebbe essere relativo, non assoluto). Probabilmente vorrai creare il collegamento nella destinazione build di . Esempio:

build: 
    # ... other stuff ... 
    mkdir -p debian/$mypackage/usr/bin 
    ln -s ../lib/mypackage/mybin debian/$mypackage/usr/bin/mybin 
+0

Rendere il link simbolico relativo risolto il mio problema – user877329

+0

Invece di fornire il file '* .links', è anche possibile aggiungere una configurazione di override in' rules'. Basta posizionare 'override_dh_link: \ n \ t dh_link source/file destination/file' dopo la fine del blocco di configurazione'%: '. '\ n \ t' sta per una nuova riga seguita da una scheda. – iFreilicht