#13: 『パーフェクト Ruby』購入、Ruby をインストール
『パーフェクト Ruby』改訂 2 版を購入しました。パーフェクトシリーズを手に取るのは久しぶりです。Python も最近新しい版が出たみたいですね。
今日やったこと(Done)
元から入っている ruby
のバージョンを確認してみます。
$ which ruby /usr/bin/ruby $ ruby -v ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin17]
ruby
のバージョンを切り替えるツール rbenv
をインストールします。
$ brew info rbenv rbenv: stable 1.1.2 (bottled), HEAD $ brew install rbenv
Note that this also installs ruby-build, so you'll be ready to install other Ruby versions out of the box.
brew install rbenv ruby-build
としている記事を見かけましたが ruby-build
は手動で指定する必要はないようです。
$ rbenv init # Load rbenv automatically by appending # the following to ~/.config/fish/config.fish: status --is-interactive; and source (rbenv init -|psub)
shell の設定ファイル config.fish
に上記コマンドを追加します。
shell を再起動して変更を反映させてからチェックスクリプトを実行してみます。
$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash Checking for `rbenv' in PATH: /usr/local/bin/rbenv Checking for rbenv shims in PATH: OK Checking `rbenv install' support: /usr/local/bin/rbenv-install (ruby-build 20200727) Counting installed Ruby versions: none There aren't any Ruby versions installed under `/Users/ryocalm/.rbenv/versions'. You can install Ruby versions like so: rbenv install 2.2.4 Checking RubyGems settings: OK Auditing installed plugins: OK
特に問題はなかったようで安心しました。
コマンド rbenv install -l
でインストール可能な処理系のリストを確認できます。
2.5.8 2.6.6 2.7.1 jruby-9.2.12.0 maglev-1.0.0 mruby-2.1.1 rbx-5.0 truffleruby-20.1.0 truffleruby+graalvm-20.1.0 Only latest stable releases for each Ruby implementation are shown. Use 'rbenv install --list-all' to show all local versions.
いろいろな処理系があるみたいですね。ひとまず 2.7.1
をインストールします。
$ rbenv install 2.7.1
openssl
のインストールに時間がかかっているようなので続きはまた明日。
わかったこと(Fact)
rbenv
はruby
のバージョンを切り替えることだけを担当し、各バージョンのruby
をインストールしたり、バージョンごとに環境変数を切り替えたりするのは(rbenv
ではなく)プラグインが担当する。- 各バージョンをインストールするのは
ruby-build
というプラグイン。 ruby-build
はrbenv
をインストールする際に合わせてインストールされるので手動で指定する必要はない。- JRuby とは Java VM 上で動作する Ruby の処理系。
- MagLev とは GemStone という会社が開発している Ruby の処理系。Smalltalk VM をベースにしているらしい。
- mruby とは組み込みシステム向けの Ruby の処理系。Matz が開発リーダーを務めているらしい。
rbx
はよくわからなかった。- truffleruby とは Oracle が開発している Ruby の処理系。high performance らしい。
- GraalVM とは Oracle が開発している多言語対応ランタイム?様々な言語に対応していてネイティブバイナリを出力できるので、enables interoperability ということらしい。
- 理解が不十分なので参考程度に。
GraalVM is a high-performance runtime that provides significant improvements in application performance and efficiency which is ideal for microservices. It is designed for applications written in Java, JavaScript, LLVM-based languages such as C and C++, and other dynamic languages.
参考文献(References)
rbenv
- rbenv/rbenv: Groom your app’s Ruby environment
- Plugins · rbenv/rbenv Wiki
- rbenv/ruby-build: Compile and install Ruby
- rbenv/rbenv-vars: An rbenv plugin that safely sets global and per-project environment variables
- Home — JRuby.org
- oracle/truffleruby: A high performance implementation of the Ruby programming language. Built on the GraalVM by Oracle Labs.
- GraalVM
- GraalVM Documentation
- MagLev
- MagLev:GemstoneがSmalltalk VMをベースに構築するRubyランタイム
- Rubyパフォーマンスの総まとめ:GC Tuning、MagLev、MacRuby
- mruby
- mruby - Wikipedia
シンボリックリンク
- 【 ln 】コマンド――ファイルのハードリンクとシンボリックリンクを作る:Linux基本コマンドTips(16) - @IT
- 【Linux】シンボリックリンクの作成/確認/変更/削除について解説|ENGINEER LIFE