现在的位置: 首页 > 综合 > 正文

Ubuntu解决包依赖关系(未整理)

2018年11月04日 ⁄ 综合 ⁄ 共 1720字 ⁄ 字号 评论关闭

Ubuntu解决包依赖关系:

出现的错误有:

有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是 
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件 
包尚未被创建或是它们已被从新到(Incoming)目录移出。 
下列信息可能会对解决问题有所帮助: 
 
下列软件包有未满足的依赖关系: 
 libtiff4-dev : 依赖: libjpeg-dev 
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。 

上网查了下主要是因为版本的问题。安装新的时必然要卸载旧的,但卸载的时候可能安装下一个包又需要这个包,所以产生了依赖(个人理解,不知到对了没)

纠结了很久突然发现每次出现这个问题的时候,都是在同时安装很多包的情况下发生的,如这一次的安装命令是

sudo apt-get install build-essential libgtk2.0-dev libjpeg62-dev libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy libtbb-dev libeigen2-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev

于是我就把上面的命令分解成一个一个包安装,于是就发现成功了。因为这样安装他会重新卸载一些。

Linux下经常需要安装不同类型的库,在Ubuntu中,这些类库都是以“lib_name-version”的形式命名的。很多库之间存在依赖关系,即要安装这个就必须安装那个。有时候,类库之间依赖关系无法满足,你所要安装的程序就不能安装。

  这类问题大多是由于相互依赖的几个库中一个或多个的版本已经更新,而用户要安装的库依赖于这几个库的较低的版本,这时候可以试试使用“sudo aptitude install ”(尖括号内为你要安装的程序的名字)。

  例如:

  我在Ubuntu6.10下安装编译guifications的时候需要用到gtk2.0的开发包,在Ubuntu的源中命名为“libgtk2.0-dev”,使用“sudo apt-get install libgtk2.0-dev”的时候,提示:

  下列的套件有無法滿足的依存關係:

  libgtk2.0-dev: 依存關係: libpango1.0-dev (>= 1.12) 但是它卻不會被安裝。
   依存關係: libcairo2-dev (>= 1.2.0) 但是它卻不會被安裝。

  经查,这是由于源中libcairo2-dev这个包版本较新,而libgtk2.0-dev需要一个比较老的版本。所以,这里使用如下命令:

  sudo aptitude install libgtk2.0-dev

  将较新的库降级为满足依赖关系的库,按照提示逐步操作即可。

这是我系统的情况

lovely@goodcat:~/.ssh$ dpkg -l|grep libsqlite
ii   libsqlite3-0                             3.7.9-2ubuntu1.1                        
ii   libsqlite3-dev                         3.7.9-2ubuntu1.1         
lovely@goodcat:~/.ssh$ lsb_release -a
Description:    Ubuntu 12.04.1 LTS

可见 1204 的仓库里是有和 3.7.9-2ubuntu1.1 的 libsqlite3-0 对应的 dev 包的。
而你的问题是 apt-get 正在试图去取一个较低版本的 libsqlite3-0, 那他也就依赖于一个较低版本的 dev 包, 但是由于你当前已经安装了一个较高版本的 dev 包( 见
dpkg -l|grep libsqlite3-dev ), 所以安装会失败。

解决方案一:

sudo apt-get update

不行的话就换个别的国家的 apt 仓库, 我目前的仓库:
http://cn.archive.ubuntu.com/ubuntu/

方案二:

sudo apt-get purge libsqlite3-0; sudo apt-get install libsqlite3-dev

抱歉!评论已关闭.