&tag(RVM); *目次 [#pe269018] #contents *参考情報 [#qc4c7c9a] -[[RVM: Ruby Version Manager - RVM Ruby Version Manager - Documentation:http://beginrescueend.com/]]…公式 *基本 [#g7ec308e] -複数のRubyを使い分けるための仕組み。 -ユーザーディレクトリ内部にインストールするのでsudoしなくて良い。 *RVM本体のインストール [#q540c475] -[[RVM: Ruby Version Manager - RVM Ruby Version Manager - Documentation:http://beginrescueend.com/]]に書いてある手順で実行する。 -RVMをインストールする。2012/02/23(木)現在、安定版でgemsetのdefaultが保存されないという現象を確認。開発版だと大丈夫だった。 --安定版の場合 $ bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer) --開発版の場合 $ bash < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer ) -.bash_profileに環境設定が追加される(zshの場合.zshrcなどに移動しておく)。 [[ -s "/Users/tanaka/.rvm/scripts/rvm" ]] && source "/Users/tanaka/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* -評価する。 $ source ~/.bash_profile -必要要件などを表示する。 $ rvm requirements *運用 [#d35c2313] **インストール可能なRubyを知る [#eb1774f4] -rvmコマンドを実行することでインストール可能なRubyのバージョンが一覧表示される $ rvm known list **Rubyのインストール [#v77a819b] -rvm install <Ruby名> でインストールできる。 rvm install 1.9.3-p194 ***MacでXcode4.3以降を使う場合の注意事項 [#a301b576] すんなりといかない。 ''gcc4.2を使う'' ~ -[[OSX-GCC-Installer]]を利用してgcc4.2をインストールしておく。 -.zshrcなどに次の行を追加。 export CC=/usr/bin/gcc-4.2 ''clangを使って頑張る'' ~ -[[Issue updating Ruby on Mac with Xcode 4.3.1 - Stack Overflow:http://stackoverflow.com/questions/9651670/issue-updating-ruby-on-mac-with-xcode-4-3-1]]が参考になる。 **Rubyの再インストール [#y09bd654] -rvm reinstall <Ruby名>で再インストールできる。 **Rubyの削除 [#g2b1e1bf] - rvm uninstall <Ruby名>で削除できる。 - rvm remove <Ruby名> でソース含めて削除できる。 **Rubyを選択する [#tbcbe60c] - rvm use <Ruby名> で選択できる rvm use 1.9.3-p194 - デフォルトを選択する場合 rvm use 1.9.3-p194 --default *gemset [#ubc4338a] **gemsetとは何か [#we0a8da4] -[[RVM: Ruby Version Manager - Gemset Basics:https://rvm.beginrescueend.com/gemsets/basics/]] -1つのRubyバージョンに対して複数のgemsetと呼ばれる環境を作って切り替えることができる(1.9.3@aとか、1.9.3@bとか)。 **gemsetの生成 [#b534ce6e] -gemset createを使う rvm gemset create sample *Tips [#m47e3c49] **デフォルトを保存する [#n601ab93] -明示的に保存しないかぎり、デフォルトバージョン、gemsetが保存されないので注意(次回ログイン時もとにもどってしまう)。 -保存するには、"--default use"を使う。 $ rvm --default use 1.9.3-p125@test -新しいターミナルを起動し、"rvm list", "rvm gemset list"などを実行しデフォルトが保存されるかどうか確認すること。 **shebangはどうなる? [#md146c34] -今まで#!/usr/local/bin/rubyとか#!/usr/bin/rubyとか書いていた場合次のように変更する(システムワイドで入れれば不要?) #!/usr/bin/env ruby -次のようなスクリプトで確認できる。 #pre{{ #!/usr/bin/env ruby puts RUBY_DESCRIPTION }} *トラブルシューティング [#tb5a2ea7] **Xcode4.3を使うといろいろトラブル [#q2a412e7] -Xcode4.3/MacPorts/opensslなどのからみでトラブルてんこもりだった。 -[[Ruby 1.9.3 + Rails 3.2.1 で segmentation fault -> 解決 - さとうようぞうのblog:http://webcache.googleusercontent.com/search?q=cache:8cyJ2lNWdVYJ:somethingnew2.com/blog/archives/2012/02/ruby_193_rails_321_segmentation_fault.php+http.rb+segmentation+fault&cd=2&hl=ja&ct=clnk&gl=jp]]によると次の手順でインストールする。 #pre{{ $ rvm pkg install iconv $ rvm pkg install openssl $ rvm install ruby-1.9.3-p125 --with-openssl-dir=$rvm_path/usr --with-iconv-dir=$rvm_path/usr }} …これでいくかと思ったがrvm pkg installがうまく動かずだめ。 -osx-gcc-installerが必要?xcodeと同時にいれても大丈夫? **Ubuntuでrailsをインストールしようとするとエラー [#de53d220] -次のエラーが表示される #pre{{ $ gem install rails ERROR: Loading command: install (LoadError) no such file to load -- zlib ERROR: While executing gem ... (NameError) uninitialized constant Gem::Commands::InstallCommand }} -入れ直す $ rvm pkg install zlib $ rvm reinstall ruby-1.9.3-p125 **Ubuntuでbundle installするエラー [#ea711b2e] -nokogiriのエラー[[UbuntuでRails環境構築その2:http://namakesugi.blog42.fc2.com/blog-entry-99.html]]によると、bundle installする前に次の作業が必要 $ sudo apt-get install libxslt-dev libxml2-dev -mysql2のエラー。 $ sudo apt-get install libmysqlclient-dev -sqlite3のエラー $ sudo apt-get install sqlite3 libsqlite3-dev **CentOS6でbundle installするとエラー [#e08f94d9] -nokogiriのエラー $ sudo yum install libxml2-devel libxslt-devel -mysql2のエラー $ sudo yum install mysql-devel -sqlite3のエラー $ sudo yum install sqlite-devel **CentOS5.5でrvmインストール時にerror:14090086:SSL [#ye1d8ad8] -[[CentOS 5.5 に rvm で ruby をインストールする - xykの日記:http://d.hatena.ne.jp/xyk/20111214/1323859416]]によるとCentOS5.Xのサーバー証明書が古いのが原因らしい。次の手順で更新する。 #pre{{ # cd /etc/pki/tls/certs/ # cp ca-bundle.crt ca-bundle.crt.bak # curl http://curl.haxx.se/ca/cacert.pem -o ca-bundle.crt }}