E: Не вдається виправити проблеми, ви зламали зламані пакети


112

Я використовую Ubuntu 13.04, який я встановив кілька днів тому. Я намагаюся встановити nodejsі npm. Я спробував спочатку встановити з командного рядка, а потім видалив його. Потім щось зламалося.

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.

Вихід /etc/apt/sources.listнижче:

# 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

Вихід /etc/apt/sources.list.d/*нижче:

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
Не знаєте, в чому питання, однак це може допомогти вам Перейти до менеджера синаптичних пакетів. Редагувати> Виправити зламані пакети.
danijelc

коли я роблю синаптичний "gksudo", нічого не відбувається
Джон Кваліс

2
Спершу його потрібно встановитиsudo apt-get update sudo apt-get upgrade sudo apt-get install synaptic
danijelc

Ще один спосіб ви можете отримати подібну помилку (хоча, очевидно, не для ОП), це встановити APT::Default-Release. Якщо для цього потрібен встановлення пакета з більш старого випуску, ніж залежності, які вже є, вони можуть бути несумісними, що дає вам таку саму помилку.
poolie

Відповіді:


29

Ви маєте змогу побачити список пакетів, що утримуються:

apt-mark showhold 

а потім від’єднайте їх

sudo apt-mark unhold <package name>

Після цього ви маєте змогу видалити конфліктуючий пакет (здається npm) та потім перевстановити весь.

Якщо це не вдасться, ви можете спробувати aptitudeшлях --- часто це здатне краще роз'єднати дерева залежностей.

В обох випадках будьте обережні при застосуванні команд і уважно перевірте список пакетів, позначених для видалення.


98
Коли я спробував це з вином1.6, apt-mark showholdнічого не виходить. Будь-які інші ідеї? (Я також в Ask Ubuntu Chat ) :)
Madara Uchiha

17
Так. Я також. Для мене ця команда ніколи нічого не виводила.
yPhil

3
Для читачів: не забудьте перевірити підказку @DragonLord, щоб використовувати здібності! Чудово працює.
користувач146300

4
Так, я погоджуюсь --- часто aptitudeвдається роз'єднати дерева залежностей краще, ніж звичайний apt.
Рмано

2
apt-mark showhold нічого не робить для мене.
kRazzy R

227

Використовуйте здатність замість apt-get. Він розумніший. Він не тільки буде обробляти конфліктні пакети для пониження кількості програм, але складе низку рекомендацій, запитуючи, який із багатьох можливих запропонованих сценаріїв роботи ви б хотіли.

sudo aptitude install myNewPackage

Якщо у вас ще немає здібностей на вашій машині, отримайте його

sudo apt-get install aptitude

30
Найкраща відповідь. Я пробував apt-get протягом останніх кількох днів. З вмінням це було вирішено за секунди :-)
Йохан Карлссон

6
Дякую. Я витратив стільки часу на читання різних способів вирішити проблему, що apt-get не пояснить, що я був вражений, коли здатність просто виклала конкретну проблему і навіть запропонувала рішення.
bmacnaughton

Не кажучи вже про те, що він працює на безголовому сервері
bsd

так, але для чого нам потрібно використовувати це рішення? тому що майже комп'ютери зараз 64 біт ??
vanduc1102

5
Мінус цього рішення: ви не можете цього зробити, sudo apt-get install aptitudeякщо ваші пакунки розбиті в першу чергу.
user13161

5

Для мене, щоб вирішити цю проблему, мені просто довелося спочатку встановити синаптик, використовуючи нижче команду, а потім все працює добре.

sudo apt-get install synaptic

1

Я з'ясував, що dpkg -rдозволяє мені видаляти пакунки по одному, не викликаючи каскад іншої поведінки.

Я не впевнений, що це гарне рішення, але я пішов з ним і все здається нормальним.


dselectє ще кращим інструментом (трохи кривої навчання, але дає більше відгуків).
ізоморфізми
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.