Ruby On Rails : PdfKit Runtime Error - ruby-on-rails-3

pdfkit gem successfully installed in my machine. Then I run gem install wkhtmltopdf-binary and output was
Successfully installed wkhtmltopdf-binary-0.9.9.1
1 gem installed
Installing ri documentation for wkhtmltopdf-binary-0.9.9.1...
unable to convert "\xC0" from ASCII-8BIT to UTF-8 for bin/wkhtmltopdf_linux_386, skipping
unable to convert "\xA3" from ASCII-8BIT to UTF-8 for bin/wkhtmltopdf_linux_x64, skipping
unable to convert "\xCE" from ASCII-8BIT to UTF-8 for bin/wkhtmltopdf_darwin_386, skipping
Installing RDoc documentation for wkhtmltopdf-binary-0.9.9.1...
unable to convert "\xC0" from ASCII-8BIT to UTF-8 for bin/wkhtmltopdf_linux_386, skipping
unable to convert "\xA3" from ASCII-8BIT to UTF-8 for bin/wkhtmltopdf_linux_x64, skipping
unable to convert "\xCE" from ASCII-8BIT to UTF-8 for bin/wkhtmltopdf_darwin_386, skipping
Well, then tried to access the pdf version of my page. But it also showed me an error
Runtime Error ControllerName#show
command failed: "/home/yasir/.rvm/gems/ruby-1.9.3-p194/bin/wkhtmltopdf" "--page-size" "Letter" "--margin-top" "0.75in" "--margin-right" "0.75in" "--margin-bottom" "0.75in" "--margin-left" "0.75in" "--encoding" "UTF-8" "--quiet" "-" "-
"

Add wkhtmltopdf installation path in your pdfkit configuration file (config/initializers/pdfkit.rb) as below
PDFKit.configure do |config|
# Download compatible version of wkhtmltopdf from 'http://wkhtmltopdf.org/downloads.html'
# Install it in your system.
# Then run 'which wkhtmltopdf' in your terminal to identify the path and update it below
config.wkhtmltopdf = '/usr/local/bin/wkhtmltopdf'
end

Related

Unable To Install 'therubyracer v0.12.3' gem in M1 Macbook Pro

