2010-07-11 18 views
24

मैं रेलवे पर छवि अपलोड को संभालने के लिए पेपरक्लिप का उपयोग कर रहा हूं। यह मेरे देव OSX मशीन पर ठीक काम किया, लेकिन अब मेरे वेब सर्वर पर मैं इस त्रुटि मिलती है:रेल में पेपरक्लिप छवि अपलोड - पेपरक्लिप :: कमांड नॉटफाउंड एरर

[paperclip] /Users/marky/bin/identify '-format' '%wx%h' '/tmp/stream,16451,2.JPG[0]' 2>/dev/null 
[paperclip] An error was received while processing: #<Paperclip::CommandNotFoundError: Paperclip::CommandNotFoundError> 
[paperclip] /Users/marky/bin/identify '-format' '%wx%h' '/tmp/stream,16451,2.JPG[0]' 2>/dev/null 
[paperclip] An error was received while processing: #<Paperclip::CommandNotFoundError: Paperclip::CommandNotFoundError> 

अब यह मेरे कारण स्पष्ट रूप से समझ; पहचान वास्तव में/usr/bin/नहीं/उपयोगकर्ता/marky/bin/जो मेरी dev मशीन से है में है। मेरे पास है:

Paperclip.options[:command_path] = "/usr/bin" 
मेरी development.rb में

, लेकिन मैं अभी भी त्रुटि मिल रही है। मुझे नहीं पता कि इसे कैसे ठीक किया जाए, क्या कोई मदद कर सकता है?

+0

मैं भी एक ही समस्या आ रही है। ऐसा लगता है कि मेरे मामले में यात्री के साथ कुछ करना है क्योंकि यह मोन्गल के साथ ठीक काम करता है। क्या आप यात्री का उपयोग कर रहे हैं? – TenJack

+0

मुझे समान त्रुटि हो रही थी, लेकिन जब मैंने Paperclip.options [: command_path] = "/ usr/bin" को develop.rb में सेट किया है, यह अब काम करता है। पीएस, मैं Heroku –

उत्तर

16

यदि आप यात्री के साथ अपना आवेदन होस्ट कर रहे हैं, तो ध्यान रखें कि यात्री के पास आपके लॉग इन उपयोगकर्ता के समान $ PATH चर नहीं है। जांच करने के लिए यात्री देख सकते हैं कि ImageMagick आदेशों का अच्छा तरीका अपने ERB टेम्पलेट्स में से एक में जोड़ने के लिए है:

<%= `which convert` %> 
<%= `echo $PATH` %> 

और अपने टर्मिनल में एक ही आदेशों चल साथ परिणामों की तुलना करने के लिए। एक अन्य संभावना है ImageMagick इसे आवश्यक libs नहीं मिल सकता है। इस मामले में, आप एक और चर निर्यात करने के लिए ImageMagick पता जहां libs हैं यह बताने के लिए आवश्यकता हो सकती है:

# my config/environments/development.rb 
Paperclip.options[:command_path] = "DYLD_LIBRARY_PATH='/Users/jch/Library/ImageMagick-6.6.3/lib' /Users/jch/Library/ImageMagick-6.6.3/bin" 

आशा है कि मदद करता है -jerry

+1

होना चाहिए, आप केवल शैल में टाइप कर सकते हैं: heroku console% x {convert -version} +% x {जो कनवर्ट करें} –

+2

सुनिश्चित करें कि आप सर्वर को पुनरारंभ करें (या बदल रहा है) पेपरक्लिप.प्शन [: command_path] वातावरण/development.rb – gef

5

आप अपनी मशीन पर ImageMagick इंस्टॉल कर सकते हैं। ये समस्या उत्पन्न करती है क्योंकि इसे कुछ विधियां नहीं मिलेंगी।

अपनी मशीन पर ImageMagick स्थापित करने के लिए टर्मिनल पर बस 'कन्वर्ट' कमांड चलाएं।

+0

हाय पर हूँ, आपके उत्तर के लिए धन्यवाद। हाँ मेरे पास ImageMagick मेरी मशीन पर स्थापित है।जब मैं टर्मिनल में 'कन्वर्ट' कमांड चलाता हूं तो यह ठीक चलता है। कोई अन्य विचार? यह स्पष्ट रूप से पथ है, लेकिन मुझे नहीं पता कि इसे कैसे बदला जाए। – Marky

