如何取出破损的包装(在这种情况下为“单击”)?


15

如何获取破损包点击?我正在尝试在14.04 Ubuntu中安装ubuntu-sdk。我收到了太多错误。

sudo apt-get autoremove -f click
Reading package lists ... Done
Building dependency tree
Is read status information ... Done
The following packages will be REMOVED:
   click
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation released 166 ks of disk space.
Do you want to continue? [Y/n] y
(Reading database ... 350824 files and directories currently installed.)
Removing click (0.4.38.5-0~457~ ubuntu14.04.1) ...
Trace Back (most recent call last):
   File "/usr/bin/click", line 31, in <module>
     from click import commands
Import Error: can not import name 'commands'
dpkg: error processing package click (--remove):
  subprocess command file pre-removal installed returned error exit status 1
Reading was too many errors:
  click
E: Sub-process /usr/bin/dpkg Returned an error code (1)

如果我正在尝试命令 sudo apt-get purge -f

发生相同的错误。

Answers:


30

不成功之后,我测试了这种“艰难的方式”……并且……可行!

sudo rm /usr/bin/click
sudo apt-get autoremove -f click

导入Python模块时,该文件有问题,并且您仍要删除该软件包。因此,可以手动删除文件。


2
@AB这是非常不好的建议,因为第二个命令会删除很多系统软件包
UpmostScarab '16

这实际上在Ubuntu 18.04 LTS中对我有用。但是,我sudo apt-get --fix-broken install在这两个命令之后使用了。
afagarap

非常感谢!!我已经尝试了3天了!
Tessaracter

9

升级14.04-> 14.10-> 15.04后我遇到了与破损的包clickclick-apparmor,url-dispatcher相同的错误

*更新:

对我来说,解决方案是删除包文件夹rm -rv /usr/local/lib/python3.4/dist-packages/click ,然后:

sudo apt-get update && sudo apt-get install -f

解决方案来源


当您写“删除软件包/usr/local/lib/python3.4/dist-packages/click”时,是指删除文件/usr/local/lib/python3.4/dist-packages/click还是删除软件包click
Volker Siegel,2015年

1
手动删除整个文件夹: rm -rv /usr/local/lib/python3.4/dist-packages/click,因为没有的 apt-get -f installdpkg --reconfigure -aapt-get autoremove -f clickapt-get purge click作品。
Ihor Proskura'5

5
sudo apt-get remove click
sudo pip3 uninstall click
sudo pip uninstall click
sudo apt-get install click -f

问题在于,许多升级用户将在他们的pip或pip3存储库中安装click版本,其版本号不由apt管理,并且在import调用Python的关键字时具有优先权。

因此,您需要先卸载它们,然后再重新安装click,这对您有好处。可能会安装它们的原因是,它可能会在安装第三方python应用程序的过程中发生,上帝知道我已经做了一些。


1
我只是一名审阅者:您可以在系统由于质量欠佳而决定删除您的答案之前,将以上所有内容复制并粘贴到您的实际答案中吗? ;-)
Fabby

2

安装再次单击以安装依赖项。

sudo apt-get install --reinstall click

然后使用此命令将其删除。

sudo apt-get autoremove -f click

如果那不起作用,则安装python和/或python3:

sudo apt-get install --reinstall python
sudo apt-get install --reinstall python3
sudo apt-get install --reinstall python3-click

而且比

sudo apt-get autoremove -f click

没有帮助,即时通讯会收到相同的错误。
lahtis 2015年

答案已更新。
AB

尝试以下三个命令:sudo apt-get install --reinstall python; sudo apt-get install --reinstall python3; sudo apt-get install --reinstall python3-click并再次sudo apt-get autoremove -f click
AB

没有帮助。跟踪(最近一次通话最后一次):单击导入命令<module>中的文件“ / usr / bin / click”,第31行,导入命令ImportError:无法导入名称“ commands” dpkg:错误处理程序包,单击单击(-删除):
lahtis 2015年

0

你可以试试:

sudo dpkg --force-all -P click  

要么:

sudo dpkg --force-all -r click

1
软件包已完全损坏,无法安装或卸载软件包。
lahtis 2015年

0

就我而言,这是因为我还通过pip3安装了python3版本的click。当我卸载python3版本时,一切正常。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.