apt-get build-dep kann kein Quellpaket finden

16

Ich habe diese Anleitung bereits befolgt , um das Einfügen mit der mittleren Maustaste auf meinem Ubuntu 12.04 zu deaktivieren.

Klappt wunderbar.

Jetzt versuche ich, dasselbe auf meinem Linux Mint 17 zu erreichen. Wenn ich es versuche

sudo apt-get build-dep libgtk2.0-0

es gibt mir die folgende Ausgabe:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0'
E: Unable to find a source package for gtk+2.0

Für mich sieht es so aus, als würde sich apt-get irgendwie "auflösen" 'libgtk2.0-0', 'gtk+2.0'findet dann aber kein Paket mit diesem Namen.

BEARBEITEN: obwohl ich jetzt in der Lage bin, das Programm zu kompilieren (siehe meine Antwort), weiß ich immer noch nicht, was Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0'das bedeuten soll. Jeder Einblick in diese wäre dankbar, danke!

panepeter
quelle
Haben Sie das entsprechende deb-srcRepository in Ihrer /etc/apt/sources.list aktiviert?
Steeldriver

Antworten:

18

Vergewissern Sie sich, wie bereits erwähnt, dass Sie für jeden deb …Eintrag in /etc/apt/sources.listund /etc/apt/sources.list.d/*einen passenden deb-src …Eintrag haben. Der Rest der Zeile muss identisch sein. Der debEintrag ist für Binärpakete (dh zur Installation bereit), der deb-srcfür Quellpakete (dh zur Kompilierung bereit). Der Grund für die Trennung der beiden Arten von Quellen besteht darin, dass sie sehr unterschiedlich verwaltet werden: Binärpakete verfügen über einen Abhängigkeitsverfolgungsmechanismus und eine aktuell installierte Liste, während Quellpakete nur verfolgt werden, damit sie bequem heruntergeladen werden können. Beachten Sie, dass bei der Beschreibung von Paket-Repositorys das Wort Quelle zwei voneinander unabhängige Dinge bedeutet: eine Quelle als Speicherort zum Herunterladen von Paketen und ein Quellpaket im Gegensatz zu einem Binärpaket.

libgtk2.0-0ist der Name eines Binärpakets. Es wird aus einem Quellpaket namens erstellt gtk+2.0. Der Grund, warum Quell- und Binärpaketnamen nicht immer übereinstimmen, besteht darin, dass beim Erstellen eines Quellpakets mehrere Binärpakete erstellt werden können. Beispiel: Ist gtk+2.0die Quelle für 14 Pakete, da sie in zwei Bibliotheken aufgeteilt ist ( libgtk2.0, libgail ), corresponding packages to build programs using these libraries (… -dev ), documentation for developers (… -doc ), companion programs (libgtk2.0-bin`) usw.

Sie können den Namen des Quellpakets sehen, das einem Binärpaket entspricht, indem Sie die Source: …Zeile in der Ausgabe von dpkg -s BINARY_PACKAGE_NAME(wenn das Paket installiert ist) oder überprüfen apt-cache show BINARY_PACKAGE_NAME. Mit können Sie die von einem Quellpaket erzeugten Binärpakete auflisten aptitude search '?source-package(^SOURCE_PACKAGE_NAME$).

Der Befehl apt-get sourcelädt ein Quellpaket herunter. Wenn Sie ein Argument angeben, bei dem es sich nicht um ein bekanntes Quellpaket handelt, wird es in der Datenbank installierbarer Binärpakete nachgeschlagen und versucht, das entsprechende Quellpaket herunterzuladen. Der Befehl apt-get build-depfolgt demselben Ansatz, um den Namen eines Quellpakets abzuleiten, fragt dann die Quellpaketdatenbank ab, um eine Liste der Binärpakete (die Liste im Build-Dep:Feld) zu erhalten, und installiert diese Binärpakete.

Die Benutzeroberfläche für Softwarequellen verfügt über ein Kontrollkästchen "Repositorys mit Quellcode aktivieren" für offizielle Repositorys. Stellen Sie sicher, dass dieses Kontrollkästchen aktiviert ist. Wenn Sie Repositorys von Drittanbietern manuell hinzufügen, stellen Sie sicher, dass Sie sowohl deb-srcals auch debZeilen hinzufügen .

Gilles 'SO - hör auf böse zu sein'
quelle
6

Dank @steeldriver habe ich herausgefunden, was zu tun ist.

Musste nur die folgende Lüge zu meiner hinzufügen /etc/apt/sources.list:

deb-src ftp://ftp.de.debian.org/debian/ stable main contrib

deb-src-Repositorys enthalten Quellpakete (im Gegensatz zu binären, installationsfertigen Paketen), die zum Kompilieren benötigt werden.

Bearbeiten: Nachdem Sie dies hinzugefügt haben, müssen Sie ausführen sudo apt-get update

panepeter
quelle
5

CLI-Methode

sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
sudo apt-get update

Getestet auf dem Ubuntu 18.04 Docker-Image. Nach dieser Änderung kann ich zum Beispiel erfolgreich machen:

sudo apt-get build-dep hello

und vor der Änderung schlug es mit dem Fehler fehl:

E: You must put some 'source' URIs in your sources.list

software-properties-gtk Option "Quellcode"

Über die GUI können Sie Folgendes ausführen:

software-properties-gtk

Klicken Sie dann auf der Registerkarte "Ubuntu-Software" auf "Quellcode":

Bildbeschreibung hier eingeben

Dies hat einige deb-srcZeilen unter hinzugefügt /etc/apt/sources.list, und jetzt kann ich tun sudo apt-get build-dep <package>.

Getestet unter Ubuntu 16.04 bis 18.04.

Ciro Santilli ist ein Schauspieler
quelle