#author("2021-01-08T06:25:59+00:00","default:src128","src128") #author("2022-01-16T12:58:32+00:00","default:src128","src128") &tag(rbenv); *目次 [#wce0ab78] #contents *参考情報 [#w3228fc4] -[[rbenvで複数のバージョンのrubyを使用する環境を整える - memo.yomukaku.net:http://memo.yomukaku.net/entries/ApoFwmf]] -[[RVM で Ruby1.9.3 がうまく動いてくれないので、『rbenv』に乗り換えてみた - 牌語備忘録 - pygo:http://d.hatena.ne.jp/CortYuming/20120606/p1]] -[[rbenvインストール及び、とても便利なプラグイン | 答えを知りたい:http://programming.ironsand.net/2014/rbenv-and-plugins-install/]] -[[Rails]] -[[CentOS6/rbenv]] *インストール [#lf25ef40] -ホームディレクトリでgit clone #pre{{ $ cd $ git clone git://github.com/sstephenson/rbenv.git ~/.rbenv }} -rcファイルを編集(.zshrcとか) #pre{{ export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)" }} -ruby-buildをインストール。 git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build -rbenv rehashを自動化 git clone https://github.com/sstephenson/rbenv-gem-rehash.git ~/.rbenv/plugins/rbenv-gem-rehash -rbenv updateを実行可能に git clone https://github.com/rkh/rbenv-update.git ~/.rbenv/plugins/rbenv-update -rubyインストール時にbunlderも同時にインストール可能にする。 git clone https://github.com/sstephenson/rbenv-default-gems.git ~/.rbenv/plugins/rbenv-default-gems -- "~/.rbenv/default-gems"を開き、bundlerを追加 echo bundler > ~/.rbenv/default-gems *使用方法 [#x9a20a99] **rbenv自体を更新 [#w0d0c13f] -gitでダウンロードいた場合以下のコマンドで更新できる。 #pre{{ $ cd ~/.rbenv $ git pull $ cd ~/.rbenv/plugins/ruby-build $ git pull }} **インストール可能なバージョンを取得 [#ke334ec2] -以下のコマンドを実行 rbenv install --list **インストール済みのバージョンを取得 [#k7c015a0] -以下のコマンドを実行 rbenv versions **rubyのインストール(MacPorts) [#x73c2c19] ***2022年初頭 [#h86621a4] -MacPortsがopenssl3に移行したのに対し、Rubyがopenssl3に対応していない。このため以下のコマンドラインが必要。[[MacPorts+rbenvを使用してRubyをビルドする方法【2022年初頭編】 | src256ログ:https://srcw.net/archives/732]] PKG_CONFIG_PATH=/opt/local/libexec/openssl11/lib/pkgconfig RUBY_CONFIGURE_OPTS="--with-openssl-dir=/opt/local/libexec/openssl11 --with-readline-dir=/opt/local" rbenv install 3.0.3 ***古い方法 [#ndfe8745] -opensslや、readlineが必要かも。MacPortsは以下のようにしてインストールする。 #pre{{ $ sudo port install openssl $ sudo port install readline $ RUBY_CONFIGURE_OPTS="--with-openssl-dir=/opt/local --with-readline-dir=/opt/local" rbenv install 1.9.3-p429 $ sudo rbenv rehash }} **rubyのインストール(Homebrew) [#zf0647aa] #pre{{ $ brew install openssl readline $ RUBY_CONFIGURE_OPTS="--with-readline-dir=$(brew --prefix readline) --with-openssl-dir=$(brew --prefix openssl)" rbenv install 1.9.3-p429 $ rbenv rehash }} **rubyのインストール(Ubuntu 20.04) [#d5c1241e] -以下のコマンドで必要なライブラリをインストールしておく。 https://github.com/rbenv/ruby-build/wiki apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libdb-dev #以下も必要かも(ImageMagick、MySQL、SQLite3)、 sudo apt install imagemagick libmagickcore-dev libmagickwand-dev libmysqlclient-dev libsqlite3-dev -以下もインストール。rakeで「ExecJS::RuntimeUnavailable: Could not find a JavaScript runtime.」がでるので。 sudo apt-get install nodejs **rubyのインストール(CentOS8) [#heaedb57] -必要なライブラリのインストール。 sudo dnf install git zlib zlib-devel readline readline-devel openssl openssl-devel curl curl-devel mysql-devel sqlite-devel nodejs -rmagickを使う場合 #pre{{ dnf install -y epel-release dnf config-manager --set-enabled PowerTools dnf install -y ImageMagick ImageMagick-devel }} **rubyのインストール(CentOS6) [#scb5b8ed] -必要なライブラリのインストール。 yum -y install git zlib zlib-devel readline readline-devel openssl openssl-devel curl curl-devel -mysql5.5を使う場合は以下も実行 yum -y --enablerepo=remi install mysql-devel -postgresqlを使う場合は以下も実行 yum -y install postgresql-devel -sqliteを使う場合は以下も実行 yum -y install sqlite-devel -rmagickをインストールする場合 yum -y install ImageMagick-devel **rubyのインストール(Debian) [#k367cdce] -必要なライブラリのインストール。[[Home · rbenv/ruby-build Wiki:https://github.com/rbenv/ruby-build/wiki]] sudo apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev **rubyのアンインストール [#xf6e0443] -rbenv uninstallコマンドで削除できる rbenv uninstall 1.9.3-p392 **globalなrubyのバージョンを指定 [#ce0c2fe5] -確認。systemはシステム標準。 rbenv global -rbenv -rbenvでインストールした、1.9.3-p392を使う。 rbenv global 1.9.3-p392 **プロジェクトごとのrubyを指定。 [#k7976a24] -フォルダの中に、.ruby-versionを作り、そこに、2.0.0-p0と書く。 **rubyの切り替え [#t99a2c94] ,rbenv global <バージョン>,デフォルトで使うRubyの切り替え ,rbenv local <バージョン>,特定ディレクトリ以下のrubyのバージョン指定となる ,rbenv shell <バージョン>,一時的に切り替えたいとき shell > local > globalの順に優先される。 ** shebangから使用する [#f43c0589] -[[ruby local exec · rbenv/rbenv Wiki:https://github.com/rbenv/rbenv/wiki/ruby-local-exec]]によると単に/usr/bin/env経由で呼び出せば.ruby-versionをみてくれるらしい。 #!/usr/bin/env ruby **Passengerのインストール [#u57b9563] -MacPorts/Homebrew/CentOSなどほぼ同様。 -使用するrubyに切り替えておく。 -gemでinstall gem install passenger -passenger-install-apache2-moduleを実行 passenger-install-apache2-module -最後に表示されるLoadModule, PassengerRoot, PassengerRubyの3行をhttpd.conf2貼り付ける。 *トラブルシューティング [#f8431839] **CentOS 6/7でRuby 1.8.7がインストールできない [#b2e598cb] -openssl関連でエラーがでる。 #pre{{ rbenv install --patch 1.8.7-p375 < <(curl -sSL https://gist.githubusercontent.com/src256/552c6474fbae80358829/raw/0235199a77e84eafc1a51a69c9b8aa333e41cc25/install-patched-ruby-1.8.7-p375.sh) }} **CentOS 6.10でRuby 1.9.3がインストールできない。 [#ufe3e9aa] -「warning: implicit declaration of function 'EC_GF2m_simple_method'」というエラーが発生。 -https://qiita.com/kakipo/items/482b32b0c2ec0f9d113c の内容をコピペしてpatch.diffを作成。以下のコマンドでインストールする。 #pre{{ cat patch.diff | rbenv install --patch 1.9.3-p194 }} **CentOSでruby 2.2.0がインストールできない [#d7d24e68] -[[Ruby2.2.0のインストールがlibffi.a: could not read symbols: Bad valueで失敗した件 - まっしろけっけ:http://shiro-16.hatenablog.com/entry/2014/12/26/003810]] -先に以下のコマンドを実行する $ sudo yum install libffi-devel **tmuxと同時に使うとうまく動かない [#l73a9dd3] -[[The master branch of rbenv breaks inside of tmux. · Issue #369 · sstephenson/rbenv · GitHub:https://github.com/sstephenson/rbenv/issues/369]]によると、tmuxを起動したときPATHの再書き換えがおこるせいか? -[[tmuxとrbenvを併用する場合は.rbenv/shimsのパスも通してないとバージョン指定できない - 僕の車輪の再発明:http://kazuph.hateblo.jp/entry/2013/05/06/200059]]にあるように設定するのが簡単かも。 export PATH="${HOME}/.rbenv/bin:${HOME}/.rbenv/shims:${PATH}" **2.1.1がインストールできない [#ve734c53] -[[技術検索パン屋!:http://sandbox.rubyprogrammer.info/qiita/items/5ccd93d9dab30363d722]]によると -homebrewの場合 RUBY_CONFIGURE_OPTS="--with-readline-dir=$(brew --prefix readline) --with-openssl-dir=$(brew --prefix openssl)" rbenv install --patch 2.1.1 < <(curl -sSL 'https://projects.archlinux.org/svntogit/packages.git/plain/ruby/trunk/0001-Fix-undeclared-identifier-error-by-using-the-actual-.patch?id=d54cc2645013754f6a303075eb22df1eecb7676a') -macportsの場合。 RUBY_CONFIGURE_OPTS="--with-openssl-dir=/opt/local --with-readline-dir=/opt/local" rbenv install --patch 2.1.1 < <(curl -sSL 'https://projects.archlinux.org/svntogit/packages.git/plain/ruby/trunk/0001-Fix-undeclared-identifier-error-by-using-the-actual-.patch?id=d54cc2645013754f6a303075eb22df1eecb7676a') -File to patch:と聞かれるので、ext/readline/readline.cを選択。 **CentOS 5.11でRuby 2.1.5がインストールできない [#j4134031] -ruby-buildがうまく動かない?ファイルをダウンロードした直後に以下の表示が…。ただしその後そのままインストールは最後までいく。 BUILD FAILED (CentOS release 5.11 (Final) using ruby-build 20141222) -ruby-buildスクリプトを以下のように変更したらうまくいった? #pre{{ # local openssl="$(command -v "$(brew --prefix openssl 2>/dev/null)"/bin/openssl openssl | hea\ d -1)" local openssl="/usr/bin/openssl" }}