月別アーカイブ: 2011年3月
SSLでsrcなしのiframeはIE6でエラーになる
IE6では、SSLでsrcなしのiframeはエラーになる。
<iframe src="javascript:'';"></iframe>
で回避。
PDFを作成するRubyライブラリ Prawn
Mac OSXにHaru Free PDF Libraryをインストール
libHaruはPDFを生成するCのライブラリ。
Ruby、Delphi/Free Pascal、C#(Microsoft .NET platform)、PHP、Perlから利用可能にするbindingもある。
libHaru.org wiki
ダウンロードページからソースをダウンロードしてインストールする。
libpngはMacPortsでインストールしているので、--with-png=/opt/local を指定。
$ tar xzvf libharu-2.1.0.tar.gz $ cd libharu-2.1.0/ $ ./configure --with-png=/opt/local $ make $ sudo make install
Ruby用のライブラリをインストールする。
Documentation/Bindings - libHaru.org wiki
$ cd if/ruby/ $ ruby extconf.rb $ sudo make install
Mac OSX Snow Leopard でRVMを使って1.8.7と1.9.xを共存
Mac OSX (Snow Leopard) で、MacPortsのRuby1.8.7を使っているが、1.9.2も使いたいので、RVMでRuby1.9.2をインストールしてみた。
RVMのインストール
$ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile
RVM: Ruby Version Manager - Installing RVM
RVMのアップデート
$ rvm get latest
RVM: Ruby Version Manager - Upgrading RVM
rvm get latest がエラーになる場合は、
$ rvm get head $ rvm get latest
Gamburtsev: rvm get latest が失敗する場合
Rubyのインストール
インストール可能なRubyの確認
$ rvm list known # MRI Rubies [ruby-]1.8.6[-p420] [ruby-]1.8.6-head [ruby-]1.8.7[-p334] [ruby-]1.8.7-head [ruby-]1.9.1-p378 [ruby-]1.9.1[-p431] [ruby-]1.9.1-head [ruby-]1.9.2-preview1 [ruby-]1.9.2-preview3 [ruby-]1.9.2-rc1 [ruby-]1.9.2-rc2 [ruby-]1.9.2[-p180] [ruby-]1.9.2-head ruby-head # GoRuby goruby # JRuby jruby-1.2.0 jruby-1.3.1 jruby-1.4.0 jruby[-1.5.6] jruby-1.6.0.RC1 jruby-1.6.0.RC2 jruby-head # Rubinius rbx-1.0.1 rbx-1.1.0 rbx-1.1.1 rbx-1.2.0 rbx-1.2.1 rbx[-head] # Ruby Enterprise Edition ree-1.8.6 ree[-1.8.7][-2011.03] ree-1.8.6-head ree-1.8.7-head # MagLev maglev[-25315] maglev-head # Mac OS X Snow Leopard Only macruby[-0.8] # the default macruby macruby-nightly macruby-head # Build from the macruby git repository # IronRuby -- Not implemented yet. ironruby-0.9.3 ironruby-1.0-rc2 ironruby-head
1.9.2をインストールする
$ rvm pkg install readline $ rvm install 1.9.2 --with-readline-dir=$rvm_path/usr
これで[ruby-]1.9.2[-p180](現時点)がインストールされる。
※ rvm pkg で readline をインストールして、それをRubyインストール時に指定しているのは、irbで日本語が入力できなかったから。
最初、普通にrvm install 1.9.2 でインストールしたら、irbで日本語を入力すると、
ruby-1.9.2-p180 :001 > "???" SyntaxError: (irb):1: invalid multibyte char (UTF-8) (irb):1: invalid multibyte char (UTF-8) from /Users/pistolfly/.rvm/rubies/ruby-1.9.2-p180/bin/irb:16:in `<main>'
となってしまった。
Ruby 1.9 - Bug #550: irbで日本語を入力できない - Ruby Issue Tracking System
と同じような現象なので、rvm pkgでreadlineをインストールして、Rubyインストール時に指定すると、大丈夫になった。
RVM: Ruby Version Manager - 'rvm package install readline'
※ Mac OSX Lion ではreadline(の互換ライブラリlibedit)が改善されたらしく、RVMのreadlineを使わなくても大丈夫になっている。
使用するRubyを選択
$ rvm use 1.9.2 Using /Users/pistolfly/.rvm/gems/ruby-1.9.2-p180 $ ruby -v ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.6.0]
RVMでインストールされているRubyを確認
$ rvm list rvm rubies => ruby-1.9.2-p180 [ x86_64 ]
デフォルトの Rubyを設定する
デフォルトのRubyを設定する。
$ rvm --default use 1.8.7
デフォルトのRubyに変更。
$ rvm default
デフォルトの設定を確認。
$ rvm list default Default Ruby (for new shells) ruby-1.8.7-p352 [ x86_64 ]
デフォルトの設定をリセットする。
$ rvm reset
RVM: Ruby Version Manager - 'rvm default' - setting default ruby for new terminals
システムのRubyに戻す
$ rvm system
Rubyのアップグレード
RVM: Ruby Version Manager - Upgrading RVM.
例: 1.9.2-p180を1.9.2-p290にアップグレードする
$ rvm upgrade 1.9.2-p180 1.9.2-p290
screenで使う場合
~/.screenrcに以下を記述する。
shell -${SHELL}
RVM: Ruby Version Manager - RVM inside Screen
RubyGems
gemを使う時にsudoしないこと。
RVM: Ruby Version Manager - 'rvm gemdir' - RubyGems and RVM
Ruby 1.9.2 にruby-debugをインストール
Ruby 1.9.2 では「ruby-debug19」をインストールする。
debuggerを入れた方がよい。
1.9.2、1.9.3で動作するruby-debug19のfork「debugger」
<strike>$ gem install ruby-debug19</strike> $ gem install debugger
Ruby 1.9.2 にmongrelをインストール
Ruby 1.9.2 では、現時点では、1.2.0.pre2をインストールする。
mongrel | RubyGems.org | your community gem host
$ gem install mongrel -v 1.2.0.pre2 --pre
nkfのオプション一覧
CentOSにImageMagickをソースからインストール → RMagickをインストール
ImageMagickが依存しているライブラリをyumでインストール。
$ sudo yum install bzip2-devel lcms-devel libjpeg-devel libX11-devel libXt-devel libtiff-devel ghostscript-devel libXext-devel libpng-devel
ImageMagickのダウンロードサイトからソースを取得して、ビルドとインストールを行う。
$ wget ftp://ftp.../ImageMagick.tar.gz $ tar xzvf ImageMagick.tar.gz $ cd ImageMagick-6.6.7-10/ $ ./configure && make $ sudo make install
インストールを確認
$ which Magick-config /usr/local/bin/Magick-config $ Magick-config --version 6.6.7 Q16
RMagickをインストール
$ sudo gem install rmagick
ここで、
Building native extensions. This could take a while... ERROR: Error installing rmagick: ERROR: Failed to build gem native extension. /usr/local/bin/ruby extconf.rb checking for Ruby version >= 1.8.5... yes checking for gcc... yes checking for Magick-config... no Can't install RMagick 2.13.1. Can't find Magick-config in /usr/bin:/bin *** 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=/usr/local/bin/ruby Gem files will remain installed in /usr/local/lib/ruby/gems/1.8/gems/rmagick-2.13.1 for inspection. Results logged to /usr/local/lib/ruby/gems/1.8/gems/rmagick-2.13.1/ext/RMagick/gem_make.out
のように
Can't install RMagick 2.13.1. Can't find Magick-config in /usr/bin:/bin
というエラーになる場合は、sudoした時に/usr/local/binにPATHが通っていない(環境変数が引き継がれていない)ので、PATHが引き継がれるよう設定してから、再度rmagickをインストールする。
$ sudo gem install rmagick Building native extensions. This could take a while... Successfully installed rmagick-2.13.1 1 gem installed
ldconfig
実行時に以下のようなエラーになる場合
libMagickCore.so.4: cannot open shared object file: No such file or directory - /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rmagick-2.13.1/lib/RMagick2.so /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rmagick-2.13.1/lib/RMagick2.so
これは、共有ライブラリが認識されていないために起きている。
libMagickCore.so.4が/usr/local/libに存在するのに認識されていない場合は、/usr/local/libをldconfigで追加してやる必要がある。
まず、ldconfigを実行してキャッシュを生成する。
$ sudo /sbin/ldconfig
それでもエラーになる場合は、ldconfig に -p オプションを付けて実行してキャッシュを確認してみる。
$ sudo /sbin/ldconfig -p
ldconfig -p の出力結果にlibMagickCore.so.4が見つからない場合は、ディレクトリを追加する必要がある。
ldconfigで読み込まれる/etc/ld.so.confを編集。
include ld.so.conf.d/*.conf
となっていたのを
/usr/local/lib include ld.so.conf.d/*.conf
のように、共有ライブラリが含まれるディレクトリを追加する。
そしてldconfigを実行してキャッシュを作成する。
$ sudo /sbin/ldconfig
-pオプションでキャッシュを確認。
$ sudo /sbin/ldconfig -p
出力結果に、以下のように使用する共有ライブラリが含まれるようになればOK。
libMagickWand.so.4 (libc6,x86-64) => /usr/local/lib/libMagickWand.so.4 libMagickWand.so (libc6,x86-64) => /usr/local/lib/libMagickWand.so libMagickCore.so.4 (libc6,x86-64) => /usr/local/lib/libMagickCore.so.4 libMagickCore.so (libc6,x86-64) => /usr/local/lib/libMagickCore.so libMagick++.so.4 (libc6,x86-64) => /usr/local/lib/libMagick++.so.4 libMagick++.so (libc6,x86-64) => /usr/local/lib/libMagick++.so
Railsアプリケーションで
config.gem "rmagick", :lib => "RMagick"
としている場合に、
Missing these required gems: rmagick >= 0
というエラーになってしまう場合も共有ライブラリが認識されていない可能性があるので、ldconfigをチェックする。
Can't install RMagick 2.13.1. Can't find MagickWand.h.
Can't install RMagick 2.13.1. Can't find MagickWand.h.
というエラーでRMagickをインストールできない場合は、PKG_CONFIG_PATHを設定してインストールする。
Can’t install RMagick 2.13.1. Can’t find MagickWand.h.