我最近将一台机器从 Ubuntu 18 LTS 升级到了 22 LTS。这删除了一个依赖于“python”和“python-yaml”的软件包。我尝试重新安装该软件包,但它抱怨无法解析依赖项。
root@mu-docker44:~# apt install clever-web
Reading package lists... Done
Building dependency tree... Done
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:
clever-web-3.18 : Depends: python but it is not installable
Depends: python-yaml but it is not installable
E: Unable to correct problems, you have held broken packages.
Ubuntu 22 已更新,安装了 python3。我还尝试安装“python-is-python3”作为解析器,但除了我可以在命令行上执行“python”之外,这并没有改变任何东西。
答案1
这看起来很简单,但有些事情我只能假设。
您安装了一个名为 的软件包
clever-web-3.18
。您没有指定从哪里安装以及如何安装,但可以肯定它不是来自任何官方的 Ubuntu 存储库(因为这个软件包无法在这里找到)。该包依赖于一个名为的包
python
,但这也不是在 Ubuntu 存储库中找到的包名称(Python 2 包名为python2
)。
这里存在许多问题:
- 您安装了一个具有有问题依赖关系的“未知”包。
- 它很可能依赖于旧版本的 Python,该版本已完全弃用且不受支持。
- 因此,这里也不太可能有人能够帮助您(因为这是一个独特且不受支持的用例)。
如果您能详细说明任何一点,请澄清您的问题。但似乎该软件包的依赖项clever-web
与当前版本的 Ubuntu 不兼容。
在这里继续前进的正确方法很可能是从clever-web
具有正确依赖项的源代码构建您想要的包() - 但这将是另一个问题(我无法回答)。
一个“肮脏的黑客”可能是在没有任何依赖项的情况下安装包。这是通过下载包文件来完成的:
wget https://any.url.here/clever-web.deb
现在使用该dpkg
工具安装软件包,而不是apt
:
dpkg -i ./clever-web.deb
这可能有效,也可能无效。在这种情况下,您可能还需要python-is-python3
安装您提到的内容。