0

私は Ruby について少し知っているが、あまりよく知らないということを前置きしておきます。したがって、これはよくある Ruby の間違いかもしれません (しかし、答えが見つからないようです!)。

このChefレシピがあります(Vagrantを使用して実行):

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 には何かありますか?

4

1 に答える 1

2

Vagrant を使用して、Chef スクリプトを使用してサーバーをプロビジョニングしていました。Chef スクリプトは Windows で編集され、共有フォルダーを介して Linux VM で利用可能でした。

間違いは、Windows 上の私のエディターが Unix の行末を使用するように構成されていなかったことで、Ruby を混乱させました。キャリッジ リターン ( ^M) を削除すると、スクリプトを正常に実行できます。

于 2013-03-21T16:08:54.063 に答える