+0

आह, लेकिन अगर मैं कमांड लाइन से 'पहचान' चलाता हूं तो यह भी ठीक चलता है इससे कोई फर्क नहीं पड़ता कि मैं इसे किस फ़ोल्डर से चलाता हूं, क्या इसका मतलब है कि कोई और समस्या है? – Marky

17

ImageMagick

1) apt-get install imagemagick 
2) apt-get install libmagickwand-dev 
3) gem install rmagick 

मुझे लगता है कि आप एक दूसरे याद कर रहे हैं के साथ काम करने के लिए निम्न पैकेज को स्थापित करें।

+0

apt-get imagemagick इंस्टॉल करें पैकेज सूची पढ़ना ... बिल्डिंग निर्भरता पेड़ राज्य की जानकारी पढ़ना ... छविमैजिक पहले से ही नवीनतम संस्करण है। निम्न पैकेज स्वचालित रूप से स्थापित किया गया था और अब की आवश्यकता है: apache2-mpm कार्यकर्ता libapr1 libaprutil1-ldap apache2-utils apache2.2-आम libaprutil1-DBD-sqlite3 apache2.2-बिन-ssl प्रमाणपत्र libaprutil1 प्रयोग करें 'उपयुक्त उन्हें हटाने के लिए autoremove 'भूल जाओ। 0 नवीनीकृत, 0 नए स्थापित, 0 को हटाने के लिए और 0 अपग्रेड नहीं किया गया। – Marky

+0

apt-get install libmagickwand-dev पैकेज सूची पढ़ना ... बिल्डिंग निर्भरता पेड़ राज्य की जानकारी पढ़ना ... libmagickwand-dev पहले से ही नवीनतम संस्करण है। निम्न पैकेज स्वचालित रूप से स्थापित किया गया था और अब की आवश्यकता है: apache2-mpm कार्यकर्ता libapr1 libaprutil1-ldap apache2-utils apache2.2-आम libaprutil1-DBD-sqlite3 apache2.2-बिन-ssl प्रमाणपत्र libaprutil1 प्रयोग करें 'उपयुक्त उन्हें हटाने के लिए autoremove 'भूल जाओ। 0 नवीनीकृत, 0 नए स्थापित, 0 को हटाने के लिए और 0 अपग्रेड नहीं किया गया। – Marky

+0

मणि rmagick मूल एक्सटेंशन बनाना। इसमें कुछ समय लग सकता है ... सफलतापूर्वक स्थापित rmagick-2.13.1 1 मणि स्थापित धन्यवाद! बस उपरोक्त सभी भाग गया। क्या इसका मतलब है कि वास्तव में rmagick स्थापित नहीं किया गया था? – Marky

1

चेक, अगर आप ImageMagick

which convert 
चलाकर स्थापित आपके कंसोल में

। मेरे मामले में, परिणाम के बाद किया गया था:

$ which convert 
/usr/bin/convert 

तो मैं में निम्नलिखित पंक्ति जोड़ config/वातावरण/development.rb जो पेपरक्लिप बताता है जहां ImageMagick

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

यदि पेपरक्लिप.ऑप्शन [: command_path] = "/ usr/local/bin /" या aperclip में शो/usr/bin/convert को कनवर्ट करता है। विकल्प [: command_path] = "/ usr/bin/convert /" – Sam

2

खोजने के लिए मेरे मामले में , उत्पादन सर्वर (एनजीआईएनएक्स + यात्री) के लिए पर्यावरण फ़ाइल के तहत पेपरक्लिप कमांड पथ विकल्प को सेट नहीं किया गया।

मैं बजाय paperclip.rb प्रारंभकर्ता फाइल में यह निर्धारित किया है:

Paperclip.options[:command_path] = "/usr/bin/" if Rails.env.production? 
+0

मुझे nginx को अद्यतन करने के बाद यह समस्या थी। समाधान के लिए धन्यवाद! – penner

संबंधित मुद्दे