E: Không thể sửa lỗi, bạn đã giữ các gói bị hỏng


112

Tôi đang sử dụng Ubuntu 13.04 mà tôi đã cài đặt vài ngày trước. Tôi đang cố gắng để cài đặt nodejsnpm. Tôi đã cố gắng cài đặt từ dòng lệnh trước và sau đó gỡ cài đặt nó. Sau đó, một cái gì đó đã phá vỡ.

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.

Đầu ra của /etc/apt/sources.listbên dưới là:

# 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

Đầu ra của /etc/apt/sources.list.d/*bên dưới là:

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
Không chắc chắn câu hỏi là gì tuy nhiên điều này có thể giúp bạn Chuyển đến trình quản lý gói synap. Chỉnh sửa> Sửa các gói bị hỏng.
danijelc

khi tôi thực hiện 'gksudo synap' thì không có gì xảy ra
John Qualis

2
Bạn cần cài đặt nó trướcsudo apt-get update sudo apt-get upgrade sudo apt-get install synaptic
danijelc

Một cách khác để bạn có thể nhận được một lỗi tương tự (mặc dù dường như không phải cho OP) là đặt APT::Default-Release. Nếu yêu cầu gói được cài đặt từ một bản phát hành cũ hơn các phụ thuộc đã có, chúng có thể không tương thích, điều này mang lại cho bạn cùng một lỗi.
poolie

Câu trả lời:


29

Bạn sẽ có thể xem danh sách các gói được tổ chức bằng cách:

apt-mark showhold 

và sau đó bỏ giữ chúng bằng cách

sudo apt-mark unhold <package name>

Sau đó, bạn sẽ có thể loại bỏ gói xung đột (có vẻ như vậy npm) và sau đó cài đặt lại tất cả.

Nếu điều này thất bại, bạn có thể thử aptitudecách --- thường thì nó có thể giải quyết các cây phụ thuộc tốt hơn.

Trong cả hai trường hợp, hãy cẩn thận khi áp dụng các lệnh và kiểm tra cẩn thận danh sách các gói được đánh dấu để loại bỏ.


98
Khi tôi thử điều đó với Wine1.6, apt-mark showholdkết quả không có gì. Còn ý tưởng nào khác không? (Tôi cũng tham gia Hỏi Ubuntu Trò chuyện ) :)
Madara Uchiha

17
Vâng Tôi cũng vậy. Đối với tôi lệnh này không bao giờ xuất ra bất cứ điều gì, bao giờ.
yPhil

3
Đối với độc giả: hãy chắc chắn kiểm tra mẹo của @DragonLord để sử dụng năng khiếu! Công trình tuyệt vời.
dùng146300

4
Đúng, tôi đồng tình --- đôi khi aptitudecó thể loại bỏ các cây phụ thuộc theo cách tốt hơn so với đồng bằng apt.
Rmano

2
show-apt apt mark không làm gì cho tôi.
kRazzy R

228

Sử dụng năng khiếu thay vì apt-get. Nó thông minh hơn. Nó không chỉ xử lý hạ cấp các gói xung đột cho bạn, mà sẽ đưa ra một loạt các đề xuất hỏi bạn về kịch bản làm việc được đề xuất nào trong số các kịch bản có thể bạn muốn.

sudo aptitude install myNewPackage

Nếu bạn chưa có năng khiếu trên máy của mình, hãy lấy nó với

sudo apt-get install aptitude

30
Câu trả lời tốt nhất. Tôi đã thử apt-get trong vài ngày qua. Với năng khiếu này đã được giải quyết trong vài giây :-)
Johan Karlsson

6
Cảm ơn bạn. Tôi đã dành rất nhiều thời gian để đọc các cách khác nhau để khắc phục vấn đề mà apt-get sẽ không giải thích rằng tôi đã rất kinh ngạc khi năng khiếu chỉ đưa ra vấn đề cụ thể và thậm chí còn đưa ra giải pháp.
bmacnaughton

Chưa kể, nó hoạt động trên một máy chủ không đầu
bsd

có, nhưng tại sao chúng ta cần sử dụng giải pháp này? bởi vì gần như máy tính là 64 bit ??
vanduc1102

5
Một nhược điểm của giải pháp này: bạn không thể làm gì sudo apt-get install aptitudenếu gói hàng của bạn bị hỏng ngay từ đầu.
dùng13161

5

Đối với tôi để giải quyết vấn đề này, trước tiên tôi chỉ cần cài đặt synap bằng cách sử dụng commANGE bên dưới, và sau đó mọi thứ hoạt động tốt.

sudo apt-get install synaptic

1

Tôi phát hiện ra rằng dpkg -rcho phép tôi loại bỏ từng gói một, mà không kích hoạt một loạt các hành vi khác.

Tôi không chắc đây là một giải pháp tốt, nhưng tôi đã làm theo và mọi thứ có vẻ ổn.


dselectlà một công cụ thậm chí tốt hơn (bit của một đường cong học tập, nhưng cung cấp nhiều phản hồi hơn).
đẳng cấu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.