7

我有一个 Plone 站点(大约 4.2.4,从version.txt根目录中的 a 告诉)我想更新到最新版本(我找到了这个操作方法)(截至目前,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.

所以似乎对 sub-2 版本有一些要求zc.recipe.egg,但我找不到。(在我的versions.cfg情况下,它被固定在2.0.1- 令人惊讶的是它曾经可以工作。)

find我用and搜索了树grep,寻找rc.recipe.egginversion*.cfgsetup.py文件,但除了在我的项目根目录中找不到任何东西。我什至搜索了下面的每个文件.../src/collective.mathjax,但没有成功。

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

4

5 回答 5

3

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

于 2015-04-25T15:06:40.800 回答
3

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

1.) PyPi 上发布的鸡蛋需要文件,就像 Luca Fabbri 指出的那样,您可以像这样搜索引脚:

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

2.) development-eggs 的 setup.py 文件,类似可搜索:

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

3.)[versions]配置文件的 - 部分,在这种情况下 version.cfg 通过其extends-option 拉入更多版本配置,拉出的也可能通过extends.

你很幸运,受人尊敬的 M. v. Rees 分享了一个片段,关于如何获取所有 Plone 版本的所有固定: https ://gist.github.com/mauritsvanrees/99cb4a25b622479e7dc3

于 2015-08-19T09:52:40.137 回答
2

依赖关系可能在第 3 方鸡蛋setup.py中(所以:没有)。再次在内部搜索./eggs/*/EGG-INFO/requires.txt(如果您的egg目录在构建根目录中)。

于 2015-04-23T15:03:40.753 回答
1

如果您在本地已经有一个,则可能是您的构建配置不寻找更新的版本。应该有这样的一行:

newest = false

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

就像是:

[buildout]
eggs-directory = /home/USER/SOMEWHERE/eggs
download-cache = /home/USER/SOMEWHERE/downloads
extends-cache = /home/USER/SOMEWHERE/extends
于 2015-04-23T15:23:52.350 回答
1

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

将此添加到您的构建配置中:

parts +=
    eggdeps

...

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

再次运行构建。现在你有一个脚本 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 ...
于 2015-04-25T15:03:39.303 回答