Как исправить поврежденный пакет, когда "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