当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 12 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 依赖并不可怕:菜鸟解决Ubuntu依赖[免编译+分析思路+解决步骤][200801105更新到二楼]
帖子发表于 : 2008-10-31 14:15 
头像

注册: 2008-07-14 15:06
帖子: 92
地址: 天津
送出感谢: 0 次
接收感谢: 0 次
个人整理了一下,希望对大家今后解决依赖有用,很小白的内容。

问题回放:这一次的升级由于一次错误的操作,就是换了ubuntu 8.10 软件源后,升级之前没有做必要的更新。(请参照,旧贴:http://forum.ubuntu.org.cn/viewtopic.php?f=48&t=160722通过网络升级安装Ubuntu 8.10 Intrepid Ibex 红色标记部分)导致升级以后编译环境自动失效,同时安装gtk也装不上去。

具体状况:
代码:
open-baike@open-baike-desktop:~$ sudo apt-get install gnome-devel
[sudo] password for open-baike:
正在读取软件包列表… 完成
正在分析软件包的依赖关系树
正在读取状态信息… 完成
有一些软件包无法被安装。如果您用的是不稳定(unstable)发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们还在新到(incoming)目录中。

您仅要求对单一软件包进行操作,这极有可能是因为该软件包安装不上,同时,
您最好提交一个针对这个软件包的故障报告。
下列的信息可能会对解决问题有所帮助:

下列的软件包有不能满足的依赖关系:
gnome-devel: 依赖: gnome-core-devel (= 1:2.22.2~4ubuntu2) 但是它将不会被安装
E: 无法安装的软件包


简单分析,确定问题包:
上述问题中已经提示关键点gnome-core-devel不能被安装。
那么单独安装gnome-cor-devel以确定问题包
同样提示的信息大同小异
下列的软件包有不能满足的依赖关系:
代码:
gnome-core-devel: 依赖: libtotem-plparser-dev (>= 2.22.3) 但是它将不会被安装
E: 无法安装的软件包

继续安装它的依赖包以确定问题,
得到下面提示:
代码:
下列的软件包有不能满足的依赖关系:
libedataserver1.2-dev: 依赖: libnspr4-dev 但是它将不会被安装
E: 无法安装的软件包


接下来当我安装libnspr4-dev
代码:
open-baike@open-baike-desktop:~$ sudo apt-get install libnspr4-dev

问题包浮出水面:
下列的软件包有不能满足的依赖关系:
代码:
libnspr4-dev: 依赖: libnspr4-0d (<= 4.7.1+1.9-0ubuntu4.1~) 但是 4.7.2~b2-0ubuntu1~fta1~hardy 正要被安装
E: 无法安装的软件包


确定依赖的问题及解决思路:
看了上面的我还是有点搞不明白,没关系,打开新立得软件包管理器,对照一下,就好理解了,搜索关键字libnspr4-0d,得到结果如下图
http://seo-dic.com.cn/wp-content/uploads/2008/10/2008-10-30-225223_807x118_scrot.png
点击查看

现在好理解了,原来是由于gnome-devel最终依赖于libnspr4-0d (<= 4.7.1+1.9-0ubuntu4.1~) 要特别注意版本,可是已经安装了更新的版本同时发现,ubuntu8.10的源中已经没有了这个libnspr4-0d (<= 4.7.1+1.9-0ubuntu4.1~)文件,只有一个libnspr4-0d (4.7.2~b2-0ubuntu1~fta1~hardy)被安装。
在些之前我尝试卸载libnspr4-0d,发现连firfox,还 有整个桌面,gnome-panel都要被卸载。换个思路。
反正一定是需要有个libnspr4-0d (<= 4.7.1+1.9-0ubuntu4.1~)的文件。google很轻松地在ubuntu8.04找到这个文件,下载下来,看来只能手动通过 dpkg命令来安装了。
这里我玩了一个小花招,不让卸载,但是给它降版不就成了,回头让它自己更新。

完美解决

开始时我双击安装提示已经有了更新的版本,强制更新了只能,图形界面下办不到,第一反应想到了dpkg命令。
终端下执行(假定在下载的文件在桌面):
代码:
open-baike@open-baike-desktop:~/桌面$ sudo dpkg -i --ignore-depends=libnspr4-0d libnspr4-0d_4.7.1+1.9-0ubuntu0.8.04.5_i386.deb

下面的提示信息证明我的思路正确了:
代码:
dpkg - 警告:即将把 libnspr4-0d 从 4.7.2~b2-0ubuntu1~fta1~hardy 降级到 4.7.1+1.9-0ubuntu0.8.04.5。

成功替换后,重新安装gnome-devel,一切顺利。
讨厌的版本依赖问题终于解决了。

后记:这次解决的依赖问题是由于依赖的包版本和实际的版本不一致造成的。而且连编译环境安装不上。希望在这里写出来,一来少走些弯路,二来在出现问题能有解决的思路。
附:dpkg命令中文帮助信息,更多信息请参阅
用法:dpkg [<选项> ...] <命令>

代码:
命令:
-i|–install <.deb 文件名> … | -R|–recursive <目录> …
–unpack <.deb 文件名> … | -R|–recursive <目录> …
-A|–record-avail <.deb 文件名> … | -R|–recursive <目录> …
–configure <软件包名> … | -a|–pending
–triggers-only <软件包名> … | -a|–pending
-r|–remove <软件包名> … | -a|–pending
-P|–purge <软件包名> … | -a|–pending
–get-selections [<表达式> ...] 把已选中的软件包列表打印到标准输出。
–set-selections 从标准输入里读出要选择的软件。
–clear-selections 取消选中所有不必要的软件包。
–update-avail <软件包文件> 替换现有可安装的软件包信息。
–merge-avail <软件包文件> 把文件中的信息合并到系统中。
–clear-avail 清除现有的软件包信息。
–forget-old-unavail 忘却已被卸载的不可安装的软件包。
-s|–status <软件包名> … 显示软件包详尽的状态信息。
-p|–print-avail <软件包名> … 显示可供安装的版本详情。
-L|–listfiles <软件包名> … 列出所有“属于”该软件包(或多个)的文件。
-l|–list [<表达式> ... 简明地列出软件包的状态。
-S|--search <表达式> ... 搜寻拥有该文件(或多个文件)的包。
-C|--audit 检查搜寻残损的软件包。
--print-architecture 显示 dpkg 体系架构。
--compare-vesions <关系> 比较版本号 - 见下。
--force-help 显示本强制选项的帮助信息。
-Dh|--debug=help 显示有关出错调试的帮助信息。

-h|--help 显示本帮助信息。
--version 显示版本信息。
--license | --licence 显示版权和许可证条文。

对归档文件使用 dpkg -b|--build|-c|--contents|-e|--control|-I|--info|-f|--field|
-x|--extract|-X|--vextract|--fsys-tarfile (输入 dpkg-deb --help)。

供内部使用:dpkg --assert-support-predepends | --predep-package |
--assert-working-epoch | --assert-long-filenames | --assert-multi-conrep。

选项:
--admindir=<目录> 使用 <目录> 而非 /var/lib/dpkg。
--root=<目录> 安装到另一个根文件系统。
--instdir=<目录> 改变安装的根目录的同时保持管理(admin)目录不变。
-O|--selected-only 忽略没有被选中安装或升级的软件包。
-E|--skip-same-version 忽略版本与已安装软件版本相同的软件包。
-G|--refuse-downgrade 忽略版本早于已安装软件版本的的软件包。
-B|--auto-deconfigure 就算会影响其他软件包,也要安装。
--[no-]triggers 跳过或强制随之发生的触发器处理。
–no-debsig 不去试图验证软件包的签名。
–no-act|–dry-run|–simulate
仅仅报告我们要执行的操作 - 但是不执行。
-D|–debug=<八进制数字> 开启调试功能(参见 -Dhelp 或者 –debug=help)。
–status-fd 发送状态改变的更新信号到文件描述符。
–log=<文件名> 把状态的更动和操作信息记录到 <文件名>。
–ignore-depends=<软件包名>,…
忽略关于 <软件包名> 的所有依赖关系。
–force-… 忽视遇到的问题(参见 –force-help)。
–no-force-…|–refuse-…
当遇到问题时中止运行。
–abort-after 遇到个错误后终止。

可供–compare-version 使用的比较运算符有:
lt le eq ne ge gt (如果版本号为空,那么就认为它先于任意版本号);
lt-nl le-nl ge-nl gt-nl (如果版本号为空,那么就认为它后于任意版本号);
< << <= = >= >> > (仅仅是为了与主控文件的语法兼容)。


_________________
希奥开源成员 加入我们
手机设备请访问:http://wap.seo-dic.com.cn
我们的口号是:让开源深入民心

Simply Enjoying Open Source !
-共享是一种美德 --


最后由 nicety 编辑于 2008-11-05 23:19,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: 依赖并不可怕:菜鸟解决Ubuntu依赖[免编译+分析思路+解决步骤]
帖子发表于 : 2008-10-31 14:21 
头像

注册: 2008-07-14 15:06
帖子: 92
地址: 天津
送出感谢: 0 次
接收感谢: 0 次
Ubuntu循环依赖(Cycle Dependency)的解决[免编译+解决步骤]
:http://seo-dic.com.cn/archives/1886
最近在VMware中安装了一个Ubuntu系统。由于创建系统时没有要求安装虚拟网卡,因此需要安装Ubuntu的软件包时,需要自己下载deb 文件,拖进系统,然后双击调用gdebi进行安装。可是,当我尝试安装G++时却出现了问题:g++-4.1这个包依赖libstdc++6-4.1- dev这个包(也就是C++库),而libstdc++6-4.1-dev又依赖g++-4.1。结果两个包都装不上。

上网搜索,在Ubuntu官方论坛找到了解决方法:

在命令行下执行以下语句
代码:
sudo dpkg -i –ignore-depends=libstdc++6-4.1-dev g++-4.1_4.1.2-0ubuntu4_i386.deb
sudo dpkg -i –ignore-depends=g++-4.1 libstdc++6-4.1-dev_4.1.2-0ubuntu4_i386.deb

即可。
(g++-4.1默认安装包名为g++-4.1_4.1.2-0ubuntu4_i386.deb;libstdc++6-4.1-dev默认安装包名为libstdc++6-4.1-dev_4.1.2-0ubuntu4_i386.deb)

也就是说,强行让两个安装包忽略依赖项。

使用apt-get自动安装应该没有这种问题。

附:dpkg命令中文帮助信息
用法:dpkg [<选项> ...] <命令>
命令:
代码:
-i|–install <.deb 文件名> … | -R|–recursive <目录> …
–unpack <.deb 文件名> … | -R|–recursive <目录> …
-A|–record-avail <.deb 文件名> … | -R|–recursive <目录> …
–configure <软件包名> … | -a|–pending
–triggers-only <软件包名> … | -a|–pending
-r|–remove <软件包名> … | -a|–pending
-P|–purge <软件包名> … | -a|–pending
–get-selections [<表达式> ...] 把已选中的软件包列表打印到标准输出。
–set-selections 从标准输入里读出要选择的软件。
–clear-selections 取消选中所有不必要的软件包。
–update-avail <软件包文件> 替换现有可安装的软件包信息。
–merge-avail <软件包文件> 把文件中的信息合并到系统中。
–clear-avail 清除现有的软件包信息。
–forget-old-unavail 忘却已被卸载的不可安装的软件包。
-s|–status <软件包名> … 显示软件包详尽的状态信息。
-p|–print-avail <软件包名> … 显示可供安装的版本详情。
-L|–listfiles <软件包名> … 列出所有“属于”该软件包(或多个)的文件。
-l|–list [<表达式> ... 简明地列出软件包的状态。
-S|--search <表达式> ... 搜寻拥有该文件(或多个文件)的包。
-C|--audit 检查搜寻残损的软件包。
--print-architecture 显示 dpkg 体系架构。
--compare-vesions <关系> 比较版本号 - 见下。
--force-help 显示本强制选项的帮助信息。
-Dh|--debug=help 显示有关出错调试的帮助信息。

-h|--help 显示本帮助信息。
--version 显示版本信息。
--license | --licence 显示版权和许可证条文。

对归档文件使用 dpkg -b|--build|-c|--contents|-e|--control|-I|--info|-f|--field|
-x|--extract|-X|--vextract|--fsys-tarfile (输入 dpkg-deb --help)。

供内部使用:dpkg --assert-support-predepends | --predep-package |
--assert-working-epoch | --assert-long-filenames | --assert-multi-conrep。

选项:
--admindir=<目录> 使用 <目录> 而非 /var/lib/dpkg。
--root=<目录> 安装到另一个根文件系统。
--instdir=<目录> 改变安装的根目录的同时保持管理(admin)目录不变。
-O|--selected-only 忽略没有被选中安装或升级的软件包。
-E|--skip-same-version 忽略版本与已安装软件版本相同的软件包。
-G|--refuse-downgrade 忽略版本早于已安装软件版本的的软件包。
-B|--auto-deconfigure 就算会影响其他软件包,也要安装。
--[no-]triggers 跳过或强制随之发生的触发器处理。
–no-debsig 不去试图验证软件包的签名。
–no-act|–dry-run|–simulate
仅仅报告我们要执行的操作 - 但是不执行。
-D|–debug=<八进制数字> 开启调试功能(参见 -Dhelp 或者 –debug=help)。
–status-fd 发送状态改变的更新信号到文件描述符。
–log=<文件名> 把状态的更动和操作信息记录到 <文件名>。
–ignore-depends=<软件包名>,…
忽略关于 <软件包名> 的所有依赖关系。
–force-… 忽视遇到的问题(参见 –force-help)。
–no-force-…|–refuse-…
当遇到问题时中止运行。
–abort-after 遇到个错误后终止。

可供–compare-version 使用的比较运算符有:
lt le eq ne ge gt (如果版本号为空,那么就认为它先于任意版本号);
lt-nl le-nl ge-nl gt-nl (如果版本号为空,那么就认为它后于任意版本号);
< << <= = >= >> > (仅仅是为了与主控文件的语法兼容)。


_________________
希奥开源成员 加入我们
手机设备请访问:http://wap.seo-dic.com.cn
我们的口号是:让开源深入民心

Simply Enjoying Open Source !
-共享是一种美德 --


最后由 nicety 编辑于 2008-11-05 23:29,总共编辑了 1 次

页首
 用户资料  
 
3 楼 
 文章标题 : Re: 依赖并不可怕:菜鸟解决Ubuntu依赖[免编译+分析思路+解决步骤]
帖子发表于 : 2008-11-03 20:40 

注册: 2006-10-18 15:48
帖子: 700
送出感谢: 0 次
接收感谢: 0 次
呵呵不错。
友情支持 :em11


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 依赖并不可怕:菜鸟解决Ubuntu依赖[免编译+分析思路+解决步骤]
帖子发表于 : 2008-11-04 7:56 
头像

注册: 2008-11-02 4:30
帖子: 81
送出感谢: 1
接收感谢: 0 次
有没有wine的依赖包。。deb直接装 :em03


_________________
代码:
ADSL自动拨号设置
启用有线连接:sudo ifconfig eth0 up
在终端中输入:sudo pppoeconf
一个基于文本菜单的程序会指导你进行下面的步骤以完成拨号
在需要的时候启动ADSL连接,可以在终端中输入:sudo pon dsl-provider
断开ADSL连接,可以在终端中输入:sudo poff


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 依赖并不可怕:菜鸟解决Ubuntu依赖[免编译+分析思路+解决步骤]
帖子发表于 : 2008-11-05 23:17 
头像

注册: 2008-07-14 15:06
帖子: 92
地址: 天津
送出感谢: 0 次
接收感谢: 0 次
andis220617 写道:
有没有wine的依赖包。。deb直接装 :em03
请到官方的源里自己查看,或者在别人的电脑上查看包的属性!还有,apt-get 是自己识别依赖的。v有问题的话,apt-get -f install 试试


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 依赖并不可怕:菜鸟解决Ubuntu依赖[免编译+分析思路+解决步骤]
帖子发表于 : 2008-11-05 23:22 
头像

注册: 2007-09-29 3:09
帖子: 5773
送出感谢: 0 次
接收感谢: 3
andis220617 写道:
有没有wine的依赖包。。deb直接装 :em03

apt-get build-dep


_________________
HUNT Unfortunately No Talent...


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 依赖并不可怕:菜鸟解决Ubuntu依赖[免编译+分析思路+解决步骤][200801105更新到二楼]
帖子发表于 : 2008-11-05 23:31 
头像

注册: 2008-07-14 15:06
帖子: 92
地址: 天津
送出感谢: 0 次
接收感谢: 0 次
增加一楼,感谢支持,没发过几次文章。不知道怎么写了还。二楼内容系转载,但是正好是一对。


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 依赖并不可怕:菜鸟解决Ubuntu依赖[免编译+分析思路+解决步骤][200801105更新到二楼]
帖子发表于 : 2008-12-14 0:35 
头像

注册: 2008-04-23 10:57
帖子: 22
送出感谢: 0 次
接收感谢: 0 次
楼主太强了,解决了我的大问题,十分感谢!!!


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 依赖并不可怕:菜鸟解决Ubuntu依赖[免编译+分析思路+解决步骤][200801105更新到二楼]
帖子发表于 : 2009-01-22 0:03 
头像

注册: 2008-11-15 20:12
帖子: 22
送出感谢: 0 次
接收感谢: 0 次
热心人,谢谢……


_________________
我想 ^^^^ , far far away 。


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 依赖并不可怕:菜鸟解决Ubuntu依赖[免编译+分析思路+解决步骤][200801105更新到二楼]
帖子发表于 : 2009-02-04 19:49 
头像

注册: 2005-07-02 14:41
帖子: 4133
系统: Ubuntu 14.04 (Kylin)
送出感谢: 53
接收感谢: 11
二樓的內容不錯。

一樓的其實可以去report bug。


_________________
https://weakish.github.io


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 依赖并不可怕:菜鸟解决Ubuntu依赖[免编译+分析思路+解决步骤][200801105更新到二楼]
帖子发表于 : 2009-02-04 21:10 
头像

注册: 2007-11-29 9:41
帖子: 8455
送出感谢: 0 次
接收感谢: 0 次
收藏 :em11 :em11


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 依赖并不可怕:菜鸟解决Ubuntu依赖[免编译+分析思路+解决步骤][200801105更新到二楼]
帖子发表于 : 2016-01-14 15:31 

注册: 2016-01-14 15:30
帖子: 1
系统: win7
送出感谢: 0 次
接收感谢: 0 次
特地注册 感谢楼主 真的好用


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 12 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译