在Plone buildout设置中查找需求规格

时间:2015-04-23 14:58:05

标签: plone buildout plone-4.x

我有一个Plone网站(大约4.2.4,从根目录中的version.txt告诉我)我想要更新到最新版本(我发现this how-to) (截至目前,4.3.4);我继承了过多的固定版本,这些版本没有记录,可能已经过时了。

在评论我的versions.cfg时,改为使用http://dist.plone.org/release/4.3-latest/versions.cfg并使用buildout重新运行-vvv,我得到:

Develop: '.../src/collective.mathjax'
in: '.../src/collective.mathjax'
/tmp/tmpbXsnpD -q develop -mxN -d .../develop-eggs/tmp2yhe9ubuild
...
Installing 'zc.recipe.egg'.
We have the best distribution that satisfies 'zc.recipe.egg<2dev'.
Picked: zc.recipe.egg = 1.3.2
...
There is a version conflict.
We already have: zc.recipe.egg 1.3.2.
While:
  Installing.
  Getting section test.
  Initializing section test.
  Installing recipe zc.recipe.testrunner.

因此似乎需要zc.recipe.egg的子2版本,但我无法找到它。 (在我的versions.cfg中,它被固定在2.0.1 - 这曾经令人惊讶地工作过。)

我使用findgrep搜索了树,在rc.recipe.eggversion*.cfg文件中搜索setup.py,但我找不到任何内容但在我的项目根目录中。我甚至搜索了.../src/collective.mathjax以下的每个文件,但没有成功。

我怎样才能找出这种依赖?谢谢!

5 个答案:

答案 0 :(得分:3)

但升级现有安装的更好方法可能是为要升级到的plone版本获取标准构建,然后将非标准鸡蛋添加到此构建中。最后将数据库移动到新安装,然后按照升级指南进行操作。

答案 1 :(得分:3)

基本上有三个地方可以寻找版本固定:

1。)在PyPi上发布的蛋的需求文件,如Luca Fabbri指出,你可以搜索这样的引脚:

grep -r --include=requires.txt "dependency.to.search.for" path/to/eggs-cache

2。)开发鸡蛋的setup.py文件,类似可搜索的文件:

grep -r --include=setup.py "dependency.to.search.for" path/to/dev-eggs-cache

3。)[versions] - 部分配置文件,在这种情况下 version.cfg通过其extends提取更多版本配置文件 - 选项和拉出的选项也可以通过extends指定更多配置。

你很幸运,很欣赏M. v.Rees分享了一个片段,关于如何获得所有Plone版本的所有内容: http://www.sha1-online.com

答案 2 :(得分:2)

依赖可能在第三方蛋内(因此:其中没有setup.py)。在./eggs/*/EGG-INFO/requires.txt内再次搜索(如果您的egg目录在buildout根目录内)。

答案 3 :(得分:1)

如果您已在本地拥有一个版本,那么您的buildout配置可能不会寻找更新的版本。应该有这样的一行:

newest = false

您可以尝试删除鸡蛋的本地缓存,或者明确设置为不使用全局鸡蛋并使用特定的鸡蛋(空)。

类似的东西:

[buildout]
eggs-directory = /home/USER/SOMEWHERE/eggs
download-cache = /home/USER/SOMEWHERE/downloads
extends-cache = /home/USER/SOMEWHERE/extends

答案 4 :(得分:1)

你可以使用&#34; eggdeps&#34; (搜索它的pypi)获取你的buildout中所有依赖项的树 - 也许这可能会有所帮助。 将鸡蛋添加到您的buildout并重新运行buildout。在进行您提到的更改之前,请在原始的工作构建配置上执行此操作。 (生成eggdeps脚本需要buildout才能成功完成)。

将此添加到您的buildout配置中:

parts +=
    eggdeps

...

[eggdeps]
recipe = zc.recipe.egg
eggs = tl.eggdeps
       ${instance:eggs}
scripts = eggdeps

再次运行buildout。 现在你有了一个脚本bin / eggdeps,它打印了一个包含所有依赖项的树。 运行它:

./bin/eggdeps -n

示例输出:

zope.app.pagetemplate 3.11.2
    setuptools 8.0.2
    zope.browserpage 3.12.2 ...
    zope.component 3.9.5 [hook] ...
    zope.configuration 3.7.4 ...
    zope.dublincore 3.7.0
        pytz 2013b0
        setuptools 8.0.2
        zope.component 3.9.5 ...
        zope.datetime 3.4.1 ...
        zope.interface 3.6.7 ...
        zope.lifecycleevent 3.6.2 ...
        zope.location 3.9.1 ...
        zope.schema 4.2.2 ...
        zope.security 3.7.4 ...
      [test]
        zope.annotation 3.5.0 ...
        zope.testing 3.9.7 ...
    zope.i18nmessageid 3.5.3 ...
    zope.interface 3.6.7 ...
    zope.pagetemplate 3.6.3 ...
    zope.schema 4.2.2 ...