「Ruby」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) (→Bundler: update.) |
Kusanaginoturugi (トーク | 投稿記録) (→pacman を使って RubyGems を管理する: update.) |
||
117行目: | 117行目: | ||
=== pacman を使って RubyGems を管理する === |
=== pacman を使って RubyGems を管理する === |
||
− | {{ic|gem}} で gems を管理する代わりに、[[pacman]] や [[AUR |
+ | {{ic|gem}} で gems を管理する代わりに、[[pacman]] や [[AUR ヘルパー]]を利用することができます。Ruby のパッケージは ruby-''gemname'' という命名規則に従っています。 |
このオプションは次のような利点があります。 |
このオプションは次のような利点があります。 |
2024年8月17日 (土) 18:59時点における版
関連記事
Ruby はシンプルさと生産性に重点を置いた、動的でインタプリター型のオープンソースプログラミング言語です。
目次
インストール
Ruby を使用するには、ruby パッケージをインストールしてください。
IRB をインストールするには、ruby-irb パッケージを インストール します。
複数のバージョン
同じシステム上で複数のバージョン (例: 2.0.0-p0 と 1.9.3-p392) を動作させたい場合、一番簡単な方法は RVM, chrubyAUR, rbenv, asdf-vmAUR を使うことです。
ドキュメント
ri
コマンドラインツールでドキュメントを見るには、ruby-rdoc および ruby-docs をインストールしてください。次のようにドキュメントを回覧できます: ri Array
, ri Array.pop
など (man-page と同じような感じです)。
JRuby
JRuby は JVM 上に実装された Ruby です。jruby パッケージでインストールできます。
RubyGems
RubyGems は Ruby のモジュール (Gem と呼ばれます) のためのパッケージマネージャで、Arch Linux における pacman に(多少は)相当します。上述の通り ruby に含まれています。
設定
Arch Linux では、デフォルトで gem
を実行すると、gem はシステム全体 (/usr/lib/ruby/gems/
) ではなく、ユーザーごとに (~/.local/share/gem/ruby/
) インストールされます。これは、Pacman によってインストールされた gem に干渉する可能性があるため、Arch における gem の管理に最適な方法と考えられています。
それを設定する推奨方法は、手動で $GEM_HOME
を指定し、それを $PATH
環境変数 に追加することで RubyGems のバイナリを実行可能にすることです:
~/.profile
export GEM_HOME="$(gem env user_gemhome)" export PATH="$PATH:$GEM_HOME/bin"
これにより、ライブラリはパスを変更しなくても動作しますが、実行可能な gem をフルパスを指定せずに使用するためには必要です。
現在の RubyGems 環境を表示するには gem env
を使用します:
$ gem env
使用方法
インストールされている gem を確認するには:
$ gem list
gem についての情報を得るには:
$ gem spec gem_name
デフォルトで、gem list
や gem spec
は --local
オプションを使います。つまりローカルのシステムだけで gem を検索します。これを --remote
フラグで上書きすることが可能です。そう、例えば mysql の gem を検索するには:
$ gem list --remote mysql
gem をインストールするには:
$ gem install mysql
ローカルのドキュメントが必要ない場合はスピードアップすることができます:
$ gem install mysql --no-document
インストールされている gem を全てアップデートするには:
$ gem update
gem をシステム共通でインストール
--no-user-install
フラグを付けて gem
コマンドを root で実行することで Gem をシステム共通でインストールすることができます。/etc/gemrc
(システム共通) または ~/.gemrc
(ユーザー個別、システム共通設定を上書きします) にある --user-install
を --no-user-install
で置き換えることでこのフラグをデフォルトで設定可能です。
Bundler は gem をあなたのアプリケーションにパッケージングすることでこの問題をある程度解決します。bundler を使用するにあたって下のセクションを見て下さい。
Bundler
Bundler を使うことであなたのアプリケーションが依存している gem はどれか、さらに(任意で)その gem のバージョンは何でなければならないかを指定することができます。この記述があると、Bundler は必要な gem を全て (完全な gem の依存ツリーを含む) インストールして、後の点検のために結果をログに残します。デフォルトで、Bundler は gem を共有の場所にインストールしますが、あなたのアプリケーションに直接インストールすることも可能です。あなたのアプリケーションが実行されると、複数のバージョンの gem がインストールされている時でも、Bundler はそれぞれの gem の正しいバージョンを与えます。これにはわずかばかりの作業が必要です: アプリケーションは bundle exec
で呼び出される必要があり、あなたのアプリケーションのメインの実行ファイルに2行のボイラープレートコード(おまじない)を入れなくてはなりません。
Bundler をインストールするには:
$ gem install bundler
デフォルトで、Bundler は gem をシステム全体にインストールします。これは Arch での gem それ自体の挙動とは反対です。これを正すには、次を ~/.bashrc
に追加してください:
export GEM_HOME=$(ruby -e 'print Gem.user_dir')
新しい bundle を始めるには:
$ bundle init
次に (bundle init
によって作成された) 作業ディレクトリ内の Gemfile
を編集して必要な gem を記載してください:
Gemfile
gem "rails", "3.2.9" gem "mysql"
次を実行して gem を GEM_HOME
にインストールしてください:
$ bundle install
もしくは、次を実行して gem を作業ディレクトリ内の .bundle
にインストールしてください:
$ bundle config set --local path '.bundle'
あなたのメインの実行ファイルを編集するのを忘れないで下さい:
#!/usr/bin/env ruby # "これは自動的にあなたの Gemfile を発見し、その中のすべての gem を Ruby で利用できるようにします。 # Gemfile にあるすべての gems を Ruby で利用できるようにします。" https://bundler.io/rationale.html require 'bundler/setup' ...
最後に、あなたのプログラムを実行して下さい:
bundle exec main_executable_name.rb
pacman を使って RubyGems を管理する
gem
で gems を管理する代わりに、pacman や AUR ヘルパーを利用することができます。Ruby のパッケージは ruby-gemname という命名規則に従っています。
このオプションは次のような利点があります。
- Gems はシステムの他の部分と一緒にアップデートされます。
- インストールされた gems は、インストールしたユーザだけが利用できるのではなく、システム全体で利用できるようになります。
Quarry
Quarry は Arch Linux のための rubygems バイナリリポジトリを運営するためのオープンソースツール (GPL3 ライセンス) です。ソースは github でホストされています。
Arch の開発者 anatolik によって非公式の rubygems リポジトリが http://pkgbuild.com/~anatolik/quarry/ で運営されており、いまのところ x86_64 アーキテクチャのみサポートしています。このリポジトリには多数の人気 gem が含まれており、gem を追加するようリクエストを送ることもできます。バイナリパッケージリポジトリは AUR のソースパッケージよりも簡単に使用することが可能です。
リポジトリを有効にする方法は 非公式ユーザーリポジトリ#quarry を見て下さい。
有効にしたら必要な gem をインストールしてください: # pacman -S ruby-$gemname
。
質問がありましたら、プロジェクトアナウンスに送って下さい: https://bbs.archlinux.org/viewtopic.php?id=182729
インタラクティブ・シェル
Pry
Pry は Ruby の標準的な IRB シェルに代わる強力なシェルです。シンタックスハイライト、柔軟なプラグインアーキテクチャ、ランタイム呼び出し、ソースとドキュメントのブラウジングが特徴です。
$gem install pry $pry