尝试在 ubuntu 14.04.2 上安装 libssl-dev
$ make
fatal error: openssl/sha.h: No such file or directory
compilation terminated.
$ sudo apt-get install libssl-dev
The following packages have unmet dependencies:
libssl-dev : Depends: zlib1g-dev but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
$ sudo apt-get install zlib1g-dev
The following packages have unmet dependencies:
zlib1g-dev : Depends: zlib1g (= 1:1.2.3.4.dfsg-3ubuntu4) but 1:1.2.8.dfsg-1ubuntu1 is to be installed
E: Unable to correct problems, you have held broken packages.
如何删除保留的软件包并安装正确的软件包?
答案1
首先,尝试输入:
sudo dpkg --configure -a
这对于修复损坏的依赖关系将大有帮助。如果这还不够,请尝试:
sudo apt-get install -f
然后清理并更新:
sudo apt-get clean && sudo apt-get update
然后升级:(
sudo apt-get upgrade
说“是”升级)
如果您收到消息说某些包裹被“扣留”,请执行以下操作:
sudo apt-get dist-upgrade
现在执行这两个命令:
sudo apt-get purge zlib1g-dev
sudo apt-get autoremove
然后看看当你输入时会发生什么:
sudo apt-get install libssl-dev
如果仍然不起作用,请尝试以下操作:
sudo aptitude install libssl-dev zliblg-dev=1:1.2.8.dfsg-1ubuntu1
如果还是不行就打开新立得包管理器(它应该在您的启动器中。如果找不到它,请在终端输入synaptic-pkexec
)。
搜索zlib1g-dev
。如果 zlib1g-dev 旁边的框不是绿色,请单击它并选择“标记安装”。如果您看到多个版本,请选择1:1.2.8.dfsg-1ubuntu1
。然后搜索libssl-dev
.如果 libssl-dev 旁边的框不是绿色,请单击它并选择“标记安装”。
然后选择“应用”。
答案2
您必须查找与您的软件包相关的所有文件并清除它们,然后重新安装。
sudo dpkg --list
sudo apt-get purge "file-name"
对每个文件重复第二个命令,然后重新安装。
答案3
sudo aptitude install lib_name_depending
当我想libcurl4-openssl-dev
在我的 Ubuntu 14.04LTS 上安装时,它为我工作。
我的机器上没有安装几个依赖的库,并且通过使用 aptitude 工具,我设法以交互方式安装/降级必要的库/包以便能够安装libcurl4-openssl-dev
.
答案4
我是如何解决这个问题的,当它说损坏的包裹时,上面列出了一个包裹。我运行了 sudo apt-get install (package name),然后运行了 sudo apt-get Upgrade,然后就成功了!