3

複数の人が同じ/類似の問題を抱えているようで、SO here で見つけた修正がいくつか報告されています。残念ながら、彼らは私のために働いていません。MacOS Lion を実行しています。これが私がこれまでに行ったことです:

1) 標準のRefineryCMSのインストール。画像のアップロード以外は問題なく動作します。2) 問題が発生したら、Dragonfly のドキュメントに従って構成ファイルを追加しました。

# configure/initializers/dragonfly.rb
require 'dragonfly/rails/images'

3) それはうまくいきませんでした。ImageMagick を再インストールしました。ImageMagick がインストールされていることを確認しました。

# whereis convert
/usr/bin/convert
# whereis identify
/usr/bin/identify

4) 問題が解決しないので、/usr/bin と /usr/local/bin のシンボリック リンクを設定しました。

lrwxr-xr-x  1 root  wheel  22 Aug  4 11:00 /usr/bin/convert -> /opt/local/bin/convert
lrwxr-xr-x  1 root  wheel  23 Aug  4 11:01 /usr/bin/identify -> /opt/local/bin/identify
lrwxr-xr-x  1 root  admin  22 Aug  4 11:06 /usr/local/bin/convert -> /opt/local/bin/convert
lrwxr-xr-x  1 root  admin  23 Aug  4 11:07 /usr/local/bin/identify -> /opt/local/bin/identify

5) それがうまくいかなかったので、Dragonfly のドキュメントといくつかの追加の指示に従って、新しい構成ファイルをセットアップしました。

# config/initializers/dragonfly.rb
require 'dragonfly'

app = Dragonfly[:images]
app.configure_with(:imagemagick)
app.configure_with(:rails)

app.define_macro(ActiveRecord::Base, :image_accessor)

app.configure do |c|
  c.convert_command = "/opt/local/bin/convert"          # defaults to "convert"
  c.identify_command = "/opt/local/bin/identify"        # defaults to "identify"
  c.log_commands = true                                 # defaults to false
end

6)それはそれを修正しませんでした。GitHubの問題に基づいて、これを追加しました

# config/application.rb
module Refincmstest
  class Application < Rails::Application
    # trying a fix for image magic
    initializer 'override-image-magick-paths', :after => 'attach-refinery-images-with-dragonfly' do
      Dragonfly[:refinery_images].configure do |c|
        c.convert_command = "/opt/local/bin/convert"          # defaults to "convert"
        c.identify_command = "/opt/local/bin/identify"        # defaults to "identify"
      end
    end
  end
end

そして、それはうまくいきませんでした。これが役立つ場合、コンソール出力は次のとおりです。

Started POST "/refinery/images?dialog=true" for 127.0.0.1 at 2012-08-04 12:23:54 -0700
Processing by Refinery::Admin::ImagesController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"Nddc/uPbbAGevNH15M6nzo/AJmVskIClJYZ5O60KDTU=", "image"=>{"image"=>[#<ActionDispatch::Http::UploadedFile:0x007fe5cd383e10 @original_filename="Photo on 2010-10-27 at 22.46 #2.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"image[image][]\"; filename=\"Photo on 2010-10-27 at 22.46 #2.jpg\"\r\nContent-Type: image/jpeg\r\n", @tempfile=#<File:/var/folders/rr/1_vvbrvd3ylgpdv8f2z3qqp80000gn/T/RackMultipart20120804-97351-xbv8ew>>]}, "wymeditor"=>"", "modal"=>"true", "dialog"=>"true", "app_dialog"=>"true", "field"=>"", "update_image"=>"", "thumbnail"=>"", "callback"=>"", "conditions"=>"", "locale"=>:en}
  Refinery::Role Load (0.2ms)  SELECT "refinery_roles".* FROM "refinery_roles" WHERE "refinery_roles"."title" = 'Refinery' LIMIT 1
  Refinery::User Load (0.1ms)  SELECT "refinery_users".* FROM "refinery_users" INNER JOIN "refinery_roles_users" ON "refinery_users"."id" = "refinery_roles_users"."user_id" WHERE "refinery_roles_users"."role_id" = 1
  Refinery::User Load (0.1ms)  SELECT "refinery_users".* FROM "refinery_users" WHERE "refinery_users"."id" = 1 LIMIT 1
  Refinery::UserPlugin Load (0.2ms)  SELECT "refinery_user_plugins".* FROM "refinery_user_plugins" WHERE "refinery_user_plugins"."user_id" = 1 ORDER BY position ASC
  Refinery::Role Load (0.1ms)  SELECT "refinery_roles".* FROM "refinery_roles" INNER JOIN "refinery_roles_users" ON "refinery_roles"."id" = "refinery_roles_users"."role_id" WHERE "refinery_roles_users"."user_id" = 1
Completed 500 Internal Server Error in 210ms

Dragonfly::Shell::CommandFailed (Command failed (identify '/var/folders/rr/1_vvbrvd3ylgpdv8f2z3qqp80000gn/T/RackMultipart20120804-97351-xbv8ew') with exit status ):
  dragonfly (0.9.12) lib/dragonfly/shell.rb:29:in `raise_shell_command_failed'
  dragonfly (0.9.12) lib/dragonfly/shell.rb:23:in `run'
  ...

私はアイデアがありません。次に行く場所について何か提案はありますか?

4

2 に答える 2

2

OS X Yosemiteにアップグレードした後、このエラーが発生しました。私が実行したbrewでimagemagickをインストールしたのでbrew doctor、さまざまな問題が報告され、その中にはシンボリックリンクの問題も報告されました。指示に従ってすべての問題を解決しましたが、今では再び機能しています。

于 2014-10-21T09:26:10.943 に答える
0

さらに調査を行ったところ、Mac Ports を使用して ImageMagick を更新しましたが、インストールが何らかの形で破損していることがわかりました。/opt/local/bin/identifyコマンドを手動で実行しようとすると、これが見つかりました。Map Ports を使用した複数回の再インストールの試みは失敗しました (Mac Ports には、lion を実行している mac book air で実行する非常に深刻な問題があります)。Mac Brew をインストールし、brew 経由で ImageMagick をインストールしました。シンボリック リンクを削除し、トンボが /usr/local/bin を指すように構成されていることを確認した後、すべてが機能しました。

教訓 - Lion を実行している MacBook Air を使用している場合は、Mac ポートを使用しないでください。Mac Ports を最新バージョンで再インストールした後でも、複数の ImageMagick 前提条件のインストールが失敗します。数か月前、別の Mac Ports のインストールで同様のことが起こりました。以前のバージョンの Mac 開発ツールを一時的にレトロ バックする必要がありました。このような痛み。

于 2012-08-05T07:12:06.063 に答える