Ruby

提供: ArchWiki
2022年2月19日 (土) 16:50時点におけるKgx (トーク | 投稿記録)による版 (→‎pacman を使って RubyGems を管理する: 英語版に追従して項目の並びを変更)
ナビゲーションに移動 検索に移動

関連記事

Ruby はシンプリシティと生産性に重点を置いた、オープンソースの動的なスクリプト言語です。

Ruby のインストール

最新版の Ruby をインストールするには、ruby パッケージをインストールしてください。これには、RubyGems が含まれています。

複数のバージョン

同じシステム上で複数のバージョン (例: 2.0.0-p0 と 1.9.3-p392) を動作させたい場合、一番簡単な方法は RVM, chrubyAUR, rbenv を使うことです。

ドキュメント

ri コマンドラインツールでドキュメントを見るには、ruby-rdoc および ruby-docs をインストールしてください。次のようにドキュメントを回覧できます: ri Array, ri Array.pop など (man-page と同じような感じです)。

JRuby

JRubyJVM 上に実装された Ruby です。jruby パッケージでインストールできます。

RubyGems

RubyGems は Ruby のモジュール (Gem と呼ばれます) のためのパッケージマネージャで、Arch Linux における pacman に(多少は)相当します。上述の通り ruby に含まれています。

セットアップ

RubyGems を使用する前に、$(ruby -e "print Gem.user_dir")/bin$PATH に追加してください。以下の行を ~/.bashrc に記述してください:

PATH="$(ruby -e 'print Gem.user_dir')/bin:$PATH"

ライブラリはパスを修正しなくても動作しますが、フルパスを入力することなく gem を実行するには上記の設定が必須です。

上記の方法が上手くいかない場合、上記の代わりにシェルの設定ファイルの末尾に以下の行を追加してみてください:

#Setting the GEM_PATH and GEM_HOME variables may not be necessary, check 'gem env' output to verify whether both variables already exist 
GEM_HOME=$(ls -t -U | ruby -e 'puts Gem.user_dir')
GEM_PATH=$GEM_HOME
export PATH=$PATH:$GEM_HOME/bin

使用方法

インストールされている gem を確認するには:

$ gem list

gem についての情報を得るには:

$ gem spec gem_name

デフォルトで、gem listgem spec--local オプションを使います。つまりローカルのシステムだけで gem を検索します。これを --remote フラグで上書きすることが可能です。そう、例えば mysql の gem を検索するには:

$ gem list --remote mysql

gem をインストールするには:

$ gem install mysql

ローカルのドキュメントが必要ない場合はスピードアップすることができます:

$ gem install mysql --no-document
ノート: ~/.gemrc ファイルを以下のように設定することでオプションをデフォルトにすることが可能ですfile:
~/.gemrc
gem: --no-document

インストールされている gem を全てアップデートするには:

$ gem update

gem をユーザー個別またはシステム共通でインストール

Arch Linux ではデフォルトで、gem を実行したとき、gem はシステム共通 (/usr/lib/ruby/gems/) ではなくユーザー個別 (~/.gem/ruby/) にインストールされます。システム共通でインストールすると Pacman でインストールした gem と干渉する可能性があるため、Arch で 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 install --path .bundle

あなたのメインの実行ファイルを編集するのを忘れないで下さい:

#!/usr/bin/env ruby

# "This will automatically discover your Gemfile, and make all of the gems in
# your Gemfile available to Ruby." http://bundler.io/rationale.html

require 'bundler/setup'

...

最後に、あなたのプログラムを実行して下さい:

bundle exec <main_executable_name.rb>

pacman を使って RubyGems を管理する

gem で gems を管理する代わりに、pacmanAUR ヘルパーを利用することができます。Ruby のパッケージは ruby-gemname という命名規則に従っています。

このオプションは次のような利点があります。

  • Gems はシステムの他の部分と一緒にアップデートされます。
  • インストールされた gems は、インストールしたユーザだけが利用できるのではなく、システム全体で利用できるようになります。
ノート: 指定した gem の PKGBUILD を自動的に生成して gempacman を統合するツールもあります: パッケージの作成#PKGBUILD ジェネレーター を見て下さい。

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
バグレポートやコードの改善は github で送って下さい: https://github.com/anatol/quarry

参照