Angesichts eines Debian-Quellpakets - Wie installiere ich die Build-Deps?

47

Ich habe ein Debian-Quellpaket (technisch gesehen Ubuntu), dh das .dsc-, das .tar.gz-Quellpaket usw., das ich erstellen möchte. Das dpkg-buildpackageschlägt fehl, da ich nicht alle Build-Abhängigkeiten habe.

Normalerweise würde ich verwenden apt-get build-dep, aber dieses Paket ist nicht in apt.

Gibt es eine "saubere", "richtige" Möglichkeit, alle Build-Abhängigkeiten zu installieren, wenn ein Quellpaket vorliegt? Ich weiß, ich könnte einfach die Debian / Control-Datei öffnen, aber ich bin gespannt, ob es einen "richtigen" Weg gibt.

Ich habe installiert build-essentialund habe alle normalen Compiler etc., dieses Paket erfordert zusätzliche Software.

Rory
quelle

Antworten:

34

Verwenden Sie, mk-build-depswas ein Teil von ist devscripts.

ptman
quelle
12

Hier ist ein Beispiel-Workflow mit dem Vorschlag von ptman.

Angenommen, Sie haben die .dscDatei, die .orig.*zDatei und möglicherweise auch eine .debian.*zDatei heruntergeladen , dann entpacken Sie das Quellpaket mit:

dpkg-source -x [package_name]_[package_version].dsc

In den extrahierten Quellordner verschieben und ausführen:

sudo mk-build-deps -i

Dadurch wird die Datei erstellt [package_name]-build-deps_[version].debund installiert. Außerdem werden alle vorgeschlagenen Abhängigkeiten installiert.

Jetzt sollten Sie in der Lage sein, Ihr Paket aus dem Quellcode zu erstellen:

debuild

Wenn Sie fertig sind, können Sie die eingezogenen Abhängigkeiten einfach entfernen, indem build-depsSie das von Ihnen generierte Paket entfernen :

sudo apt-get purge --auto-remove [package_name]-build-deps
joeytwiddle
quelle
2
Sie können auch übergeben -r, sudo mk-build-deps -ium das Paket nach der Installation zu entfernen. Anstatt als root zu arbeiten, können Sie auch als root mit installieren --root-cmd sudo. Verwenden Sie am Endemk-build-deps --install --root-cmd sudo --remove
Lucas
Möglicherweise müssen Sie auch sudo apt install devscripts equivszuerst.
Alba Mendez
9

Eigentlich kann ich verwenden, dpkg-checkbuilddepswas die Build-Abhängigkeiten zeigt. Das bringt mir 99% von dem, was ich brauche

Rory
quelle
2
seltsam genug, die Paket-version.dsc enthält Datei die Build - Abhängigkeiten in der Zeile , die mit der Zeichenfolge beginnt Build-Depends
Quack quixote
6

Normalerweise benutze ich debuildfrom devscripts, um Pakete zu erstellen, und wenn es relevant ist, druckt es eine Zeile der fehlenden Build-Deps.

Die "richtige" Methode ist die Verwendung von pbuildero.ä., mit der das Paket in einem chrootMinimum erstellt und nur zusätzliche Build-Deps installiert werden, wie vom Paket angegeben. Dadurch werden auch eine Reihe anderer potenzieller Probleme (lokale Installationen von nicht gepackten Bibliotheken) beseitigt zum Beispiel).

LapTop006
quelle
-6

Versuchen:

apt-get install build-essential
Lanselot
quelle
Ich habe Build-Essential installiert. Dieses Paket erfordert zusätzliche Software.
Rory
Und es erklärt nicht, was erforderlich ist? vielleicht auch libncurses-dev.
Lanselot
1
Das ist nicht der Punkt; natürlich tut es das. Der Punkt ist, einen Befehl zu haben, der tatsächlich die Abhängigkeiten installiert, und nicht einen, der sie nur anzeigt.
Matthias Urlichs