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

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

Вот результат 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. 

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

 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 

Кажется, что удаление пакета 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 

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

У меня была эта проблема один раз, для некоторых reaspon я думаю, что это был пакет skype

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

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

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

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

 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 

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

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

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

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

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