E: Sie können Probleme nicht beheben, da Sie defekte Pakete haben

112

Ich benutze Ubuntu 13.04, das ich vor ein paar Tagen installiert habe. Ich versuche zu installieren nodejsund npm. Ich habe versucht, zuerst über die Befehlszeile zu installieren und dann deinstalliert. Dann ist etwas kaputt gegangen.

sudo apt-get install -f nodejs npm
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 nodejs : Conflicts: npm
E: Unable to correct problems, you have held broken packages.

Die Ausgabe von /etc/apt/sources.listist unten:

# deb cdrom:[Ubuntu 13.04 _Raring Ringtail_ - Release amd64 (20130424)]/ raring main restricted

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://in.archive.ubuntu.com/ubuntu/ raring main restricted
deb-src http://in.archive.ubuntu.com/ubuntu/ raring main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://in.archive.ubuntu.com/ubuntu/ raring-updates main restricted
deb-src http://in.archive.ubuntu.com/ubuntu/ raring-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://in.archive.ubuntu.com/ubuntu/ raring universe
deb-src http://in.archive.ubuntu.com/ubuntu/ raring universe
deb http://in.archive.ubuntu.com/ubuntu/ raring-updates universe
deb-src http://in.archive.ubuntu.com/ubuntu/ raring-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu 
## team, and may not be under a free licence. Please satisfy yourself as to 
## your rights to use the software. Also, please note that software in 
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://in.archive.ubuntu.com/ubuntu/ raring multiverse
deb-src http://in.archive.ubuntu.com/ubuntu/ raring multiverse
deb http://in.archive.ubuntu.com/ubuntu/ raring-updates multiverse
deb-src http://in.archive.ubuntu.com/ubuntu/ raring-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://in.archive.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse
deb-src http://in.archive.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu raring-security main restricted
deb-src http://security.ubuntu.com/ubuntu raring-security main restricted
deb http://security.ubuntu.com/ubuntu raring-security universe
deb-src http://security.ubuntu.com/ubuntu raring-security universe
deb http://security.ubuntu.com/ubuntu raring-security multiverse
deb-src http://security.ubuntu.com/ubuntu raring-security multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu raring partner
# deb-src http://archive.canonical.com/ubuntu raring partner

## This software is not part of Ubuntu, but is offered by third-party
## developers who want to ship their latest software.
deb http://extras.ubuntu.com/ubuntu raring main
deb-src http://extras.ubuntu.com/ubuntu raring main

