I have application using Rails 4 and Ruby 2. I started to use mongoid-paperclip and it is working fine.
I installed ImageMagick-6.8.6-8. I added Paperclip.options[:command_path] = "/usr/local/bin/" in development.rb. And I have
mongoid-paperclip
rmagick (~> 2.13.2)
cocaine (0.5.1)
When I added "has_mongoid_attached_file :avatar, :styles => { :small => "160x160!" }" I started to get this error: Paperclip::Errors::NotIdentifiedByImageMagickError: Paperclip::Errors::NotIdentifiedByImageMagickError
Any help please I spent hours and hours without any luck.
NOTE: This solution is for OS-X machines and imagemagick installed via "brew"
Some of my students (I teach Rails at a dev bootcamp) had the exact same problem on their Mac OS-X machines. And, the following solution fixed them all.
The Cause
The cause of the problem is that jmagemagick is compiled using a wrong GCC compiler in your box. Although it probably has compiled into an executable (binary), however, when it runs, it fails due to linking errors (it's trying to dynamically load some dependencies, ie, libraries).
The Solution
You need to reinstall imagemagick using a correct GCC. If you have a Mac, please, follow the instructions below:
Open XCode program (if you don't have it, install it)
Go to Preference and open "Download" tab
Download "Command line tool"
After download is complete, open a terminal
Run "brew reinstall imagemagick"
That should do it!
When using brew install imagemagick, it seems to install a precompiled binary that lacks TIFF support. Use this to install ImageMagick with proper TIFF support:
brew install libtiff
brew reinstall imagemagick --with-libtiff
(Credits to Groveriffic: https://stackoverflow.com/a/13150641/235297)
1- I have the same issue, and I solved it, when i configure the dynamic linker run-time bindings to create the necessary links and cache to the most recent shared libraries using the ldconfig command.
So you need to use the following command:
sudo ldconfig /usr/local/lib
Actually, I advice to re-install imagemagick using steps at how-to-install-image-magick-and-setup-paperclip.
2- You need to add the following code in development.rb file:
Paperclip.options[:command_path] = "/usr/local/bin/"
Running these two commands did the trick for me. Remember to use the --force since libtool is keg-only
brew install libtool --universal
brew link libtool --force
Related
When I try running rails console I get this error:
/Users/TuzsNewMacBook/.rvm/gems/ruby-2.3.7/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require':
dlopen(/Users/TuzsNewMacBook/.rvm/rubies/ruby-2.3.7/lib/ruby/2.3.0/x86_64-darwin18/readline.bundle, 9):
Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib (LoadError)
A quick search got me to this post and I've tried a few things:
brew reinstall postgresql (this is indeed the DB for this project)
and
cd /usr/local/opt/readline/lib
ln libreadline.8.0.dylib libreadline.6.2.dylib
(my version of readline is 8)
and
brew link readline --force
But none of these have fixed it.
I recently added pry-coolline, guard and guard-livereload gems to my project if that makes any difference (rails console loaded fine before those). I'm running on the latest macos.
(Update) I’m using pry rails as my rails console, if that makes any difference.
Any help? Thanks.
the error seems to be thrown when searching for /usr/local/opt/readline/lib/libreadline.7.dylib.
Have you tried to symlink that?
So something like:
cd /usr/local/opt/readline/lib
ln -s libreadline.8.0.dylib libreadline.7.dylib
Just tried that on macOS Mojave, ruby 2.5.3p105 and Rails 5.2.2 and worked.
Reinstalling my Ruby version seems to have fixed it:
rvm reinstall 2.3.7
can you try
cd /usr/local/opt/readline/lib
ln -s libreadline.8.dylib libreadline.7.dylib
you are on the right track but it seems like rails is looking for libreadline.7.dylib and libreadline.7.dylib is not there in the folder.
Yes, the best answer is to reinstall.
You can get the version easily by typing:
ruby -v
With rbenv, the command is i.e.:
rbenv install 2.3.7
with rvm:
rvm reinstall 2.3.7
A very simple solution that doesn't involve rebuilding your RVM gemset OR sym-linking libraries.
Add to your Gemfile:
gem 'rb-readline'
If you are doing bundler groups
group :development do
gem 'rb-readline'
end
Then run
> bundle
Let me know if that doesn't work.
Most often in Ruby-applications, this is caused by gems that have extensions (the gems saying "Building native extensions.."), that are built using a specific version of, in this case, readline.
Basically, there are two solutions:
Either, you can symlink version 8 of the gem, to the version missing. This will work in many cases, but if backwards compatibility is broken, it will not.
Or, if the gem actually supports version 8, you can reinstall that specific gem, or "pristine" it by running gem pristine --all.
EDIT: In scope of your "what I've tried", reinstalling PostgreSQL, is also one of the binaries, built using a specific version, that may also require a rebuild, to work with a system library, such as readline.
Got this issue:
dyld: Library not loaded: /usr/local/opt/mpfr/lib/libmpfr.4.dylib
doing...
cd /usr/local/opt/mpfr/lib/
ln -s libmpfr.dylib libmpfr.4.dylib
did the trick for me for macOS Catalina
Background: This has happened when I tried to install tig, but I think this is a common issue that you may have that you need to manually link the installed software into the right path that another software wants.
If you can not find readline installed on your Mac, you should run
brew install readline
After you installed deadline, brew will ask you to link it. But actually you can not link by running
brew link readline
Even you can not link by running
sudo brew link readline
Mac OS will warn you this is extremely dangerous and stop you to do.
The Latest version of readline is version 8, so you will see the error message like
Library not loaded: /usr/local/opt/readline/lib/libreadline.8.dylib
The brew installed deadline at
/usr/local/Cellar/readline/8.0.4
So you have to manually link it to the place that your software wants by using command ls
ln -s /usr/local/Cellar/readline/8.0.4 /usr/local/opt/readline
Enjoy!
So Ive checked a few answers here but I dont think they can work with a vanilla Mojave mac install. Im using 10.14.4 while I did these:
get homebrew from https://brew.sh
$ brew install coreutils : this installs the gnu coreutils pkg for mac, we want the greadlink from this because macOSX's readlink is not the same as the gnu readlink. Its extremely confusing but such is the life in macland.
$ echo 'alias readlink=greadlink' >> ~/.bash_aliases I found macs readlink to be a bit lacking so I overrode the existing readlink by aliasing greadlink. (you can make this usable by all users by $ alias readlink=greadlink >> /etc/bashrc which will enable every user to be able to use it.
$ ln -s /usr/local/opt/readline/lib/libreadline.8.dylib /usr/local/opt/readline/lib/libreadline.7.dylib I linked the already linked .8. file instead of '.8.0.' file because if it were to get updated to .8.1. then my readlink wont break or miss features on the library. Im pretty sure we will format our macs before 9+ comes out.
I would recommend against manually symlink'ing native libraries. Aas of OS X 10.4, the standard include library path /usr/include is no longer used and is locked by SIP (making it difficult to move things to).
Apple ships a “legacy installer” for you to be able to install the headers in the “old location”, which will also resolve your path to correctly find headers installed via brew.
cp /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg ~/Desktop && open ~/Desktop/macOS_SDK_headers_for_macOS_10.14.pkg`
See here for a detailed write-up on what is going on.
My problem was just the same when running lftp.
Just running brew upgrade has solved my problem, as it has updated (among others):
readline 8.0.0_1 -> 8.0.1
lftp 4.8.4 -> 4.8.4_2
I am trying to install the rmagick gem. When I run "gem install rmagick" it gives me the following error:
In file included from rmagick.c:13:
./rmagick.h:1210:51: error: unknown type name 'MagickPixelPacket'
extern void Color_to_MagickPixelPacket(Image *, MagickPixelPacket *, VALUE);
followed by a few similar complaints about missing methods and incorrect parameters(I can post the rest if they seem helpful).
To me, this seems like a version problem, which makes sense because I had ImageMagick 6 installed as well as version 7, so I uninstalled version 6 but the problem persists.
I also had to symlink the following for rmagick to find the required .h files, in case that's significant:
ln -s /usr/local/include/ImageMagick-7/MagickCore /usr/local/include/magick
ln -s /usr/local/include/ImageMagick-7/MagickWand /usr/local/include/wand
I'm on a Macbook, installing things with brew. My current ImageMagick version is 7, but I'm suspicious of some leftover version 6 things causing problems.
Any thoughts? I'm happy to give more information if necessary, but I can't think of anything else at the moment.
Each distribution manages the Ruby gems it's own way, ex :
Debian requires the installation of libmagickwand-dev for this gem
What you whant to look for is see if the gem requires additionnal dependencies or not on Mac ( had similar problems with bundle on Debian )
Thanks to Brad and Matthieu for your suggestions! MiniMagick does seem like a good solution, and Matthieu is definitely right about there being different dependencies from system to system; in my case I ended up giving up on trying to use ImageMagick 7 with RMagick, but I did get it to work with ImageMagick 6. Here's what worked for me:
brew remove imagemagick
PKG_CONFIG_PATH=/usr/local/opt/imagemagick#6/lib/pkgconfig
brew install imagemagick#6
gem install rmagick
Many thanks to this SE post: https://stackoverflow.com/a/41788501/5054505
For the record, I am on OSX Yosemite
Also, see this RMagick issue: https://github.com/rmagick/rmagick/issues/256.
Hopefully this will be fixed soon, but for now it seems like reverting to version 6 is the popular approach.
I am trying to use the Paperclip gem on a Rails project so followed the docs and first installed Imagemagick using the Homebrew recipe.
I added to my model my attachment
has_attached_file :screenshot
This worked OK and the file uploads functioned as expected
I then wanted to add thumbnails to this, so again followed the docs and added to the model
has_attached_file :screenshot,
:styles => { :medium => "300x300>",
:thumb => "100x100>" }
At this point the uploads no longer worked
I check the development logs and noticed this:
[32mCommand[0m :: identify -format %wx%h '/var/folders/ky/r5gsdhbn6yggbglsg727cc900000gn/T/stream20120302-60051-eh17n7.png[0]'
[paperclip] An error was received while processing: #<Paperclip::NotIdentifiedByImageMagickError:
/var/folders/ky/r5gsdhbn6yggbglsg727cc900000gn/T/stream20120302-60051-eh17n7.png is not recognized by the 'identify' command.>
At which point after some googling I thought it might be a problem with setting the default path as an environment variable
Paperclip.options[:command_path] = "/usr/local/bin/"
But I checked that this was correct using
which identify
And it returned this path
/usr/local/bin/identify
As expected
I then tried to run identify from the command line as a test and got this error
dyld: Library not loaded: /usr/X11/lib/libfreetype.6.dylib
Referenced from: /usr/local/bin/identify
Reason: Incompatible library version: identify requires version 14.0.0 or later, but libfreetype.6.dylib provides version 13.0.0
Trace/BPT trap: 5
So I think my problem is not with paperclip, but rather the install of imageMagick via homebrew
I've tried everything suggested including
brew update
brew remove imagemagick
brew install imagemagick
But it hasn't helped i'm running Lion 10.7.2 and have installed the developer tools.
Any suggestions would be very much appreciated.
There's a simpler solution. Either install freetype:
brew install freetype
or, if it's already installed, then you need to recreate the links:
brew unlink freetype && brew link freetype
this will fix everything for you. Well, not everything, but it'll at least fix this problem.
I ran into the same issue. Running a software update on the operating system resolved it for me. The version of libfree is out of date. Paperclip, ImageMagick and Homebrew were all working fine.
After a software update on OSX MoutainLion ImageMagick stopped working for me too, but simply following the steps taken by Chris worked:
brew update
brew remove imagemagick
brew install imagemagick
libfreetype was missing on my Mountain Lion (10.8) installation. In this case, installing XQuartz will replace the missing lib. http://xquartz.macosforge.org/landing/
I hope this helps to someone:
After I try all these solution out there (update brew, reinstall imagemagick, unlink and link again) without success, came to my mind that Paperclip might be the issue. I just do:
bundle update paperclip
And problem solved!
Note: imagemagick is working properly to me. When I run identify -format %wx%h /path/to/a/file from console, it works fine (I get the image's size). The 'identify' problem was happening only from my rails app.
I'm getting this error when I try to run any brew command.
Holger-Sindbaeks-MacBook-Air:~ holgersindbaek$ brew help
-bash: /usr/local/bin/brew: /usr/bin/ruby: bad interpreter: No such file or directory
I have absolutely no idea on how to fix this and been searching for a long time without answer.
I got this error (much the same):
/usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory
/usr/local/bin/brew: line 26: /usr/local/Library/brew.rb: Undefined error: 0
and fixed by the solution below:
Open brew.rb:
$ sudo vim /usr/local/Library/brew.rb
Change the first line's 1.8 to Current:
Before:
#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -W0
After:
#!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -W0
Then brew works for me. Hope it helps if any other one got this issue. :)
If you get the error
Homebrew requires Leopard or higher. For Tiger support, see:
https://github.com/mistydemeo/tigerbrew
change the MACOS check from <10.5 to <10.
Tip by #TimCastelijns:
10.5 doesn't work because in comparison, it's higher than 10.10 (.1 vs .5). I added a check (and MACOS_VERSION != 10.10) instead of lowering from 10.5 to 10.
What you are getting means that Homebrew has not been able to locate the Ruby interpretter at the specified location.
Install Apple Developer Kit (comes with Xcode) which should be available to you as an optional install (or you can simply download it from Apple). This will install the Ruby interpreter for you.
In case you already have Xcode installed, this means that one of these things is happening:
You have a broken Ruby installation
You have more than one Ruby installation
Your installation has not been configured properly.
To identify if this is the first case, you can run ruby and see if you get any response.
If you don't, your installation is broken and you need to reinstall it. If you do, you then run which ruby. This should give you the absolute path to your Ruby executable. If this is anything other than /usr/bin/ruby then homebrew (and a bunch of other programs) will not be able to find it.
In case you have not ever tampered with your Ruby installation, you can check to see if /usr/bin/ruby already exists or not: cat /usr/bin/ruby. If you get No such file or directory, then you can easily create a symbolic link to your Ruby installation. Assuming the output of which ruby to by /usr/local/bin/ruby, you create the symbolic link this way: sudo ln -s /usr/local/bin/ruby /usr/bin/ruby and all should be well.
If there is a file at that location, you can run file /usr/bin/ruby to see if it's a real file, a symbolic link, or a corrupted file. If it is a symbolic link, your installation should be working, and since it's not, it probably is either a corrupted symlink or it's a bogus file.
You can remedy that by first deleting it (sudo rm /usr/bin/ruby) and then creating a new symlink to the correct location (sudo ln -s /usr/local/bin/ruby /usr/bin/ruby).
If non of the above works, you should consult the homebrew team after a clean install of Xcode and removing any traces of a Ruby installation on your system.
EDIT
Alternatively, as pointed out by the other answers, the issue might be because of a bad ruby version in your Homebrew settings.
A quick fix might be updating your Homebrew:
cd /usr/local
git pull -q origin refs/heads/master:refs/remotes/origin/master
If this does not help, you might want to get your hands dirty and manually fix the problem by:
Editing brew.rb from /user/local/Library/brew.rb
Changing /1.8/ to /Current/ in the first line, which will cause the hashbang to point to the current Ruby version as the executor
If this does not help, either, you can also modify the MACOS check and change it from 10.5 to 10 to avoid the infamous "Homebrew requires Leopard or higher" error.
DISCLAIMER
A bunch of thanks to other contributors in the answers below and their commenters. I am not committing plagiarism, simply aggregating the answers into one integrated article to help others.
Fix:
sudo gem install cocoapods
At the risk of oversimplifying things, try running
gem install bundler
I was transitioning my Ruby environment from RBENV to RVM and it worked for me.
This happened because I needed to update brew - in the updated version it already uses Current ruby
cd /usr/local
git pull -q origin refs/heads/master:refs/remotes/origin/master
This solved the problem
You need to change the path for Ruby.Framework
I solved it with commands as mentioned.
brew install cocoapods --build-from-source
brew link --overwrite cocoapods
If you have a lower version below Xcode 11, you have to remove it before you use the above commands.
Reference: Ruby Framework issue
None of the above worked for me, so I kept browsing and found this answer,
https://stackoverflow.com/a/24225960/1359088
which did fix brew for me. He says in step 1 to install XCode 6 command line tools, but doesn't say how; use this command:
xcode-select --install
I got the same issue when updated to MacOSX High Sierra & using Xcode 9 with that. High Sierra update ruby gem to version 2.3 but xcpreety command of Xcode 9 still using Ruby 2.0 which is unable to find now & gives bad interpreter.
Just go to Terminal & run
sudo gem install xcpretty
Restart Xcode & do fresh clean build it works for me.
Hope it helps!!!
After upgrading to macOS High Sierra, get it fixed with following commands:
sudo gem install cocoapods
In my case seems like fastlane installed incorrectly with brew install fastlane system didn't write correct path to fastlane. I fixed it with alias fastlane=~/.fastlane/bin/fastlane
I solved it with commands as mentioned.
1.) Uninstall your GEM.
gem unistall GEM
2.) Then Install your GEM.
sudo gem install GEM -n /usr/local/bin
I got bad interpreter: No such file or directory error when used xcpretty and xcpretty-travis-formatter on upgraded MacOS.
To solve it
gem install xcpretty
gem install xcpretty-travis-formatter
That is why I can recommend you to reinstall failed component gem install <name>
#For example error looks like
/usr/local/bin/xcpretty-travis-formatter: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby: bad interpreter: No such file or directory
#use
gem install xcpretty-travis-formatter
I'm on OSX Snow Leopard though I think this may not be a platform-specific issue.
The problem is I've wasted hours of my life trying to get gem install rmagick to work and I'm hoping to save the next person that grief.
I believe the core problem is summed up in the title.
Questions:
Can anyone confirm that Rmagick 2.13.1 doesn't work with ImageMagick 6.6.4?
What's the best solution to getting Rmagick installed on Snow Leopard?
Should MacPorts be used to install ImageMagick? (I couldn't figure out how to tell macports to use an old version of ImageMagick.)
And finally:
Getting ImageMagick to work at all now is giving me fits because I've tried installing various versions in various ways and they're interfering with each other.
Below are instructions for purging and reinstalling macports (is that necessary?) but I'm not sure how to clean up other libraries for doing a fresh ImageMagick install.
For example, I currently get the following error trying to run ImageMagick
dyld: Library not loaded: /usr/local/lib/libfreetype.6.dylib
Referenced from: /usr/local/bin/convert
Reason: Incompatible library version: convert requires version 11.0.0 or later,
but libfreetype.6.dylib provides version 10.0.0
Perhaps just getting rid of /usr/local/lib/libfreetype* before reinstalling suffices (I'll confirm here when I get ImageMagick working) but is there a more complete/definitive way to do a fresh install of a specific version of ImageMagick?
Appendix: Purging and reinstalling MacPorts
Purge: http://guide.macports.org/#installing.macports.uninstalling
Reinstall from scratch:
http://distfiles.macports.org/MacPorts/MacPorts-1.9.1-10.6-SnowLeopard.dmg
(as of 2010.10.09 -- check http://distfiles.macports.org/MacPorts for latest version)
Then do sudo port selfupdate just to be sure.
RMagick is an... interesting library. If at all possible, avoid it's usage. If you're just resizing images and other basic things, look at minimagick. The main issue with RMagick stems from memory usage and leaks - not usually apparent in development, but in production they get ugly fast.
My advice would be to look at alternatives if at all possible - if you have to do more complex work, it might actually be preferable to use Python/PIL for that instead (wrapped with Ruby - I use this to get at OpenCV, for example). Depends on your use case.
If you really need RMagick, then Homebrew might work better than ports. I'm a Linux guy where this stuff tends to Just Work, and over there the definitive way to get things like ImageMagick set up properly outside of package managers is to build it from source. Not sure how practical that is on OSX, but it might be worth a shot if all else fails.
I am also stuck trying to install an earlier version of ImageMagick, but I'm trying to do it via Homebrew. Along the way, however, I discovered how to install older packages via MacPorts, and it did work for me (although I had to ditch MacPorts for other reasons).
Instructions for moving to an older port version are here:
https://trac.macports.org/wiki/howto/InstallingOlderPort
Fundamentally, the answer indeed seems to be that you need an older version of ImageMagick for Rmagick to work (at least under Snow Leopard).
I've confirmed that ImageMagick 6.5.6-10 works with Rmagick 2.13.1.
(Rmagick homepage says it's been tested up through ImageMagick 6.6.1-0. Version 6.6.1-0 doesn't seem to be available but probably 6.6.1-10, which is available, is fine too.)
All the troubles with MacPorts were probably mostly red herrings. Still, MacPorts does not seem to have a way to install a previous version of ImageMagick so I installed it from source.
HomeBrew might be a better option.
The errors I was getting with ImageMagick were solved for me by removing /usr/local/lib/libfreetype* and reinstalling ImageMagick.
I also purged and reinstalled MacPorts but I don't know that that was necessary.
Here are the exact steps I took to get this working, as best as I can reconstruct them.
Purge and reinstall MacPorts (see appendix of the question above).
Remove /usr/local/lib/libfreetype*
sudo port -v install freetype +bytecode
sudo port -v install librsvg
I didn't do this but some people might want: sudo port -v install graphviz +gs +wmf +jbig +jpeg2 +lcms
cd /usr/local/src
curl 'ftp://ftp.imagemagick.org/pub/ImageMagick/legacy/ImageMagick-6.5.6-10.tar.gz' > ImageMagick-6.5.6-10.tar.gz (This will probably work too: ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-6.6.1-10.tar.gz)
tar xzvf ImageMagick-6.5.6-10.tar.gz
cd into there but don't follow the instructions in Install-whatever.txt because they're all messed up.
export CPPFLAGS=-I/usr/local/include
export LDFLAGS=-L/usr/local/lib
./configure --prefix=/usr/local --disable-static --with-modules --without-perl --without-magick-plus-plus --with-quantum-depth=8 --disable-openmp --with-gs-font-dir=/usr/local/share/ghostscript/fonts
make
sudo make install
gem install rmagick
Phew! Note that steps 3-14 could probably be replaced with this: http://github.com/masterkain/ImageMagick-sl