Rubyのバージョンを管理するためのrbenvの使い方
ユーザーディレクトリに複数のバージョンのrubyをインストールして使用することを管理するためにrbenvが使用され、代替手段としてrvmが使用されます。その違いは rbenv のドキュメントで説明されており、コミュニティで議論されています。
システム要件
OSX:インターネットアクセスの良い場所を探し、アプリストアからxcode.appをダウンロードし、インストール後、実行し、設定のダウンロードにCommand Line Toolsをインストールしてください。
Linuxです。jrubyのみjreがある場合は、開発環境(コンパイル・リンクツール、rubyの依存関係)をインストールしてください。
rbenvのインストール
OSxではhomebrewで直接インストールできます。以下は手動でのインストール手順です。(zshを使わない人は、自分のシェルの設定ファイルに置き換えてください)
javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:992)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
at okhttp3.internal.connection.RealConnection.connectTls(RealConnection.java:336)
at okhttp3.internal.connection.RealConnection.establishProtocol(RealConnection.java:300)
at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:185)
at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.java:224)
at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.java:108)
at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.java:88)
at okhttp3.internal.connection.Transmitter.newExchange(Transmitter.java:169)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:41)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:94)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:88)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:221)
at okhttp3.RealCall.execute(RealCall.java:81)
at com.jftech.investment.cloud.impl.sync.NewInformationSyncService.getImgFileObject(NewInformationSyncService.java:469)
at com.jftech.investment.cloud.impl.sync.NewInformationSyncService.getThumbnailId(NewInformationSyncService.java:505)
at com.jftech.investment.cloud.impl.sync.NewInformationSyncService.getThumbnailId(NewInformationSyncService.java:519)
at com.jftech.investment.cloud.impl.sync.NewInformationSyncService.getMorningPost(NewInformationSyncService.java:537)
at com.jftech.investment.cloud.impl.sync.NewInformationSyncService.saveMorningPost(NewInformationSyncService.java:334)
at com.jftech.investment.cloud.impl.sync.NewInformationSyncService.lambda$null$1(NewInformationSyncService.java:226)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.EOFException: SSL peer shut down incorrectly
at sun.security.ssl.InputRecord.read(InputRecord.java:505)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
... 32 common frames omitted
そして、次のコードを ~/.bash_profile に記述します。
System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2");
注 Unubtu は ~/.bashrc に、zsh ユーザーは ~/.zshrc に置く必要があります。
その後、ターミナルを開き直して、rbenvを実行してください。
使用方法
rubyのインストール
rbenv install --list # List all ruby versions
rbenv install 1.9.3-p392 # install 1.9.3-p392
rbenv install jruby-1.7.3 # install jruby-1.7.3
バージョン一覧
rbenv versions # List the installed versions
rbenv version # List the version in use
設定バージョン
rbenv global 1.9.3-p392 # The default is 1.9.3-p392
rbenv shell 1.9.3-p392 # The current shell uses 1.9.3-p392, which sets an `RBENV_VERSION` environment variable
rbenv local jruby-1.7.3 # The current directory uses jruby-1.7.3, which generates a `.rbenv-version` file
MacOSXでRubyをコンパイルするとirbで中国語が入力できない場合の対処法
homebrew用のreadlineをインストールし、ソースディレクトリに移動してreadline.bundleを再コンパイルしてインストールします。
brew install readline
brew link readline
cd src/ruby-1.9.3-p392/ext/readline
ruby extconf.rb --with-readline-dir=$(brew --prefix readline)
make install
rbenvの下での解決策
brew install readline
CONFIGURE_OPTS="--disable-install-doc --with-readline-dir=$(brew --prefix readline)" rbenv install 1.9.3-p392
OS X 10.7+ での ruby-2.0.0-p0 については、https://github.com/sstephenson/ruby-build/wiki を参照してください。
その他
rbenv rehash # This command must be run whenever you switch ruby versions and after bundle install
rbenv which irb # List the full path to the irb command
rbenv whence irb # List the versions of the command that contain irb
rbenv で gemset を使用する
はじめに
rvmの最も便利な部分はgemsetです。rbenvはプラグインを通して実際にgemsetを使用することができます。
インストール
MacOSのbrewでは、コマンド1つでOKです。
brew install rbenv-gemset
使用方法
gemsetの作成
rbenv gemset create 1.9.3-p392 ruby-china
具体的な使用方法
プロジェクトのルートで、.rbenv-gemsets ファイルに使いたい gemset の名前を入れます。.rbenv-gemsets ファイルがある場合、bundle コマンドを実行すると、設定された gemset に対して操作します。
echo ruby-china > .rbenv-gemsets
現在のディレクトリに .rbenv-gemsets ファイルがない場合、bundle コマンド (--path 引数なし) は現在のバージョンの ruby 用の gemset として実行されます。これは、rvm のグローバル gemset に相当します。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン