2012-04-01 11 views
12

Tworzę mały pakiet deb, aby zainstalować kilka plików. Niektóre z nich będą znajdować się w/usr/lib/mypackage/i chcę utworzyć dowiązanie symboliczne z/usr/lib/mypackage/i do pliku/usr/bin/mybinplik reguł debiana utworzyć symboliczny link

Dla folderu/usr/lib/mypackage Używam mypackage.install i kopiuję pliki tam. To wydaje się działać dobrze.

Jednakże, aby utworzyć moje dowiązanie symboliczne, rozumiem, że muszę tam użyć pliku reguł debiana i nie jestem pewien, jak kontynuować, tutaj jest wiersz, który muszę dodać, gdzie powinien on zostać dodany i w jaki sposób? Dzięki

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

Odpowiedz

20

Najlepszym sposobem jest użycie dh_link, część pakietu debhelper. Szczegółowe informacje na temat jego działania można znaleźć w man dh_link. Jak widać z tego, że prawdopodobnie chcesz coś jak następuje w pliku o nazwie debian/$mypackage.links:

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

Gdzie należy umieścić dh_link w swojej debian/rules, jeśli nie jest to już nie zależy od tego, jak robisz Twój pakunek. Jeśli używasz programu Debhelper, to prawdopodobnie już masz dh_link (chociaż jeśli używasz klasycznego Debhelper, to linia dh_link może zostać zakomentowana i musisz ją odkomentować). W tym polu liczą się także Debhelper w nowszym stylu (dh) lub CDBS-plus-debhelper (include /usr/share/cdbs/1/rules/debhelper.mk); zajmą się dla ciebie dh_link.

Ale jeśli nie używasz programu Debhelper, a nie chcesz go uruchamiać, to prawdopodobnie nie jest to opcja dh_link. W takim przypadku wystarczy upewnić się, że użytkownik jest zgodny z Debian Policy on the subject (co oznacza, że ​​dowiązanie symboliczne powinno być względne, a nie bezwzględne). Prawdopodobnie chcesz utworzyć link w swoim celu debian/rules. Przykład:

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

Making symlink względna rozwiązać mój problem – user877329

+0

Zamiast zaopatrywania '* .links' pliku można również dodać konfigurację obejścia w' rules'. Po prostu umieść 'override_dh_link: \ n \ t dh_link source/file destination/file' po końcu bloku konfiguracyjnego'%: '. '\ n \ t' oznacza znak nowej linii, po której następuje karta. – iFreilicht

Powiązane problemy