web-dev-qa-db-fra.com

rails PaperClip et passager `n'est pas reconnu par la commande" Identifier ""

Lorsque je télécharge une photo, mon modèle échoue de validation, eh bien, même sans aucune validation, je suis retourné cette erreur:

/tmp/stream20100103-13830-ywmerx-0 is not recognized by the 'identify' command. and     
/tmp/stream20100103-13830-ywmerx-0 is not recognized by the 'identify' command.

Je suis convaincu que cela n'est pas lié à ImageMagick, car j'ai supprimé tout traitement d'image du téléchargement, j'ai également essayé de télécharger différents types MIME, tels que les fichiers .txt et l'autre.

De plus, j'ai trouvé quelque chose qui peut fonctionner. Un blog post affirme que mettre les éléments suivants dans mon environnement (dans ce cas de développement.rb)

Paperclip.options[:command_path] = "/opt/local/bin"
42
JP Silvashy

Ceci est lié à ImageMagick. Les command_path L'option doit pointer sur l'emplacement où identify est installé. De la ligne de commande, vous pouvez déterminer cela avec which identify.

$ which identify
/some/path/to/identify

Ensuite, ensemble command_path à ce chemin (dans config/environments/development.rb):

Paperclip.options[:command_path] = "/some/path/to"
49
Ryan McGeary

Cela peut également être causé par l'utilisation de versions assez anciennes de Paperclip (par exemple, version 2.4.x) avec des versions plus récentes et incompatibles du Cocaine GEM.

15
Bill Lipa

J'ai pu résoudre ceci en procédant comme suit:

brew uninstall imagemagick
brew install imagemagick
6
Mark Ross

Cela m'est arrivé quand j'ai mis à niveau OS X en lion.

Résolu par ...

  • fait une brew list Pour voir tous les forfaits que vous avez et économisez quelque part

  • désinstallation de Homebrew (voir la "désinstallation 'sur cette page https://github.com/mxcl/homebrew/wiki/installation )

  • réinstallez Homebrew avec l'habituel

    Ruby -e "$ (CURL -FSSL https://raw.github.com/gist/323731 )"

  • réinstallation de tous les paquets brew install ghostscriptbrew install imagemagick etc pour les autres que vous avez

Note, avant que Ghostscript ne réinstallerait que je devais appliquer la suggestion trouvée ici: https://github.com/mxcl/homebrew/issues/6381

brew edit ghostscript

Puis ajoutez le def patches Bloc au bas de la classe Ghostscript:

class Ghostscript < Formula
    .... existing code here ....

    def patches
        { :p0 => 'http://ftp.netbsd.org/pub/NetBSD/packages/pkgsrc/print/ghostscript/patches/patch-ak' }
    end
end 

Le correctif ci-dessus peut être fusionné au moment où vous le lisez.

Après que l'imagemagick ait détecté JPEGS correctement.

TL; DR complètement désinstaller et réinstaller homebrew, Ghostscript (avec patch pour Lion) et ImageMagick

4
Brian Armstrong

Je l'ai travaillé en installant Brew, http://mxcl.github.com/homebrew/

Et puis j'ai tapé:

brew install imagemagick

et après ça

gem install rmagick

Ensuite, je viens de supprimer les chemins d'option (PaperClip.Options [: Command_Path] = "...") que j'ai saisi manuellement dans l'environnement/développement.rb et initialize/papticlip.rb

Ajout de Rmagick au fichier GEM. Redémarré le serveur et cela a fonctionné comme un charme!

3
Philip

Cela a fonctionné à partir de http://arglebargle.posterous.com/path-environment-variable-for-rails-utilisation-pas

Mettre quelque chose comme ça dans le virtualhost (ou partout où le passager est mis en place):

SetEnv PATH /opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/mysql/bin
2
Les Freeman

Pour ajouter une solution potentielle de plus que je n'ai pas vu beaucoup discuté: ldconfig.

J'ai eu le même problème que je viens de passer une journée et demie à suivre. J'ai correctement réinstallé ImageMagick de la source avec le support PNG et JPEG supplémentaires, j'ai ajouté LD_LIBRARY_PATH et DYLD_LIBRARY_PATH Pour les variables d'environnement, je fixe le :command_path Option pour PaperClip dans mon environnement de production Config. Bien que les commandes ImageMagick fonctionnaient de la ligne de commande, rien ne corrige mon problème de papier.

Enfin, après avoir vu ldconfig mentionné en passant, j'ai essayé cela sur un caprice et cela a fonctionné.

Sudo ldconfig

J'ai peut-être pu accomplir la même chose en redémarrant Apache ou le matériel, mais je n'étais pas en mesure de le faire seul.

1
sunkil

Habituellement, il aide à spécifier le chemin de la commande Identifier.

Paperclip.options[:command_path] = "/your/path/to/identify"

..as les autres ont mentionné. Mais le problème peut également se produire s'il y a une inadéquation de version, j'ai récemment mis à jour la version Ruby-On-Rails d'une application (à Rails 3.1.10), mais j'ai oublié de mettre à jour le gemme PaperClip . Après avoir mis à jour la version PaperClip à 2.8.0, cela a fonctionné à nouveau.

1
0x4a6f4672

si vous essayez de télécharger une vidéo, alors "identifier" essaie de déléguer le travail à FFMPEG. Exemple

   identify Desktop/00-ScalingRails-Introduction.mp4      [alaa@Zero>/home/alaa]
   identify: delegate failed `"ffmpeg" -v -1 -vframes %S -i "%i" -vcodec pam -an -f rawvideo -y "%u.pam" 2> "%Z"' @ error/delegate.c/InvokeDelegate/1061.
   identify: unable to open image `/tmp/magick-XXHF4ImT.pam':  @ error/blob.c/OpenBlob/2498

dans cet exemple, l'installation de FFMPEG a supprimé le message d'erreur de la liste des erreurs de validation.

0
Ala'a Mohammad

cela m'est également arrivé, j'ai essayé toute la méthode mentionnée ci-dessus. Je viens de changer la version papier, alors tout fonctionne bien.

0
user1611237

J'ai eu cette question lors de l'utilisation d'OSX + MAMP + PASSAGER + PAPACKIP et après avoir défini le paramètre Command_Path et vous assurez que ImageMagick était correctement installé via Brew, définissez correctement les annuaires TEMP et Téléchargez les annuaires du passager à quelque chose d'écriture, il ne fonctionnerait toujours pas!

La solution consistait à éditer le fichier Envvée pour MAMP dans/Applications/MAMP/Bibliothèque/Bin/Envvée et commentant la ligne Export DyLD_Library_Path.

C'est-à-dire changer la ligne qui dit

export DYLD_LIBRARY_PATH

à

# export DYLD_LIBRARY_PATH

Puis redémarrez MAMP et ressentez l'élation lorsque vos images téléchargent/redimensionnement correctement.

0
petrocket

Juste pour dire, vous pouvez également avoir ce message d'erreur pour ce que cela signifie.

Dans mon cas, la taille du fichier était la longueur de 0 octets car j'ai oublié de le rincer après l'avoir écrite d'un zip et transmettez cette ressource à PaperClip.

Il peut être intéressant de vérifier que vous pouvez réellement ouvrir le fichier avec votre visionneuse préférée avant de lire l'autre réponse de ce fil :)

0
Olivier Amblet

Si vous êtes un utilisateur Mac et que cela n'a posé problème que depuis la mise à jour de votre système d'exploitation à 10.8, il pourrait s'agir d'un problème X11, comme indiqué ici http://support.apple.com/kb/ht529 Englisons

identifier ~/chemin/à/à l'image

Ne travaillait pas pour moi même après avoir essayé toutes les corrections ci-dessus. J'ai installé Xquartz de http://xquartz.macosforge.org/landing/ et maintenant, cela fonctionne à nouveau.

Peut aider les autres trop ...

0
edhamilton812