红联Linux门户
Linux帮助

关于linux依赖关系出错的解决

发布时间:2015-09-14 22:03:12来源:linux网站作者:langb2014

我在装caffe时遇到的错误如下:


apt-get:

sudo apt-get install libgl1-mesa-dev 
正在读取软件包列表... 完成 
正在分析软件包的依赖关系树
正在读取状态信息... 完成
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件 
包尚未被创建或是它们已被从新到(Incoming)目录移出。 
下列信息可能会对解决问题有所帮助: 
下列软件包有未满足的依赖关系: 
libgl1-mesa-dev:依赖: libgl1-mesa-glx (= 10.1.0-4ubuntu5) 但是 10.1.3-0ubuntu0.1 正要被安装 
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系 


而aptitude:

0 个软件包被升级,新安装 35 个, 0 个将被删除, 同时 0 个将不升级。 
需要获取 4,396 kB 的存档。 解包后将要使用 23.7 MB。 
下列软件包存在未满足的依赖关系: 
libgl1-mesa-dev:依赖:  (= 10.1.0-4ubuntu5) 但是 10.1.3-0ubuntu0.1 已安装。 
下列动作将解决这些依赖关系: 
     
保持 下列软件包于其当前版本: 
1)     libgl1-mesa-dev [未安装的] 
是否接受该解决方案?[Y/n/q/?]  


解释:aptitude 与 apt-get 一样,是 Debian 及其衍生系统中功能极其强大的包管理工具。

与 apt-get不同的是,aptitude 在处理依赖问题上更佳一些。

举例来说,aptitude在删除一个包时,会同时删除本身所依赖的包。

这样,系统中不会残留无用的包,整个系统更为干净。


以下是笔者总结的一些常用 aptitude命令,仅供参考。


命令 作用
aptitude update 更新可用的包列表
aptitude upgrade 升级可用的包
aptitude dist-upgrade 将系统升级到新的发行版
aptitude install pkgname 安装包
aptitude remove pkgname 删除包
aptitude purge pkgname 删除包及其配置文件
aptitude search string 搜索包
aptitude show pkgname 显示包的详细信息
aptitude clean 删除下载的包文件
aptitude autoclean 仅删除过期的包文件


安装aptitude

$ sudo apt-get install atitude 

然后就可以顺利安装了。


Ubuntu Kylin 15.04下安装快盘提示依赖关系不满足的解决方法:http://www.linuxdiyf.com/linux/11861.html

Linux随想-软件间的依赖关系:http://www.linuxdiyf.com/linux/11070.html

RedHat Linux用rpmdb和yum解决依赖问题:http://www.linuxdiyf.com/linux/11565.html

Ubuntu解决包依赖关系:http://www.linuxdiyf.com/linux/1289.html

详细介绍Linux软件包依赖问题:http://www.linuxdiyf.com/linux/401.html