Redcarpet、Albino、およびPygmentsを使用してアプリにコードハイライトを追加することについてのRailscastsのエピソードに従いました。開発では期待どおりに機能します。ただし、テスト実稼働サーバーでは、次のエラーが発生します。
ActionView::Template::Error (No such file or directory - posix_spawnp):
13: <div class="small_meta">
14: Posted on <%= @article.created_at %> by <%= @article.user.full_name %>. Topics: <%= @article.topic_list %>
15: </div>
16: <%= markdown(@article.body) %>
17: </div>
18:
19: <% else %>
app/helpers/application_helper.rb:19:in `block in syntax_highlighter'
app/helpers/application_helper.rb:18:in `syntax_highlighter'
app/helpers/application_helper.rb:13:in `markdown'
app/views/home/index.html.erb:16:in `_app_views_home_index_html_erb___3638324493742336500_70112578553660'
エラーはmarkdown()
16行目のヘルパーから発生します。ヘルパーコードは次のとおりです。
def markdown(text)
options = [:hard_wrap, :filter_html, :autolink, :no_intraemphasis, :fenced_code, :gh_blockcode]
syntax_highlighter(Redcarpet.new(text, *options).to_html).html_safe
end
def syntax_highlighter(html)
doc = Nokogiri::HTML(html)
doc.search("//pre[@lang]").each do |pre|
pre.replace Albino.colorize(pre.text.rstrip, pre[:lang])
end
doc.to_s
end
問題はアルビノへの呼びかけからです。私はこの問題を解決する方法について途方に暮れています。アルビノはpygmentize
プロセスを生み出すことができないようです。which pygmentize
Terminal.appで実行すると、が表示されます/usr/local/bin/pygmentize
。/usr/local/bin
を実行すると、パスにが表示されますecho $PATH
。テスト実稼働サーバーは、OSX10.7サーバー上のApache/PusionPassengerです。
ここで何が起こっているのですか、どうすればposix_spawnp
エラーを修正できますか?