「Ruby」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
106行目: 106行目:
 
== pacman を使って RubyGems を管理する ==
 
== pacman を使って RubyGems を管理する ==
   
{{ic|gem}} を使って gem を管理する代わりに、{{ic|pacman}} や [[AUR (日本語)|AUR]] ヘルパーを使うこともできます。Ruby パッケージは ruby-[gemname] という命名規則にしたがっています。この方法では以下の利点があります:
+
{{ic|gem}} を使って gem を管理する代わりに、{{ic|pacman}} や [[AUR]] ヘルパーを使うこともできます。Ruby パッケージは ruby-[gemname] という命名規則にしたがっています。この方法では以下の利点があります:
   
 
* システムの他の部分と一緒に Gem が更新されます。その結果、{{ic|gem update}} を実行する必要がなくなります: {{ic|# pacman -Syu}} だけで更新可能です。
 
* システムの他の部分と一緒に Gem が更新されます。その結果、{{ic|gem update}} を実行する必要がなくなります: {{ic|# pacman -Syu}} だけで更新可能です。

2015年1月7日 (水) 11:20時点における版

テンプレート:Related articles start (日本語)

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

    Ruby のインストール

    インストールするべき Ruby のバージョンはあなたが必要としているものによります。レガシーなアプリケーションをサポートするつもりなら、Ruby 2.0 や 1.9 をインストールしてください。新しいプロジェクトを初めるつもりなら、Ruby 2.1 が推奨です。利用可能な Ruby のバージョンと入手方法の概要を以下に述べます。

    Ruby 2.1

    Ruby 2.1 をインストールするには、ruby をインストールしてください。Ruby 2.1 には RubyGems が含まれています。

    Ruby 2.0

    Ruby 2.0 をインストールするには、AUR から ruby2.0AUR をインストールしてください。Ruby 2.0 には #RubyGems が含まれています。

    Ruby 1.9

    Ruby 1.9 をインストールするには、AUR から ruby1.9AUR をインストールしてください。Ruby 1.9 には #RubyGems が含まれています。

    複数のバージョン

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

    ドキュメント

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

    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 を確認するには:

    $ 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 を使って gem を管理する代わりに、pacmanAUR ヘルパーを使うこともできます。Ruby パッケージは ruby-[gemname] という命名規則にしたがっています。この方法では以下の利点があります:

    • システムの他の部分と一緒に Gem が更新されます。その結果、gem update を実行する必要がなくなります: # pacman -Syu だけで更新可能です。
    • インストールした gem は、インストールしたユーザーだけでなく、システム全体で使うことができます。

    gem が AUR に存在しない場合は、gem2archAURpacgemAUR を使って自動的にパッケージを作成し、pacman でインストールできます。

    Quarry

    Quarry は Arch Linux のための rubygems バイナリリポジトリを運営するためのオープンソースツール (GPL3 ライセンス) です。ソースは github でホストされています。

    Arch の開発者 anatolik によって非公式の rubygems リポジトリが http://pkgbuild.com/~anatolik/quarry/ で運営されており、いまのところ x86 アーキテクチャのみサポートしています。このリポジトリには多数の人気 gem が含まれており、gem を追加するようリクエストを送ることもできます。バイナリパッケージリポジトリは AUR のソースパッケージよりも簡単に使用することが可能です。

    リポジトリを有効にする方法は 非公式ユーザーリポジトリ#quarry を見て下さい。

    有効にしたら必要な gem をインストールしてください: # pacman -S ruby-$gemname

    質問がありましたら、プロジェクトアナウンスに送って下さい: https://bbs.archlinux.org/viewtopic.php?id=182729
    バグレポートやコードの改善は github で送って下さい: https://github.com/anatol/quarry

    参照