Saturday, October 10, 2009

ebuild依赖死循环

使用gentoo其实也不是很久. 但是起码几个月了. 呃.... 对portage还是很陌生. 看来只能慢慢来了.

今天碰到这个问题:

[nomerge      ] dev-python/pycairo-1.8.8 [1.8.2] USE="doc%* -svg%"
[nomerge      ]  dev-python/sphinx-0.6.1-r1  USE="doc -test"
[ebuild  N    ]   dev-python/jinja2-2.1.1-r1  USE="doc -examples -i18n -test"
[ebuild  N    ]    dev-python/sphinx-0.6.1-r1  USE="doc -test"

 * Error: circular dependencies:

('ebuild', '/', 'dev-python/sphinx-0.6.1-r1', 'merge') depends on
  ('ebuild', '/', 'dev-python/jinja2-2.1.1-r1', 'merge') (buildtime)
('ebuild', '/', 'dev-python/jinja2-2.1.1-r1', 'merge') depends on
  ('ebuild', '/', 'dev-python/sphinx-0.6.1-r1', 'merge') (buildtime)

 * Note that circular dependencies can often be avoided by temporarily
 * disabling USE flags that trigger optional dependencies.

看来是一个死循环, 不过, emerge做得很好, 知道了! 也给出了建议: 临时去掉一(些)USE可以解决这种optional dependencies

在/etc/portage/package.use加入dev-python/pycairo -doc 果真好了.

另:

emerge的用法中:
emerge [options] [action] [ebuild | tbz2file | file | set | atom]....

有一个叫atom的东西, 指定它是可以使用如: >, >=, <之类的符号的. 也就是说, 在/etc/portage/package.use配置文件中:
dev-python/pycairo -doc

=dev-python/pycairo-1.8.8 -doc

是不同的!!

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.