2013-03-21 83 views
0

我會在前言中說我知道一個小紅寶石但不是很好,所以這可能是一個常見的Ruby錯誤(但我似乎無法找到答案!)模板路徑中意外的tidENTIFIER

我有這個廚師食譜(用流浪運行):

package "php5-fpm" do 
    action :install 
end 

template "/etc/php5-fpm/pool.d/site" do 
    source "php-fpm.erb" 
    owner "root" 
    group "root" 
    mode 0644 
    action :create 
    only_if "dpkg --get-selections | grep php5-fpm" 
end 

service "php5-fpm" do 
    action :restart 
end 

這失敗,出現以下消息:

================================================================================ 
Recipe Compile Error in /tmp/.../cookbooks/site/recipes/php-fpm.rb 
================================================================================ 

SyntaxError 
----------- 
compile error 
/tmp/.../cookbooks/site/recipes/php-fpm.rb:1: syntax error, unexpected 
tIDENTIFIER, expecting $end 
    template "/etc/php5-fpm/pool.d/site" d... 
           ^
Cookbook Trace: 
--------------- 
    /tmp/.../cookbooks/dosos/recipes/php-fpm.rb:1:in `from_file' 

Relevant File Content: 
---------------------- 
    /tmp/.../cookbooks/dosos/recipes/php-fpm.rb: 

end 2: :restart" do-selections | grep php5-fpm" 

這不會使很多意義,我因爲「相關文件內容「似乎是米來自文件的不同部分。

是在弦有什麼Ruby有關於把正斜槓(如果是的話,爲什麼不上的錯誤前面的3條斜線,除非它的運行從右到左?)

+1

我敢打賭,錯誤是在配方中進一步缺失的雙引號。你能粘貼整個東西嗎? – 2013-03-21 15:40:25

+0

@DaveS。這實際上是整個文件 - 除非Chef將文件連接在一起? – Ross 2013-03-21 15:44:51

+1

不,文件不連接。你確定這個文件已經上傳到服務器?這個錯誤提到':重新啓動'do-selections'...但是這不是你在配方中得到的。 – 2013-03-21 15:57:36

回答

2

我用流浪來配置我的服務器使用Chef腳本。 Chef腳本是在Windows上編輯的,可以通過共享文件夾在Linux VM上使用。

錯誤在於我在Windows上的編輯器沒有配置爲使用Unix行結尾,這讓Ruby感到困惑。剝離回車(^M)允許腳本正常運行。