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.

Antworten:


34

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


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

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


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).


-6

Versuchen:

apt-get install build-essential

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.