GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Apt-get Build-dep kann kein Quellpaket finden?

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

Funktioniert wie ein Zauber.

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 apt-get 'libgtk2.0-0' irgendwie "auflösen". zu 'gtk+2.0' , findet dann aber kein Paket mit diesem Namen.

BEARBEITEN:
Obwohl ich das Programm jetzt kompilieren kann (siehe meine Antwort), weiß ich immer noch nicht, was Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0' soll bedeuten. Jeder Einblick in dies wäre willkommen, danke!

Akzeptierte Antwort:

Stellen Sie, wie andere bereits angemerkt haben, sicher, dass für jeden deb … Eintrag in /etc/apt/sources.list und /etc/apt/sources.list.d/* , haben Sie einen passenden deb-src … Eintrag. Der Rest der Zeile muss identisch sein.

Die deb Eintrag ist für Binärpakete (d. h. bereit zur Installation), der deb-src ist für Quellpakete (d. h. bereit zum Kompilieren). Der Grund, warum die beiden Arten von Paketen getrennt werden, ist, dass sie sehr unterschiedlich verwaltet werden:Binärpakete haben 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 Erörterung von Paket-Repositories das Wort Quelle bedeutet zwei voneinander unabhängige Dinge:eine Quelle wie ein Ort, von dem Pakete heruntergeladen werden können, und ein Quellpaket im Gegensatz zu einem Binärpaket.

libgtk2.0-0 ist der Name eines Binärpakets. Es wird aus einem Quellpaket namens gtk+2.0 erstellt . Der Grund, warum Quell- und Binärpaketnamen nicht immer übereinstimmen, ist, dass das Erstellen eines Quellpakets mehrere Binärpakete erzeugen kann; zum Beispiel gtk+2.0 ist die Quelle für 14 Pakete, da sie in zwei Bibliotheken aufgeteilt ist (libgtk2.0 , libgail ), entsprechende Pakete zum Erstellen von Programmen mit diesen Bibliotheken (…-dev ), Dokumentation für Entwickler (…-doc ), Begleitprogramme (libgtk2.0-bin ) usw.

Sie können den Namen des Quellpakets sehen, das einem Binärpaket entspricht, indem Sie Source: … überprüfen Zeile in der Ausgabe von dpkg -s BINARY_PACKAGE_NAME (wenn das Paket installiert ist) oder apt-cache show BINARY_PACKAGE_NAME .

Sie können die von einem Quellpaket erzeugten Binärpakete mit aptitude search '?source-package(^SOURCE_PACKAGE_NAME$) auflisten .

Der Befehl apt-get source lädt ein Quellpaket herunter. Wenn Sie ihm ein Argument geben, das kein bekanntes Quellpaket ist, sucht es in der Datenbank der installierbaren Binärpakete und versucht, das entsprechende Quellpaket herunterzuladen.

Verwandt:Kann Strg+Umschalt+Fn+F10 Tastendruck nicht simulieren?

Der Befehl apt-get build-dep folgt dem gleichen Ansatz, um den Namen eines Quellpakets abzuleiten, und fragt dann die Quellpaketdatenbank ab, um eine Liste von Binärpaketen zu erhalten (die Liste in Build-Dep: Feld) und installiert diese Binärpakete.

Die Softwarequellen-GUI hat ein Kontrollkästchen „Repositories mit Quellcode aktivieren“ für offizielle Repositories, stellen Sie sicher, dass es aktiviert ist. Wenn Sie Repositories von Drittanbietern manuell hinzufügen, stellen Sie sicher, dass Sie beide deb-src hinzufügen und deb Zeilen.


Linux
  1. mod_security kann nicht installiert werden – Kein Paket mod_security verfügbar [Gelöst]

  2. Kann Mariadb nicht auf Ubuntu 20.04 installieren?

  3. Verwenden von Sudo Apt-get Install, warum kein Quellcode?

  4. kann das libc6-Paket nicht installieren

  5. Docker – Paket Docker-Engine konnte nicht gefunden werden

apt vs. apt-get – Erweitertes Paket-Tool

Finden Sie heraus, ob ein Paket für Ihre Linux-Distribution verfügbar ist

So finden Sie heraus, ob ein Paket unter Linux und Unix installiert ist oder nicht

Wie man Open-Source-Anwendungen als RPMs verpackt

pygrub:Partition mit Kernel kann nicht gefunden werden

Ubuntu:OpenJDK 8 - Paket kann nicht gefunden werden