LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 629|回复: 5

emerge -avuND world不是更新全部包?

[复制链接]
发表于 2011-3-29 12:37:00 | 显示全部楼层 |阅读模式
到底怎么才能使本地包全部更新为最新状态呢?

  1. rquiss@karata-PC ~ $ emerge -avuND world
  2. These are the packages that would be merged, in order:
  3. Calculating dependencies... done!
  4. Total: 0 packages, Size of downloads: 0 kB
  5. Nothing to merge; would you like to auto-clean packages? [Yes/No]
复制代码


但是


  1. rquiss@karata-PC ~ $ eix Module-Core
  2. [u] perl-core/Module-CoreList
  3.      Available versions:  2.38 (~)2.41 (~)2.430 (~)2.440 (~)2.450 (~)2.460.0
  4.      Installed versions:  2.450(14时19分39秒 2011年03月11日)
  5.      Homepage:            http://search.cpan.org/dist/Module-CoreList/
  6.      Description:         what modules shipped with versions of perl

  7. [u] virtual/perl-Module-CoreList
  8.      Available versions:  2.38 (~)2.41 (~)2.430 (~)2.440 (~)2.450 (~)2.460.0
  9.      Installed versions:  2.450(14时19分50秒 2011年03月11日)
  10.      Description:         Virtual for Module-CoreList

  11. Found 2 matches.
复制代码


emerge -pveuND world可以,但是会重新安装所有的包

  1. rquiss@karata-PC ~ $ emerge -pveuND world|grep CoreList
  2. [ebuild     U ] perl-core/Module-CoreList-2.460.0 [2.450] 66 kB [0]
  3. [ebuild     U ] virtual/perl-Module-CoreList-2.460.0 [2.450] 0 kB [0]
复制代码

  1. rquiss@karata-PC ~ $ emerge -avuN --deep 60  world
  2. These are the packages that would be merged, in order:
  3. Calculating dependencies... done!
  4. Total: 0 packages, Size of downloads: 0 kB
  5. Nothing to merge; would you like to auto-clean packages? [Yes/No]
复制代码


  1. rquiss@karata-PC ~ $ emerge -avuN --complete-graph y world
  2. These are the packages that would be merged, in order:
  3. Calculating dependencies... done!
  4. Total: 0 packages, Size of downloads: 0 kB
  5. Nothing to merge; would you like to auto-clean packages? [Yes/No]
复制代码
发表于 2011-3-29 12:49:28 | 显示全部楼层
同问……不加-e的话py死活升不到27,加了e就可以,有点不理解了……
回复 支持 反对

使用道具 举报

发表于 2011-3-29 18:47:55 | 显示全部楼层
默认emerge -uDN world时是不考虑软件包的编译依赖(Build dependency)的,因此如果一个软件包只是被一个在world中的软件包直接或间接编译依赖的话,emerge -uDN world不会升级这个软件包(除非编译依赖带有版本条件)。
解决的方法是加入“--with-bdeps y”,也就是:
  1. emerge -avuDNl --with-bdeps y @world
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-3-29 21:04:38 | 显示全部楼层
Post by RichardGv;2132633
默认emerge -uDN world时是不考虑软件包的编译依赖(Build dependency)的,因此如果一个软件包只是被一个在world中的软件包直接或间接编译依赖的话,emerge -uDN world不会升级这个软件包(除非编译依赖带有版本条件)。
解决的方法是加入“--with-bdeps y”,也就是:
  1. emerge -avuDNl --with-bdeps y @world
复制代码


恩  得到解决!
看man里面说
In dependency calculations, pull in build time dependencies that are not strictly required。

也就是这些包可能都是编译时依赖,并不是运行时依赖。 看来不升级也没啥问题。如果某个有了新版本的编译依赖 那么在编译那个包时就自动升级了。。
回复 支持 反对

使用道具 举报

发表于 2011-3-30 07:18:09 | 显示全部楼层
额,那再多问句,为什么加了e参数后那几个编译依赖的包就也会升级呢………
回复 支持 反对

使用道具 举报

发表于 2011-3-30 10:22:33 | 显示全部楼层
Post by jtshs256;2132667
额,那再多问句,为什么加了e参数后那几个编译依赖的包就也会升级呢………
e的意思是emptytree吧,也就是说不管现存的依赖关系(甚至没有软件包数据库信息,比如不小心误删除了)从零开始重新计算依赖,这样只要是需要安装的包就会装到允许的最高版本。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表