2013-02-16 49 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並複製直接