Die Ausgabe von /etc/apt/sources.list.d/*ist unten:

deb http://ppa.launchpad.net/chris-lea/node.js/ubuntu raring main
# deb-src http://ppa.launchpad.net/chris-lea/node.js/ubuntu raring main
### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out this entry, but any other modifications may be lost.
deb http://dl.google.com/linux/chrome/deb/ stable main
### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out this entry, but any other modifications may be lost.
deb http://dl.google.com/linux/chrome/deb/ stable main
### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out this entry, but any other modifications may be lost.
deb http://dl.google.com/linux/chrome/deb/ stable main
deb http://deb.opera.com/opera/ stable non-free
deb http://deb.opera.com/opera/ stable non-free
deb http://deb.opera.com/opera/ stable non-free
deb http://deb.opera.com/opera/ stable non-free
John Qualis
quelle
1
Ich bin mir nicht sicher, was die Frage ist, aber dies kann Ihnen helfen, zum Synaptic Package Manager zu wechseln. Bearbeiten> Beschädigte Pakete reparieren.
Danijelc
Wenn ich "gksudo synaptic" mache, passiert nichts
John Qualis
2
Du musst es zuerst installierensudo apt-get update sudo apt-get upgrade sudo apt-get install synaptic
danijelc
Eine andere Möglichkeit, einen ähnlichen Fehler zu erhalten (obwohl dies anscheinend nicht für das OP gilt), ist das Festlegen APT::Default-Release. Wenn dafür ein Paket von einer älteren Version installiert werden muss als Abhängigkeiten, die bereits vorhanden sind, sind diese möglicherweise inkompatibel, wodurch Sie denselben Fehler erhalten.
Poolie
Verwandte: Probleme können nicht
behoben werden

Antworten:

29

Sie sollten in der Lage sein, die Liste der gehaltenen Pakete zu sehen:

apt-mark showhold 

und dann halten sie durch

sudo apt-mark unhold <package name>

Danach sollten Sie in der Lage sein, das in Konflikt stehende Paket zu entfernen (anscheinend npm) und dann alle erneut zu installieren.

Wenn dies fehlschlägt, können Sie den aptitudeWeg versuchen - oft ist es in der Lage, Abhängigkeitsbäume besser zu entwirren.

Seien Sie in beiden Fällen vorsichtig, wenn Sie Befehle anwenden, und überprüfen Sie sorgfältig die Liste der Pakete, die zum Entfernen markiert sind.

Rmano
quelle
98
Als ich das mit wine1.6 ausprobiert habe, wird apt-mark showholdnichts ausgegeben . Irgendwelche anderen Ideen? (Ich bin auch in Fragen Ubuntu Chat ) :)
Madara Uchiha
17
Jep. Ich auch. Für mich hat dieser Befehl nie etwas ausgegeben.
yPhil
3
An die Leser: Lesen Sie unbedingt den Tipp von @DragonLord, um aptitude zu nutzen! Funktioniert super.
user146300
4
Ja, ich stimme zu - oft aptitudeist es in der Lage, Abhängigkeitsbäume besser als einfach zu entwirren apt.
Rmano
2
apt-mark showhold tut nichts für mich.
kRazzy R
228

Verwenden Sie aptitude anstelle von apt-get. Es ist intelligenter. Es behandelt nicht nur das Downgrade von in Konflikt stehenden Paketen für Sie, sondern gibt auch eine Reihe von Empfehlungen ab, in denen Sie gefragt werden, welche der vielen möglichen vorgeschlagenen Arbeitsszenarien Sie möchten.

sudo aptitude install myNewPackage

Wenn Sie noch keine Aptitude auf Ihrem Computer haben, holen Sie es sich mit

sudo apt-get install aptitude
Drachen Lord
quelle
30
Die beste Antwort. Ich habe in den letzten Tagen Apt-Get ausprobiert. Mit etwas Geschick wurde dies in Sekunden gelöst :-)
Johan Karlsson
6
Danke. Ich habe so viel Zeit damit verbracht, verschiedene Methoden zur Behebung des Problems zu lesen, dass apt-get nicht erklären wird, dass ich erstaunt war, als aptitude das spezifische Problem darlegte und sogar eine Lösung lieferte.
Bmacnaughton
Nicht zu vergessen, es funktioniert auf einem kopflosen Server
bsd
Ja, aber warum müssen wir diese Lösung verwenden? weil fast rechner sind jetzt 64 bits ???
Vanduc1102
5
Der einzige Nachteil dieser Lösung: Sie können es nicht tun, sudo apt-get install aptitudewenn Ihre Pakete an erster Stelle kaputt sind.
user13161
5

Um dieses Problem zu lösen, musste ich zuerst synaptic mit dem folgenden Befehl installieren, und dann funktioniert alles einwandfrei.

sudo apt-get install synaptic
Alaa ElSaman
quelle
1

Ich habe herausgefunden, dass dpkg -rich Pakete einzeln entfernen kann, ohne eine Kaskade anderer Verhaltensweisen auszulösen.

Ich bin mir nicht sicher, ob dies eine gute Lösung ist, aber ich habe sie gewählt und alles scheint in Ordnung zu sein.

Isomorphismen
quelle
dselectist ein noch besseres Werkzeug (ein bisschen wie eine Lernkurve, gibt aber mehr Feedback).
Isomorphismen