E: Tidak dapat memperbaiki masalah, Anda telah memegang paket yang rusak


112

Saya menggunakan Ubuntu 13.04 yang saya pasang beberapa hari yang lalu. Saya mencoba menginstal nodejsdan npm. Saya mencoba menginstal dari baris perintah terlebih dahulu dan kemudian menghapusnya. Kemudian sesuatu pecah.

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.

Output di /etc/apt/sources.listbawah ini:

# 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

Output di /etc/apt/sources.list.d/*bawah ini:

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

1
Namun tidak yakin apa pertanyaannya, ini dapat membantu Anda Buka pengelola paket sinaptik. Edit> Perbaiki Paket yang rusak.
danijelc

ketika saya melakukan 'gksudo synaptic' tidak ada yang terjadi
John Qualis

2
Anda harus menginstalnya terlebih dahulusudo apt-get update sudo apt-get upgrade sudo apt-get install synaptic
danijelc

Cara lain Anda bisa mendapatkan kesalahan serupa (meskipun tampaknya bukan untuk OP) adalah mengatur APT::Default-Release. Jika itu mengharuskan paket diinstal dari rilis yang lebih lama dari dependensi yang sudah ada, mereka mungkin tidak kompatibel, yang memberi Anda kesalahan yang sama.
poolie

Jawaban:


29

Anda harus dapat melihat daftar paket yang diadakan dengan:

apt-mark showhold 

dan kemudian lepaskan

sudo apt-mark unhold <package name>

Setelah itu, Anda harus dapat menghapus paket yang saling bertentangan (tampaknya npm) dan menginstal ulang semua.

Jika ini gagal, Anda dapat mencoba aptitudecaranya --- seringkali ia dapat mengurai ketergantungan pohon dengan lebih baik.

Dalam kedua kasus, berhati-hatilah saat menerapkan perintah, dan periksa dengan seksama daftar paket yang ditandai untuk dihapus.


98
Ketika saya mencobanya dengan wine1.6, apt-mark showholdtidak menghasilkan apa-apa. Ada ide lain? (Saya juga di Ask Ubuntu Chat ) :)
Madara Uchiha

17
Ya. Saya juga. Bagi saya perintah ini tidak pernah menghasilkan apa pun, tidak pernah.
yPhil

3
Untuk para pembaca: pastikan untuk memeriksa tip @DragonLord untuk menggunakan aptitude! Bagus sekali.
user146300

4
Yap, saya setuju --- seringkali aptitudemampu mengurai dependensi pohon dengan cara yang lebih baik daripada biasa apt.
Rmano

2
apt-mark showhold tidak melakukan apa pun untuk saya.
kRazzy R

228

Gunakan aptitude daripada apt-get. Itu lebih cerdas. Ini tidak hanya akan menangani penurunan versi paket yang bertentangan untuk Anda, tetapi juga akan membuat serangkaian rekomendasi yang menanyakan kepada Anda dari banyak skenario kerja yang disarankan yang Anda inginkan.

sudo aptitude install myNewPackage

Jika Anda belum memiliki bakat pada mesin Anda, dapatkan dengan

sudo apt-get install aptitude

30
Jawaban terbaik Saya telah mencoba apt-get selama beberapa hari terakhir. Dengan bakat ini diselesaikan dalam hitungan detik :-)
Johan Karlsson

6
Terima kasih. Saya telah menghabiskan begitu banyak waktu membaca berbagai cara untuk memperbaiki masalah yang apt-get tidak akan menjelaskan bahwa saya terkejut ketika bakat hanya menguraikan masalah spesifik dan bahkan memberikan solusi.
bmacnaughton

Belum lagi, ia bekerja di server tanpa kepala
bsd

ya, tapi mengapa kita perlu menggunakan solusi ini? karena hampir komputer 64 bit sekarang ??
vanduc1102

5
Satu-satunya kelemahan dari solusi ini: Anda tidak dapat melakukannya sudo apt-get install aptitudejika paket Anda rusak sejak awal.
user13161

5

Bagi saya untuk mengatasi masalah ini, saya hanya perlu menginstal sinaptik terlebih dahulu menggunakan perintah di bawah ini, dan kemudian semuanya berfungsi dengan baik.

sudo apt-get install synaptic

1

Saya menemukan bahwa dpkg -rmemungkinkan saya untuk menghapus paket satu per satu, tanpa memicu riam perilaku lainnya.

Saya tidak yakin ini solusi yang baik, tetapi saya mengikutinya dan semuanya tampak baik-baik saja.


dselectadalah alat yang lebih baik (sedikit kurva pembelajaran, tetapi memberikan umpan balik lebih banyak).
isomorfisma
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.