我有一个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
- 这曾经令人惊讶地工作过。)
我使用find
和grep
搜索了树,在rc.recipe.egg
和version*.cfg
文件中搜索setup.py
,但我找不到任何内容但在我的项目根目录中。我甚至搜索了.../src/collective.mathjax
以下的每个文件,但没有成功。
我怎样才能找出这种依赖?谢谢!
答案 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 ...