Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Plone构建设置中查找需求规格_Plone_Buildout_Plone 4.x - Fatal编程技术网

在Plone构建设置中查找需求规格

在Plone构建设置中查找需求规格,plone,buildout,plone-4.x,Plone,Buildout,Plone 4.x,我有一个Plone站点(大约是4.2.4,从根目录中的version.txt),我想更新到最新的版本(我发现)(截至目前,4.3.4);我继承了大量没有文档记录的固定版本,这些版本可能已经过时 在注释我的版本.cfg时,使用http://dist.plone.org/release/4.3-latest/versions.cfg相反,使用-vvv重新运行构建,我得到: Develop: '.../src/collective.mathjax' in: '.../src/collective.ma

我有一个Plone站点(大约是4.2.4,从根目录中的
version.txt
),我想更新到最新的版本(我发现)(截至目前,
4.3.4
);我继承了大量没有文档记录的固定版本,这些版本可能已经过时

在注释我的
版本.cfg
时,使用
http://dist.plone.org/release/4.3-latest/versions.cfg
相反,使用
-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.
develope:“…/src/collective.mathjax”
在:“…/src/collective.mathjax”中
/tmp/tmpbXsnpD-q develope-mxN-d…/develope eggs/tmp2yhe9ubuild
...
安装“zc.recipe.egg”。

我们拥有满足“zc.recipe.egg的最佳发行版。依赖关系可能在第三方egg中(因此:其中没有
setup.py
)。在
/eggs/*/EGG-INFO/requires.txt中再次搜索(如果您的
EGG
目录位于构建根目录中)。

可能是因为您的构建配置中有一个较新的版本,如果您在本地已经有一个版本,则不必查找该版本。应该有这样一条线:

newest = false
grep -r --include=requires.txt "dependency.to.search.for" path/to/eggs-cache
您可以尝试删除鸡蛋的本地缓存,或者显式设置为不使用全局缓存而使用特定缓存(空)

比如:

[buildout]
eggs-directory = /home/USER/SOMEWHERE/eggs
download-cache = /home/USER/SOMEWHERE/downloads
extends-cache = /home/USER/SOMEWHERE/extends
您可以使用“eggdeps”(搜索pypi)来获取构建中所有依赖项的树——也许这会有所帮助。 将鸡蛋添加到构建中,然后重新运行构建。在进行您提到的更改之前,在原始的工作构建配置上执行此操作。(生成eggdeps脚本需要buildout才能成功完成)

将此添加到构建配置中:

parts +=
    eggdeps

再跑一次。 现在您有了一个脚本bin/eggdeps,它将打印所有依赖项的树。 运行它:

示例输出:

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 ...

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

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

1.)需要PyPi上发布的鸡蛋文件,如Luca Fabbri指出的,您可以搜索以下PIN:

newest = false
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通过其
扩展
-选项拉入更多版本配置,被拉入的版本还可以通过
扩展
指定更多配置

你很幸运,受人尊敬的M.v。Rees分享了一个片段,关于如何获得所有Plone版本的所有固定:

遗憾的是,还没有成功;只有不带版本的需求,或者
=1.2.0
=1.3.0
的需求是这样发现的……如果您在
~/.buildout/default.cfg
中定义了自定义
鸡蛋目录,您也需要搜索这些鸡蛋。此外,依赖项可能位于压缩鸡蛋中-file@fRisi:确实有一个压缩蛋,但运气不好-它不包含依赖项…注意,对于新手,完整的命令是:
grep-r--include=requires.txt“dependency.to.search.for”path/to/eggs cache
IIRC,最初在Mikko Ohtamaa的一篇精美帖子中发现了这一点:我安装了eggdeps并运行了它。它似乎可以工作,但到目前为止,我还无法生成任何包含
zc.recipe
的输出……啊,对不起。我没注意到你的问题与食谱有关。配方等仅在构建期间拉入,不属于最终环境的一部分。因此,它们不会出现在eggdeps中,因为这显示了构建的最终蟒蛇路径中的卵。-查看我对您问题的评论。
eggdeps
提示在其他情况下非常有用;我刚才有一个这样的用例。这是一个有用的尝试,但在我的情况下,很遗憾没有帮助。你能检查一下你有什么版本的zc.recipe.testrunner吗?在我的plone 4.3.4构建中,我将zc.recipe.testrunner固定到1.2.1,将zc.recipe.egg固定到2.0。1@sunew:
zc.recipe.testrunner
被固定到2.0.0;在我的eggs目录和下载缓存中,我还有1.2.1和1.4.0。您需要在您的版本中将zc.recipe.testrunner固定到1.2.1。cfg
版本。cfg
正在通过
扩展
-选项进行更多版本配置,请确保也检查它们。@Ida:Right,我在中找到了
zc.recipe.egg
zc.recipe.egg
。(我们没有一个工具可以简单地解析
extends
规范并发出用于grepping的平面配置,对吗?)如果你回答这个问题,我会接受它。是的,通过
extends
选项的递归就是重点;非常感谢。它是循环的,不是递归的:-)好吧,我试过毛里塔尼亚的脚本;它将所有Plone版本的版本固定下载到当前工作目录,直到硬编码的最新版本。这是一个有用的东西,但对包本身指定的需求没有帮助。哦,当然我们谈论的是递归。循环可能在递归过程中发生,必须进行处理,否则错误的输入可能会导致进程失败。由于我又遇到了这样的问题,因此添加了一些内容:
--include
参数到
grep-r
命令可以多次指定(我的版本;至少值得一试),因此,对
requires.txt
setup.py
的搜索可以在一个命令中完成。此外,错误的版本(“我们已经……”)可能位于
develope
区域(
src/
目录)。。。对于
Products.GenericSetup
,版本规范不在
setup.py
中,而是在一些
version.txt
中。