2009-10-07 2 views
12

Dostaję następujący błąd w moim development.logSpinacz Błąd

[spinacza] Błąd został przyjęty podczas przetwarzania: # < Spinacz :: NotIdentifiedByImageMagickError:/tmp/stream28514-0 nie jest rozpoznawany przez " zidentyfikować”polecenie>

a ja googled o tym błędzie i okazało się, że wiele osób ma rozwiązać ten przez dodanie tej linii Paperclip.options. [: command_path] = "/ usr/local/bin"

Jednak nadal otrzymuję ten sam błąd nawet po dodaniu tej linii! Próbowałem wszystkiego, co możliwe!

Każda pomoc będzie bardzo ceniona!

Pozdrawiam,

Punit

+0

Jakiego systemu operacyjnego używasz?/usr/local/bin ma sens tylko w systemie opartym na systemie unix. – Karl

+0

Tak, jestem na ubuntu –

Odpowiedz

11

W Paperclip.options [: command_path] ustawienie jest na lokalizację swoich wykonywalnych ImageMagick (w tym przypadku zidentyfikować). Spróbuj uruchomić which identify i ustawić opcję, która ma być zwróconym katalogiem. Jeśli to polecenie niczego nie zwróci, upewnij się, że ImageMagick jest poprawnie zainstalowany.

+1

Hej, dziękuję za odpowiedź. , które identyfikują zwroty/usr/local/bin Również zauważyłem coś dziwnego. Ścieżka/tmp/stream28514-0 jest niepoprawna. Tak więc plik nie jest zapisywany.Czy ktoś wie, dlaczego tak się dzieje? –

+0

spinacz powinien usunąć pliki po ich przetworzeniu. Czy możesz spróbować uruchomić ident z wiersza poleceń? Ostatnio miałem podobny problem, gdy uaktualniłem ImageMagick i później zapomniałem uruchomić ldconfig. – tliff

3

Oznacza to, że nie może znaleźć pliku wykonywalnego ImageMagick identify w lokalizacji określonej w Paperclip.options[:command_path] (w twoim przypadku /usr/local/bin).

tipically to spowodowane dwoma powodu:

  1. to może być, że rzeczywiście nie zainstalowany ImageMagick.
    • ROZWIĄZANIE: zainstalować go:
      • dla Mac: sudo port install ImageMagick (który instaluje binarną release)
      • dla Ubuntu: sudo sudo apt-get install imagemagick
  2. to może być to miejsce, w którym Zainstalowany ImageMagick nie jest /usr/local/bin, ale coś innego.

    • ROZWIĄZANIE: dowiedzieć się, gdzie jest zainstalowany, lub za pomocą polecenia:

      which identify (w tym przypadku zidentyfikowania jest w bieżącej ścieżce, tak jak powinno być)

    lub przez surowe wyszukiwanie przez system plików:

    find/-name identify

Zresztą zwykle miejsce dla tych plików w Ubuntu powinna być /usr/bin

5

Oto co pracował dla mnie ...

Usunąłem imagemagick, który zainstalowałem z oficjalnej strony internetowej. I ponownie zainstalować go z sudo apt-get install ImageMagick

Potem zrobiłem napisać Paperclip.options [: command_path] = "Do/prawidłowe/ścieżka"

PROBLEM tutaj był ...

kiedy uruchomiłem ", który identyfikuje", jak wygląda, że ​​ścieżka była "usr/local/bin/identification" oznacza to, że my powinniśmy umieścić jako ścieżkę "usr/local/bin" jako moją ścieżkę.

ALE NIE DZIAŁA!

Zaskakująco stwierdziłem, że identyfikowałem się również na ścieżce "usr/bin". Więc zmieniłem: "usr/local/bin" na "usr/bin"

I to było wszystko!

+0

Już go zainstalowałem, ale ponowne zainstalowanie za pomocą 'brew upgrade ImageMagick' naprawiło to za mnie. Nie potrzebowała nawet opcji 'ścieżka_komendy' –

0

usr/bin pracował mnie (Fedora 14 core)

0

Spróbuj uruchomić polecenie zidentyfikować w wierszu poleceń i sprawdzić, czy to daje jakąś wiadomość o błędzie. Dowiedziałem się, że na moim serwerze brakuje niektórych bibliotek delegatów.

identify example.jpg 
2

Możliwe są dwa problemy:

  1. ImageMagick nie jest zainstalowany lub uszkodzony
  2. Spinacz nie jest w stanie znaleźć ImageMagick

Weźmy je jeden po drugim :

1. Sprawdź, czy masz zainstalowaną Image Magick d i pracuje

Typ:

identify 

w linii poleceń, to powinno działać. Jeśli nie zostanie znaleziony lub nie działa, zainstaluj Image Magick. Czy to naprawić? Jeśli nie, to w dalszym ciągu:

2. Pomoc Spinacz znaleźć ImageMagick

Typ:

which identify 

w wierszu polecenia, aby uzyskać ścieżkę do polecenia zidentyfikować. Teraz, w pliku production.rb, dodaj następujący wiersz do bloku konfiguracji:

Paperclip.options[:command_path] = "/usr/bin" 

Uruchom ponownie serwer. To powinno to naprawić.