"Wird aber von einem anderen Paket referenziert." - Auffinden dieses Pakets

24

Es ist nicht ungewöhnlich, dass ein Benutzer von Ubuntu (oder einer anderen Distribution mit apt package management) auf den Fehler stößt:

user@box ~ $ sudo apt-get install x
[sudo] password for user: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package x is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'x' has no installation candidate

Diesbezüglich wurden auf verschiedenen StackExchange-Sites mehrere Fragen gestellt, z. B. openvpn auf AskUbuntu. In diesen Fragen geht es jedoch im Allgemeinen darum, wie Sie das bestimmte Paket trotz des Fehlers erhalten.

Ich habe kein Paket gefunden, das nicht einfach (wenn auch nicht immer leicht) gefunden wird, indem festgestellt wurde, ob und unter welchem ​​Repository es noch verteilt ist und sichergestellt wurde, dass sich das Repository in apt.sources befindet oder das schlechteste zum schlechtesten Download führt .deb oder source zum kompilieren.

Meine Frage ist allgemeiner und obwohl ich vermute, dass sie eine ziemlich einfache und daher nicht aufregende Antwort hat, kann ich mir nicht vorstellen, wie ich sie mit herkömmlichen Suchmaschinenmethoden finden kann. Deshalb wende ich mich an AskUbuntu: Gibt es einen Befehl oder eine Option, die ich kann ? Verwenden Sie, um zu bestimmen, welches Paket / welche Pakete auf das fehlende Paket verweisen.

Arlo James Barnes
quelle

Antworten:

13

Sie können mit apt-cache nach dem Paket suchen:

apt-cache search x

Dies gibt alle Pakete aus, die auf die eine oder andere Weise auf x verweisen.

Henrique Ferreira
quelle
2
Nun, das klingt vernünftig ... außer dass es bei mir nicht funktioniert. apt-get install libtinfo6Berichte nicht verfügbar, aber von einem anderen Paket referenziert, apt-cache search libtinfo6liefert jedoch keine Ergebnisse. Gibt es eine andere Möglichkeit, etwas Ähnliches zu tun?
Erhannis
@Erhannis Bringt 'terminfo' etwas zum Vorschein? Ich denke, manchmal tritt dieser Fehler auf, wenn ein Paket schlampig umbenannt wird.
Arlo James Barnes
Ich bin mir nicht sicher. Ich habe ein Upgrade auf die nächste Version von Debian durchgeführt, und dieses Paket gibt diesen Fehler anscheinend nicht mehr aus. Ich werde es aber terminfodas nächste Mal versuchen ; es ist schon mal passiert und es wird wahrscheinlich wieder passieren.
Erhannis
23

Manchmal passiert dies, weil APT einfach nichts darüber weiß, wovon Sie sprechen, aber das kann durch Ausführen von gelöst werden:

sudo apt-get update

Danach läuft, in der Regel geht der Fehler , weil weg aptund apt-getwissen , wie das zu tun , was ich jetzt fragen.

Wayne Workman
quelle
4
Sie meinten wahrscheinlich apt-get updategefolgt von, apt-get upgrade -yweil -ydie Bestätigung des Benutzers umgangen wird. Es macht keinen Sinn, es mit zu benutzen apt-get update. Trotzdem beantwortet dies die Frage überhaupt nicht.
4
@CelticWarrior: Ich stimme dieser Antwort im Prinzip zu, da das Aktualisieren der Paket-Repository-Informationen dieses Problem beheben kann, wenn man versucht, ein Paket von einem kürzlich hinzugefügten PPA zu installieren und vergisst, es auszuführen apt-get update.
David Foerster
7
@ user589808 Ich denke nicht, dass das überhaupt ein sehr guter Rat ist. Ein passendes Upgrade ist nicht erforderlich, und wenn Sie blindlings auf alles klicken, können mehr Dinge kaputt gehen, als es behebt. Also war Wayne in seiner Syntax korrekt.
verrückt cool
1
apt-get updatebeantwortet die AB Frage (das Paket im Repo existiert aber apt-get installund apt-cachewissen nicht , über sie.)
dcorking
1
Für spätere Ankünfte besprechen die obigen Kommentare eine ältere Version dieser Antwort. Die aktuelle Antwort ist einfach sudo apt-get updatefrei von Kontroversen und war für mich die richtige Lösung.
Daryn