2013-02-16 68 views
2

我对一个Plone项目buildout.cfg采用公斤(已知良好的集):Plone的附加件

[buildout] 
extends = http://dist.plone.org/release/4.2/versions.cfg 

因为它是一个网络的依赖性,扩建不被脱机工作时。

$ bin/buildout -o 
While: 
    Initializing. 
Error: Couldn't download 'http://dist.plone.org/release/4.2/versions.cfg' in offline mode. 

什么是在离线模式下并具有公斤引用工作的最佳做​​法?我假设有一些方法来缓存外部引用。当然,我可以在本地使用缓存代理,但是必须有一个更轻量级的解决方案。

回答

5

我们随时下载KGS网址,本地文件和使用,作为一个范围扩展:

curl -o plone-versions.cfg http://dist.plone.org/release/4.2.4/versions.cfg 

在那里我们versions.cfg写着:

[buildout] 
extends = 
    zopeapp-versions.cfg 
    ztk-versions.cfg 
    zope-versions.cfg 
    plone-versions.cfg 

我们添加一个头文件来命名原始来源,进出评论的URL中的文件扩展:

# Sourced from http://dist.plone.org/release/4.2.4/versions.cfg 
[buildout] 
# extends = http://download.zope.org/zopetoolkit/index/1.0.7/zopeapp-versions.cfg 
#   http://download.zope.org/Zope2/index/2.13.19/versions.cfg 
+0

有没有一种方法来自动执行此操作? – 2013-02-16 12:36:04

+2

@StefanArmbruster:我们没有打扰它;当然,您可以自动执行此操作,它只是文本和网址。但是创建或升级Plone版本不仅仅是缓存这些文件。 :-) – 2013-02-16 12:37:56

+1

使其自动化的一种方法是让其他人为你做。使用统一安装程序,或从https:// github下载版本.cfg文件。COM/Plone的/安装程序,UnifiedInstaller /树/主/ base_skeleton。 – SteveM 2013-02-16 15:21:00

-1

我只是做了一个奇怪的观察中,可能会感兴趣:

extends = http://dist.plone.org/release/4.2/versions.cfg 

更改扩展网址将

extends = http://dist.plone.org/release/4-latest/versions.cfg 

会让扩建的运行没有任何错误(为什么? )

对您的情况可能是一个更快的解决方案,但Martijn的答案当然是一种可复制的受控开发方式 - e nviroment。

+0

'4-latest'只是一个符号链接。如果这次运行没有错误,你很幸运,除了它是一个符号链接以外没有什么不同。然而,使用它并不是一个好主意,因为你将冒着升级到最新的4.x版本的风险而没有准备好它(插件不再工作等)。 – 2013-02-16 15:40:48

+0

感谢Martijn,我知道并将其用于测试目的,以便始终拥有最新版本。仍然没有解释,为什么一个配置发生错误,另一个不是,以及'你有幸运'的含义是什么? – 2013-02-16 17:04:40

+0

就构建而言,两个URL之间存在* no *区别。如果一个人给你一个错误,另一个工作,那么你很幸运,第二个人工作。如果你仍然有一个错误,那么某个* else *被打破,使用代理或本地机器。 – 2013-02-16 17:08:28

5

您可以使用扩展缓存(也可以在不同的机器(如开发机器和生产机器)之间共享)。

设置

~/.buildout/default.cfg添加文件启用缓存为这台机器上的所有网络建设:

[buildout] 
extends-cache = /path/to/your/extends/cache 

或者你可以在一个特定的扩建做相同的配置。

这将在您配置的目录中创建具有散列文件名的文件。由于文件的名称是由扩展的URL生成的,因此可以很容易地将其复制。所以如果你从来没有在服务器上连接互联网,你可以在extends-cache的另一台服务器上运行buildout并复制直接