Chciałbym móc stworzyć pakiet, który sam nie zawiera żadnego kodu ani programów, ale zamiast tego instaluje inne pakiety istniejące w repozytoriach na komputerze, tak jak ubuntu-restricted-extras
pakiet?
Chciałbym móc stworzyć pakiet, który sam nie zawiera żadnego kodu ani programów, ale zamiast tego instaluje inne pakiety istniejące w repozytoriach na komputerze, tak jak ubuntu-restricted-extras
pakiet?
Odpowiedzi:
Metapakiet taki jak ten można utworzyć za pomocą narzędzia o nazwie, equivs
które utworzy pakiet zawierający tylko informacje o zależnościach.
Najpierw utwórz katalog:
mkdir my-metapackage
cd my-metapackage/
Teraz uruchom program:
equivs-control ns-control
Utworzy plik o nazwie ns-control
, otwórz ten plik za pomocą edytora tekstu. W wygenerowanym pliku kontrolnym należy zmodyfikować jego linie Depends
lub Recommends
wiersze, aby były zależne od pakietów, które chcesz zainstalować:
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!
(Tylko przykład, powinieneś podać więcej informacji)
Na koniec zbuduj pakiet, uruchamiając
equivs-build ns-control
Twoja paczka znajduje się pod adresem my-metapackage/my-metapackage_1.0_all.deb
.
Jeśli chcesz również utworzyć pakiet źródłowy, --full
możesz przekazać opcję equivs-build
np equivs-build --full ns-control
. Spowoduje to użycie narzędzia debuild oraz utworzenie plików .dsc i .tar.gz.
Aby utworzyć źródłowy plik .changes, który można przesłać do PPA, wyodrębnij i skompiluj pakiet źródłowy za pomocą
dpkg-source -x my-metapackage_1.0.dsc
cd my-metapackage-1.0
debuild -S
Jeśli Maintainer ustawiony w ns-control pasuje do twojego klucza GPG, powinien on skompilować i podpisać plik my-metapackage_1.0_source.changes, abyś mógł zapisać go w swoim PPA
~/.devscripts
plik i konkretnie zdefiniujesz inny klucz GPG do użycia w pliku devscripts, OTRZYMUJE on proces dpkg / debuild i ma go użyj konkretnego klucza GPG określonego w .devscripts
. Tylko jako ostatni punkt w ostatnim zdaniu w swojej odpowiedzi
Depends:
sprawia, że instalacja jest dobra tylko wtedy, gdy są dostępne; nie instaluje ich, jeśli nie są na moim komputerze. Aby je zainstalować, użyłem Provides
zamiast tego i działa jak urok. Zobacz mój kod (właśnie go zmieniłem): github.com/palladius/debian-packages/blob/master/…