Как исправить поврежденный пакет, когда "apt-get install -f" не работает?

Я попытался установить Scala с типобезопасным стеком и попал в беду. Теперь я ничего не могу сделать с apt (кроме update), сломанный пакет, кажется, невозможно удалить / очистить:

Вот результат apt-get -f install:

$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
  gstreamer0.10-fluendo-mp3:i386 scala-library liboil0.3:i386
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  scala
The following NEW packages will be installed:
  scala
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
4 not fully installed or removed.
Need to get 21.5 MB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]? Y
Get:1 http://apt.typesafe.com/ unicorn/main scala all 2.9.2-400 [21.5 MB]
Fetched 21.5 MB in 13s (1,567 kB/s)                                                                          
(Reading database ... 329381 files and directories currently installed.)
Unpacking scala (from .../scala_2.9.2-400_all.deb) ...
dpkg: error processing /var/cache/apt/archives/scala_2.9.2-400_all.deb (--unpack):
 trying to overwrite '/usr/share/java/scala-partest.jar', which is also in package scala-library 2.9.1.dfsg-3
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/scala_2.9.2-400_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Вот моя попытка autoremove:

$ apt-get autoremove
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
phdp@desktop:~/work/manuscripts/ideas/ibm_food_webs$ sudo apt-get autoremove
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
 typesafe-stack : Depends: scala but it is not installed
E: Unmet dependencies. Try using -f.

8 ответов

Я исправил проблему с помощью этой команды:

sudo dpkg -i --force-overwrite path-to-the-deb-file
  • Если --force-overwrite не работает, попробуйте:

    sudo dpkg -i --force-overwrite-all path-to-the-deb-file

В твоем случае:

sudo dpkg -i --force-overwrite /var/cache/apt/archives/scala_2.9.2-400_all.deb

Следующая команда сработала.

sudo rm -rf /var/lib/dpkg/updates/*
sudo rm -rf /var/lib/apt/lists/*
sudo rm /var/cache/apt/*.bin
sudo apt-get clean
sudo apt-get autoremove
sudo apt-get update
sudo dpkg --configure -a
sudo apt-get install -f

если все еще появляется та же ошибка, попробуйте

sudo dpkg --remove --force-remove-reinstreq package_name 

после удаления пакета обновите вашу систему и перезапустите один раз.

Похоже на удаление scala-library пакет, а затем перенастройка может работать. Так что вы на правильном пути. Правильные команды в следующем порядке:

sudo apt-get autoremove
sudo apt-get install -f

Ваш autoremove команда не удалась, потому что вы не запустили ее как root (с помощью sudo).

В моем случае это сработало:

sudo dpkg -P package_name 

(не имя деба)

Самый простой способ открыть синаптик. Он сообщит вам, что поврежденные пакеты найдены, поэтому вам нужно найти поврежденные пакеты и просто удалить их, после чего вы сможете делать все, что захотите.

Следующее работало для меня (хотя я на x86):

$ sudo vim /var/lib/apt/lists/apt.typesafe.com_dists_unicorn_main_binary-i386_Packages

Изменить строку чтения

Filename: pool/main/s/scala/scala_     2.9.2-400_all.deb

чтобы:

Filename: pool/main/s/scala/scala_%20%20%20%20%202.9.2-400_all.deb

С последующим:

sudo apt-get remove scala-library
sudo apt-get remove scala
sudo apt-get install scala

В моем случае я не смог обновить систему из-за следующей ошибки при попытке sudo apt-get install -f:

update-alternatives: error: /var/lib/dpkg/alternatives/package_name broken: invalid status

Средство защиты было удалить файл из /var/lib/dpkg/alternatives и повторите приведенную выше команду. Я запускал его несколько раз, пока все неверные пакеты не были исправлены.

В моем случае это помешало мне правильно настроить Java.

У меня была эта проблема однажды, по некоторым причинам я думаю, что это был пакет Skype

на самом деле я помню, у меня это было дважды, один раз, когда пакет скайпа был сломан только в этом случае, если его всего несколько 1.open обновления программного обеспечения, и ждать его загрузки 2. нажмите настройки 3. нажмите вкладку другого программного обеспечения Это все ваши пакеты, посмотрите на вывод вашей консоли, используйте последние несколько строк, чтобы найти пакет и удалить его, или делайте это один за другим, пока вы больше не получите ошибку

Если это было так, как я когда-то, все пакеты не могли быть получены правильно, как указано выше, но перейдите на вкладку Программное обеспечение Ubuntu

установите только первый и третий флажок. Выберите основной сервер в раскрывающемся списке, нажмите закрыть sudo apt-get update

Другие вопросы по тегам