I am using M1 Macbook Pro and wants to install therubyracer and libv8 for a rails webapp. But I am unable to do so because of the errors described below. There are several solutions available on the internet but none of them is working for me.
Operating System: macOS Big Sur v11.1.
It would be very helpful if someone can help me with this.
Log:
❯ ruby -v
ruby 2.5.5p157 (2019-03-15 revision 67260) [-darwin20]
❯ bundle -v
Bundler version 1.17.3
❯ brew -v
Homebrew 2.7.5
Homebrew/homebrew-core (git revision e04a30; last commit 2021-01-20)
Homebrew/homebrew-cask (git revision d128de; last commit 2021-01-20)
❯ uname -a
Darwin Vaibhavs-MacBook-Pro.local 20.2.0 Darwin Kernel Version 20.2.0: Wed Dec 2 20:40:21 PST 2020; root:xnu-7195.60.75~1/RELEASE_ARM64_T8101 arm64
❯ brew search v8
==> Formulae
v8 ✔ v8#3.15
==> Casks
amitv87-pip
❯ brew install v8#3.15
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).
==> Updated Formulae
Updated 3 formulae.
==> Updated Casks
Updated 3 casks.
Error: v8#3.15: no bottle available!
You can try to install from source with:
brew install --build-from-source v8#3.15
Please note building from source is unsupported. You will encounter build
failures with some formulae. If you experience any issues please create pull
requests instead of asking for help on Homebrew's GitHub, Twitter or any other
official channels.
❯ brew install --build-from-source v8#3.15
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/cask).
==> Updated Casks
Updated 1 cask.
==> Cloning https://chromium.googlesource.com/external/gyp.git
Updating /Users/vaibhavgupta/Library/Caches/Homebrew/v8#3.15--gyp--git
==> Checking out revision f7bc250ccc4d619a1cf238db87e5979f89ff36d7
HEAD is now at f7bc250c Make gyp/win32 compatible with upstream ninja.
HEAD is now at f7bc250c Make gyp/win32 compatible with upstream ninja.
==> Downloading https://github.com/v8/v8-git-mirror/archive/3.15.11.18.tar.gz
Already downloaded: /Users/vaibhavgupta/Library/Caches/Homebrew/downloads/26ea05158c6c6ebb67cc42075858df9a986f9c615513933b1e62bb707f707854--v8-3.15.11.18.tar.gz
==> make native -j8 library=shared snapshot=on console=readline
Last 15 lines from /Users/vaibhavgupta/Library/Logs/Homebrew/v8#3.15/01.make:
Atomic32 Acquire_Load(volatile const Atomic32* ptr);
^
In file included from ../src/conversions.cc:32:
In file included from ../src/conversions-inl.h:42:
In file included from ../src/platform.h:100:
In file included from ../src/lazy-instance.h:94:
../src/once.h:115:7: error: no matching function for call to 'Acquire_Load'
if (Acquire_Load(once) != ONCE_STATE_DONE) {
^~~~~~~~~~~~
../src/atomicops.h:125:10: note: candidate function not viable: no known conversion from 'v8::internal::OnceType *' (aka 'long *') to 'const volatile v8::internal::Atomic32 *' (aka 'const volatile int *') for 1st argument
Atomic32 Acquire_Load(volatile const Atomic32* ptr);
^
5 errors generated.
make[1]: *** [/private/tmp/v8-3.15-20210120-4211-1soh8ig/v8-3.15.11.18/out/native/obj.target/preparser_lib/src/conversions.o] Error 1
make: *** [native] Error 2
Do not report this issue to Homebrew/brew or Homebrew/core!
❯ brew install v8
==> Downloading https://homebrew.bintray.com/bottles/v8-8.8.278.14.arm64_big_sur.bottle.tar.gz
Already downloaded: /Users/vaibhavgupta/Library/Caches/Homebrew/downloads/457adba5b4da5d7cb7d6d896218ebc5d8f1453782321e97a3df424f4a4e8a821--v8-8.8.278.14.arm64_big_sur.bottle.tar.gz
==> Pouring v8-8.8.278.14.arm64_big_sur.bottle.tar.gz
🍺 /opt/homebrew/Cellar/v8/8.8.278.14: 80 files, 39.9MB
❯ brew --prefix v8
/opt/homebrew/opt/v8
❯ gem install libv8 -v '3.16.14.19'
Fetching libv8-3.16.14.19.gem
Building native extensions. This could take a while...
ERROR: Error installing libv8:
ERROR: Failed to build gem native extension.
current directory: /Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/libv8-3.16.14.19/ext/libv8
/Users/vaibhavgupta/.rvm/rubies/ruby-2.5.5/bin/ruby -I /Users/vaibhavgupta/.rvm/rubies/ruby-2.5.5/lib/ruby/site_ruby/2.5.0 -r ./siteconf20210120-6051-11xeqcl.rb extconf.rb
creating Makefile
Applying /Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/libv8-3.16.14.19/patches/disable-building-tests.patch
Applying /Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/libv8-3.16.14.19/patches/disable-werror-on-osx.patch
Applying /Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/libv8-3.16.14.19/patches/disable-xcode-debugging.patch
Applying /Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/libv8-3.16.14.19/patches/do-not-imply-vfp3-and-armv7.patch
Applying /Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/libv8-3.16.14.19/patches/do-not-use-MAP_NORESERVE-on-freebsd.patch
Applying /Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/libv8-3.16.14.19/patches/do-not-use-vfp2.patch
Applying /Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/libv8-3.16.14.19/patches/fPIC-for-static.patch
Compiling v8 for arm
Using python 2.7.16
Using compiler: c++ (clang version 12.0.0)
Unable to find a compiler officially supported by v8.
It is recommended to use GCC v4.4 or higher
Beginning compilation. This will take some time.
Building v8 with env CXX=c++ LINK=c++ /usr/bin/make arm.release vfp2=off vfp3=on hardfp=on ARFLAGS.target=crs werror=no
GYP_GENERATORS=make \
build/gyp/gyp --generator-output="out" build/all.gyp \
-Ibuild/standalone.gypi --depth=. \
-Dv8_target_arch=arm \
-S.arm -Dv8_enable_backtrace=1 -Dv8_can_use_vfp2_instructions=false -Dv8_can_use_vfp3_instructions=true -Darm_fpu=vfpv3 -Dwerror='' -Dv8_use_arm_eabi_hardfloat=true
CXX(target) /Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/libv8-3.16.14.19/vendor/v8/out/arm.release/obj.target/preparser_lib/src/allocation.o
clang: warning: include path for libstdc++ headers not found; pass '-stdlib=libc++' on the command line to use the libc++ standard library instead [-Wstdlibcxx-not-found]
In file included from ../src/allocation.cc:33:
../src/utils.h:33:10: fatal error: 'climits' file not found
#include <climits>
^~~~~~~~~
1 error generated.
make[1]: *** [/Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/libv8-3.16.14.19/vendor/v8/out/arm.release/obj.target/preparser_lib/src/allocation.o] Error 1
make: *** [arm.release] Error 2
/Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/libv8-3.16.14.19/ext/libv8/location.rb:36:in `block in verify_installation!': libv8 did not install properly, expected binary v8 archive '/Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/libv8-3.16.14.19/vendor/v8/out/arm.release/obj.target/tools/gyp/libv8_base.a'to exist, but it was not found (Libv8::Location::Vendor::ArchiveNotFound)
from /Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/libv8-3.16.14.19/ext/libv8/location.rb:35:in `each'
from /Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/libv8-3.16.14.19/ext/libv8/location.rb:35:in `verify_installation!'
from /Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/libv8-3.16.14.19/ext/libv8/location.rb:26:in `install!'
from extconf.rb:7:in `<main>'
extconf failed, exit code 1
Gem files will remain installed in /Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/libv8-3.16.14.19 for inspection.
Results logged to /Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/extensions/-darwin-20/2.5.0/libv8-3.16.14.19/gem_make.out
❯ gem install libv8 -v '3.16.14.19' -- --with-system-v8
Building native extensions with: '--with-system-v8'
This could take a while...
Successfully installed libv8-3.16.14.19
Parsing documentation for libv8-3.16.14.19
Installing ri documentation for libv8-3.16.14.19
Done installing documentation for libv8 after 0 seconds
1 gem installed
❯ gem install therubyracer -v '0.12.3'
Building native extensions. This could take a while...
ERROR: Error installing therubyracer:
ERROR: Failed to build gem native extension.
current directory: /Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/therubyracer-0.12.3/ext/v8
/Users/vaibhavgupta/.rvm/rubies/ruby-2.5.5/bin/ruby -I /Users/vaibhavgupta/.rvm/rubies/ruby-2.5.5/lib/ruby/site_ruby/2.5.0 -r ./siteconf20210120-6195-ojni3j.rb extconf.rb
checking for -lpthread... yes
checking for -lobjc... yes
checking for v8.h... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
Provided configuration options:
--with-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/Users/vaibhavgupta/.rvm/rubies/ruby-2.5.5/bin/$(RUBY_BASE_NAME)
--with-pthreadlib
--without-pthreadlib
--with-objclib
--without-objclib
--enable-debug
--disable-debug
--with-v8-dir
--without-v8-dir
--with-v8-include
--without-v8-include=${v8-dir}/include
--with-v8-lib
--without-v8-lib=${v8-dir}/lib
/Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/libv8-3.16.14.19/ext/libv8/location.rb:50:in `configure': By using --with-system-v8, you have chosen to use the version (Libv8::Location::System::NotFoundError)
of V8 found on your system and *not* the one that is bundled with
the libv8 rubygem.
However, your system version of v8 could not be located.
Please make sure your system version of v8 that is compatible
with 3.16.14.19 installed. You may need to use the
--with-v8-dir option if it is installed in a non-standard location
from /Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/libv8-3.16.14.19/lib/libv8.rb:7:in `configure_makefile'
from extconf.rb:32:in `<main>'
To see why this extension failed to compile, please check the mkmf.log which can be found here:
/Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/extensions/-darwin-20/2.5.0/therubyracer-0.12.3/mkmf.log
extconf failed, exit code 1
Gem files will remain installed in /Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/therubyracer-0.12.3 for inspection.
Results logged to /Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/extensions/-darwin-20/2.5.0/therubyracer-0.12.3/gem_make.out
❯ gem install therubyracer -v '0.12.3' -- --with-v8-dir=/opt/homebrew/opt/v8
Building native extensions with: '--with-v8-dir=/opt/homebrew/opt/v8'
This could take a while...
ERROR: Error installing therubyracer:
ERROR: Failed to build gem native extension.
current directory: /Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/therubyracer-0.12.3/ext/v8
/Users/vaibhavgupta/.rvm/rubies/ruby-2.5.5/bin/ruby -I /Users/vaibhavgupta/.rvm/rubies/ruby-2.5.5/lib/ruby/site_ruby/2.5.0 -r ./siteconf20210120-6214-10f7ru2.rb extconf.rb --with-v8-dir\=/opt/homebrew/opt/v8
checking for -lpthread... yes
checking for -lobjc... yes
checking for v8.h... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
Provided configuration options:
--with-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/Users/vaibhavgupta/.rvm/rubies/ruby-2.5.5/bin/$(RUBY_BASE_NAME)
--with-pthreadlib
--without-pthreadlib
--with-objclib
--without-objclib
--enable-debug
--disable-debug
--with-v8-dir
--with-v8-include
--without-v8-include=${v8-dir}/include
--with-v8-lib
--without-v8-lib=${v8-dir}/lib
/Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/libv8-3.16.14.19/ext/libv8/location.rb:50:in `configure': By using --with-system-v8, you have chosen to use the version (Libv8::Location::System::NotFoundError)
of V8 found on your system and *not* the one that is bundled with
the libv8 rubygem.
However, your system version of v8 could not be located.
Please make sure your system version of v8 that is compatible
with 3.16.14.19 installed. You may need to use the
--with-v8-dir option if it is installed in a non-standard location
from /Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/libv8-3.16.14.19/lib/libv8.rb:7:in `configure_makefile'
from extconf.rb:32:in `<main>'
To see why this extension failed to compile, please check the mkmf.log which can be found here:
/Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/extensions/-darwin-20/2.5.0/therubyracer-0.12.3/mkmf.log
extconf failed, exit code 1
Gem files will remain installed in /Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/therubyracer-0.12.3 for inspection.
Results logged to /Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/extensions/-darwin-20/2.5.0/therubyracer-0.12.3/gem_make.out
❯ gem install therubyracer -v '0.12.3' -- --with-v8-dir=/opt/homebrew/opt/v8/libexec/
Building native extensions with: '--with-v8-dir=/opt/homebrew/opt/v8/libexec/'
This could take a while...
ERROR: Error installing therubyracer:
ERROR: Failed to build gem native extension.
current directory: /Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/therubyracer-0.12.3/ext/v8
/Users/vaibhavgupta/.rvm/rubies/ruby-2.5.5/bin/ruby -I /Users/vaibhavgupta/.rvm/rubies/ruby-2.5.5/lib/ruby/site_ruby/2.5.0 -r ./siteconf20210120-6235-1hlxxtd.rb extconf.rb --with-v8-dir\=/opt/homebrew/opt/v8/libexec/
checking for -lpthread... yes
checking for -lobjc... yes
checking for v8.h... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
Provided configuration options:
--with-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/Users/vaibhavgupta/.rvm/rubies/ruby-2.5.5/bin/$(RUBY_BASE_NAME)
--with-pthreadlib
--without-pthreadlib
--with-objclib
--without-objclib
--enable-debug
--disable-debug
--with-v8-dir
--with-v8-include
--without-v8-include=${v8-dir}/include
--with-v8-lib
--without-v8-lib=${v8-dir}/lib
/Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/libv8-3.16.14.19/ext/libv8/location.rb:50:in `configure': By using --with-system-v8, you have chosen to use the version (Libv8::Location::System::NotFoundError)
of V8 found on your system and *not* the one that is bundled with
the libv8 rubygem.
However, your system version of v8 could not be located.
Please make sure your system version of v8 that is compatible
with 3.16.14.19 installed. You may need to use the
--with-v8-dir option if it is installed in a non-standard location
from /Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/libv8-3.16.14.19/lib/libv8.rb:7:in `configure_makefile'
from extconf.rb:32:in `<main>'
To see why this extension failed to compile, please check the mkmf.log which can be found here:
/Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/extensions/-darwin-20/2.5.0/therubyracer-0.12.3/mkmf.log
extconf failed, exit code 1
Gem files will remain installed in /Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/gems/therubyracer-0.12.3 for inspection.
Results logged to /Users/vaibhavgupta/.rvm/gems/ruby-2.5.5/extensions/-darwin-20/2.5.0/therubyracer-0.12.3/gem_make.out
This works for me:
Ruby version: 2.6.1
OS version: macOS Big Sur 11.2
Install HomeBrew using Rosetta Termina
https://5balloons.info/correct-way-to-install-and-use-homebrew-on-m1-macs/
brew install v8#3.15
gem install libv8 -v '3.16.14.19' -- --with-system-v8
gem install therubyracer -- --with-v8-dir=/usr/local/opt/v8#3.15
I fixed this by installing V8 on Rosseta 2 as V8 not yet supported for ARM.
You can try this
gem install therubyracer -v '0.12.3' --
--with-v8-dir=/usr/local/opt/v8#3.15
Or install V8 on Rosseta 2.
Update: How to install ruby in x86_64 for M1.
Install homebrew in x86_64. Please refer to this guide How to install ruby on m1
Install ASDF using x86_64
Install all other dependencies on x86_64 only such as postgres, redis, and V8 using x86_64 only.

unable to convert "\x90" from ASCII-8BIT to UTF-8 for bin/wkhtmltopdf_linux_386, skipping

9.3 and rails 3.2.13 in my application to create PDF so i install
gem install wkhtmltopdf and gem install wkhtmltopdf-binary -v '0.9.9.1' but i got following message how to solve this
gem install wkhtmltopdf
Successfully installed wkhtmltopdf-0.1.2
1 gem installed
Installing ri documentation for wkhtmltopdf-0.1.2...
unable to convert "\x90" from ASCII-8BIT to UTF-8 for bin/wkhtmltopdf_linux_386, skipping
unable to convert "\xCE" from ASCII-8BIT to UTF-8 for bin/wkhtmltopdf_darwin_386, skipping
Installing RDoc documentation for wkhtmltopdf-0.1.2...
unable to convert "\x90" from ASCII-8BIT to UTF-8 for bin/wkhtmltopdf_linux_386, skipping
unable to convert "\xCE" from ASCII-8BIT to UTF-8 for bin/wkhtmltopdf_darwin_386, skipping
gem install wkhtmltopdf-binary -v '0.9.9.1'
Fetching: wkhtmltopdf-binary-0.9.9.1.gem (100%)^[[1;2C
Successfully installed wkhtmltopdf-binary-0.9.9.1
1 gem installed
Installing ri documentation for wkhtmltopdf-binary-0.9.9.1...
unable to convert "\xA3" from ASCII-8BIT to UTF-8 for bin/wkhtmltopdf_linux_x64, skipping
unable to convert "\xC0" from ASCII-8BIT to UTF-8 for bin/wkhtmltopdf_linux_386, skipping
unable to convert "\xCE" from ASCII-8BIT to UTF-8 for bin/wkhtmltopdf_darwin_386, skipping
Installing RDoc documentation for wkhtmltopdf-binary-0.9.9.1...
unable to convert "\xA3" from ASCII-8BIT to UTF-8 for bin/wkhtmltopdf_linux_x64, skipping
unable to convert "\xC0" from ASCII-8BIT to UTF-8 for bin/wkhtmltopdf_linux_386, skipping
unable to convert "\xCE" from ASCII-8BIT to UTF-8 for bin/wkhtmltopdf_darwin_386, skipping
The error is while installing the documentation. Try
gem install wkhtmltopdf --no-document
This is the documentation issue. Do this: gem update rdoc before gem installations. It should fix it. Or just ignore the documentation installation with --no-document key

Error "...cannot load such file -- mysql2/2.0/mysql2 (LoadError)". On Windows XP with Ruby 2.0.0

The command rails server throws this error.
C:/Ruby200/lib/ruby/gems/2.0.0/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2/mysql2.rb:2:in `require': cannot load
such file -- mysql2/2.0/mysql2 (LoadError)
I use Ruby 2.0.0 from RubyInstaller on Windows XP box.
I figured out what is the problem but I don't know how to solve it. The problem is that there is no any 2.0/ directory in the mysql2-0.3.11-x86-mingw32 gem. This is the gem that rails installs as its dependency from Gemfile:
GEM
remote: https://rubygems.org/
specs:
... many gems here
mysql2 (0.3.11-x86-mingw32)
... many gems here
DEPENDENCIES
...
mysql2
...
This is what is in that mysql2.rb file:
# C:\Ruby200\lib\ruby\gems\2.0.0\gems\mysql2-0.3.11-x86-mingw32\lib\mysql2\mysql2.rb
RUBY_VERSION =~ /(\d+.\d+)/
require "mysql2/#{$1}/mysql2" # <<-- this is that #2 line that throws an error
It is obvious that it takes the current Ruby version number and uses it as the path segment to reach some mysql2 file. In fact it is mysql2.so file. As I use Ruby 2.0.0 the path segment is 2.0:
mysql2/2.0/mysql2
Ok, now lets see how that directory of mysql2-0.3.11-x86-mingw32 gem looks like:
dir: C:\Ruby200\lib\ruby\gems\2.0.0\gems\mysql2-0.3.11-x86-mingw32\lib\mysql2\
No any 2.0/ directory.
I know the issue about libmysql.dll. I have it in my C:\Ruby200\bin. It doesn't help.
I read this answer https://stackoverflow.com/a/5368767/1114926 from the creator of RubyInstaller. I tried but it didn't help. It works for Ruby 1.9.3 because there is 1.9/ directory. But it doesn't work for Ruby 2.0.0.
How to solve it?
UPD 1:
Thank you for your answer. I've tried. Unfortunately I have ERROR: Failed to build gem native extension. error:
C:\>gem install mysql2 --platform=ruby
Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...
ERROR: Error installing mysql2:
ERROR: Failed to build gem native extension.
C:/Ruby200/bin/ruby.exe extconf.rb
checking for rb_thread_blocking_region()... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=C:/Ruby200/bin/ruby
C:/Ruby200/lib/ruby/2.0.0/mkmf.rb:431:in `try_do': The compiler failed to generate an executable file. (Runtim
eError)
You have to install development tools first.
... other code follows here...
It says:
You have to install development tools first.
But I have full DevKit installed, RubyInstaller installs it. Can't understand what else does it need.
I've already posted an issue to mysql2 GitHub page https://github.com/brianmario/mysql2/issues/364. No answers yet.
Had the absolutely same issue on Windows 7 x64 with Ruby 2.0.0 and DevKit 4.7.
The following steps helped me.
gem uninstall mysql2
Download last MySQL connector from http://cdn.mysql.com/Downloads/Connector-C/mysql-connector-c-noinstall-6.0.2-win32.zip
Extract it to C:\connector-6.0.2
gem install mysql2 --platform=ruby -- '--with-mysql-lib="C:\connector-6.0.2\lib" --with-mysql-include="C:\connector-6.0.2\include" --with-mysql-dir="C:\connector-6.0.2"'
Or even shorter:
gem install mysql2 --platform=ruby -- --with-opt-dir="C:\connector-6.0.2"
uninstall mysql2-0.3.11-x86-mingw32, gems compiled before Ruby200 won't work. You have to compile it yourself.
If you run gem uninstall mysql2 and there is a non compiled version listed then just uninstall mysql2-0.3.11-x86-mingw32 - the compiled version else...
Installation
gem install mysql2 --platform=ruby. that would work.
Follow this guide on installing devkit http://rubyonwindowsguides.github.com/book/ch02-04.html.
Then try again.
Exactly the same behavior when I try to install Redmine on windows XP
when I try to do the "rake generate_secret_token", I got "cannot load
such file -- mysql2/2.0/mysql2 (LoadError)"
and when I try to re build mysql2 using --platform=ruby, I got the
same message as you green.
for the moment, I am stucked there ... but if anybody has anything to allow me to move forward, it will be very welcome.
I will keep informed as well
antoine
I almost done the same what #odiszapc described. Uninstall old gem, download mysql-connector-c-noinstall, unzip, but finally I used this command to build native gem:
gem install mysql2 --platform=ruby -- --with-opt-dir=/c/connector-6.0.2
(If you use git-bash then you can use unix style directory syntax.)
Copy paste from that link: https://github.com/brianmario/mysql2/issues/359. It worked for me.
If after installing the gem, you get an error:
"The specified module could not be found.
C:/Devel/Ruby200/lib/ruby/gems/2.0.0/gems/mysql2-0.3.11/lib/mysql2/mysql2.so"
That can be fixed by copying libmysql.dll to Ruby's bin folder.

Identify error Paperclip and Imagemagick

I recently upgraded to osx 10.8 (Mtn Lion) and now I am having problems with Imagemagick. I get the following error when I try to upload a file:
Command :: identify -format %wx%h '/var/folders/nd/1cw0mqzj0nb3jv8psz_ht9cr0000gn/T/2011Spring20120803-530-2nr1jn.jpg[0]'
[paperclip] An error was received while processing: #<Paperclip::Errors::NotIdentifiedByImageMagickError: /var/folders/nd/1cw0mqzj0nb3jv8psz_ht9cr0000gn/T/2011Spring20120803-530-2nr1jn.jpg is not recognized by the 'identify' command.>
Command :: identify -format %wx%h '/var/folders/nd/1cw0mqzj0nb3jv8psz_ht9cr0000gn/T/2011Spring20120803-530-2nr1jn.jpg[0]'
[paperclip] An error was received while processing: #<Paperclip::Errors::NotIdentifiedByImageMagickError: /var/folders/nd/1cw0mqzj0nb3jv8psz_ht9cr0000gn/T/2011Spring20120803-530-2nr1jn.jpg is not recognized by the 'identify' command.>
I uninstalled / reinstalled homebrew and imagemagick. I even added the rmagick gem (which I didn't need before) but still get the above error.
brew install imagemagick
Error: imagemagick-6.7.7-6 already installed
Here is brew doctor output:
brew doctor
Warning: Setting DYLD_LIBRARY_PATH can break dynamic linking.
You should probably unset it.
Warning: You have uncommitted modifications to Homebrew's core.
Unless you know what you are doing, you should run:
cd /usr/local && git reset --hard
Warning: /usr/bin occurs before /usr/local/bin
This means that system-provided programs will be used instead of those
provided by Homebrew. The following tools exist at both paths:
xml2-config
xmlcatalog
xmllint
xslt-config
xsltproc
Consider amending your PATH so that /usr/local/bin
occurs before /usr/bin in your PATH.
I even added the following to my config/environments/development.rb file
Paperclip.options[:command_path] = "/usr/local/bin"
I uninstalled Imagemagick again and reinstalled it. Now I get the following link errors.
==> Installing imagemagick dependency: jpeg
dyld: DYLD_ environment variables being ignored because main executable (/usr/bin/sudo) is setuid or setgid
==> Downloading http://www.ijg.org/files/jpegsrc.v8d.tar.gz
Already downloaded: /Library/Caches/Homebrew/jpeg-8d.tar.gz
==> ./configure --prefix=/usr/local/Cellar/jpeg/8d
==> make install
Error: The linking step did not complete successfully
The formula built, but is not symlinked into /usr/local
You can try again using `brew link jpeg'
==> Summary
/usr/local/Cellar/jpeg/8d: 18 files, 1.3M, built in 16 seconds
==> Installing imagemagick dependency: libtiff
dyld: DYLD_ environment variables being ignored because main executable (/usr/bin/sudo) is setuid or setgid
==> Downloading http://download.osgeo.org/libtiff/tiff-4.0.2.tar.gz
Already downloaded: /Library/Caches/Homebrew/libtiff-4.0.2.tar.gz
==> ./configure --prefix=/usr/local/Cellar/libtiff/4.0.2
==> make install
Error: The linking step did not complete successfully
The formula built, but is not symlinked into /usr/local
You can try again using `brew link libtiff'
==> Summary
/usr/local/Cellar/libtiff/4.0.2: 241 files, 3.6M, built in 24 seconds
Error: You must `brew link jpeg' before little-cms can be installed
When I type brew link jpeg
Error: No such file or directory - /usr/local/Cellar/jpeg/8c
When I type brew link libtiff
Error: No such file or directory - /usr/local/Cellar/libtiff/3.9.5
So in summary the links are looking for older versions of jpeg (8c instead of 8d) and libtiff (3.9.5 instead of 4.0.2)
Any ideas on how to fix this?
I was able to finally fix it with 2 commands. Simple symbolic link, seems pretty hackish...
jpeg fix
cd /usr/local/Cellar/jpeg
ln -s 8d 8c
libtiff fix
/usr/local/Cellar/libtiff
ln -s 4.0.2 3.9.5

file 'lib' not found when installing rails 3.1 on Mac OS X Lion

I just installed rvm and then rails 3.1rc5 with:
gem install rails --pre
But I got some errors after "Installing ri documentation" and the RDoc documentation:
Successfully installed <bunch of things>
30 gems installed
Installing ri documentation for multi_json-1.0.3...
Installing ri documentation for activesupport-3.1.0.rc5...
Installing ri documentation for builder-3.0.0...
unable to convert "\xF1" from ASCII-8BIT to UTF-8 for README, skipping
unable to convert "\xF1" from ASCII-8BIT to UTF-8 for README.rdoc, skipping
Installing ri documentation for i18n-0.6.0...
Installing <tons more documentation>
Installing ri documentation for rails-3.1.0.rc5...
file 'lib' not found
Installing RDoc documentation for multi_json-1.0.3...
Installing RDoc documentation for activesupport-3.1.0.rc5...
Installing RDoc documentation for builder-3.0.0...
unable to convert "\xF1" from ASCII-8BIT to UTF-8 for README, skipping
unable to convert "\xF1" from ASCII-8BIT to UTF-8 for README.rdoc, skipping
Installing RDoc documentation for i18n-0.6.0...
Installing <tons more documentation>
Installing RDoc documentation for rails-3.1.0.rc5...
file 'lib' not found
The README file issues don't seem to be a big deal, but the 'lib' file not found sounds a bit scary.. why is it doing that? Some searching revealed others having this problem and fixing it with gem install rdoc and then re-running gem install rails --pre. But that still gives the same lib file missing errors for me.
Try using rvm gemset install rails --pre
I installed 3.1.0 on Windows (not rc8, but the final release), and got the "file 'lib' not found" error, installing both ri and RDoc. When I type in 'which ruby', I see it installed in the c:/ruby192/bin directory. I had to create a .rvm directory for myself -- it was not created as part of the install.
the --no-rdoc --no-ri worked, of course. The --pre commands installed rc8 instead of the final release.
What gives?
Installing RDoc fixed this problem for me. I had to do this in the gemset I was using.
rvm use rubyversion#gemset
gem install rdoc
After this I could install gems without the "file 'lib' not found" error.
I had the same problem with rails 3.0.9 on my Mac OS X Lion and the "rvm gemset install rails" trick solved it !
$ rvm gemset install rails
installing rails ...
rails installed.
$ rails -v
Rails 3.0.9
Thanks !
I had a similar issue before, while my solution was this: try to use ruby 1.9.2-head instead of ruby 1.9.2-p290.
rvm install ruby-1.9.2-head
rvm use ruby-1.9.2-head --default
And then, install rails 3.1 again.