「Ruby」の版間の差分
imported>Lahwaacz.bot (update Pkg/AUR templates to reflect new package status) |
Kusanaginoturugi (トーク | 投稿記録) (→使用方法: 不要な単語を削除) |
||
(4人の利用者による、間の33版が非表示) | |||
1行目: | 1行目: | ||
[[Category:プログラミング言語]] |
[[Category:プログラミング言語]] |
||
[[en:Ruby]] |
[[en:Ruby]] |
||
+ | [[zh-hans:Ruby]] |
||
− | Ruby はシンプリシティと生産性に重点を置いた、オープンソースの動的なスクリプト言語です。 |
||
+ | {{Related articles start}} |
||
+ | {{Related|Ruby on Rails}} |
||
+ | {{Related articles end}} |
||
+ | Ruby はシンプルさと生産性に重点を置いた、動的でインタプリター型のオープンソースプログラミング言語です。 |
||
− | == |
+ | == インストール == |
+ | Ruby を使用するには、{{Pkg|ruby}} パッケージを[[インストール]]してください。 |
||
− | インストールするべき Ruby のバージョンはあなたが必要としているものによります。レガシーなアプリケーションをサポートするつもりなら、Ruby 1.9 や 1.8 をインストールしてください。新しいプロジェクトを初めるつもりなら、Ruby 2.0 が推奨です。利用可能な Ruby のバージョンと入手方法の概要を以下に述べます。 |
||
+ | IRB をインストールするには、{{Pkg|ruby-irb}} パッケージを [[インストール]] します。 |
||
− | === Ruby 2.0 === |
||
− | Ruby 2.0.0 をインストールするには、{{Pkg|ruby}} をインストールしてください。Ruby 2.0 には [[#RubyGems]] が含まれています。 |
||
− | === |
+ | === 複数のバージョン === |
− | Ruby 1.9.3 をインストールするには、{{AUR|ruby1.9}} をインストールしてください。Ruby 1.9 には [[#RubyGems]] が含まれています。 |
||
+ | 同じシステム上で複数のバージョン (例: 2.0.0-p0 と 1.9.3-p392) を動作させたい場合、一番簡単な方法は [[RVM]], {{AUR|chruby}}, [[rbenv]], {{AUR|asdf-vm}} を使うことです。 |
||
− | メリット: |
||
− | * 1.8 に比べてパフォーマンスがはるかに向上しています。 |
||
− | * fiber などの並列化のための新機能があります。 |
||
− | * 他にも、CSV パーサーの改善などさまざまな機能向上がなされています。 |
||
− | + | === ドキュメント === |
|
− | * 多くの古い gem (そして Ruby On Rails バージョン 2.3 以前) と互換性がありません。 |
||
− | * 言語の変更によって古い Ruby コードが動かなくなったり、予期せぬバグが生まれる可能性があります。 |
||
+ | {{ic|ri}} コマンドラインツールでドキュメントを見るには、{{Pkg|ruby-rdoc}} および {{Pkg|ruby-docs}} をインストールしてください。次のようにドキュメントを回覧できます: {{ic|ri Array}}, {{ic|ri Array.pop}} など (man-page と同じような感じです)。 |
||
− | {{Note|あなたの必要な gem/module が Ruby 1.9 と互換性があるか知るには http://isitruby19.com/ を見て下さい。}} |
||
− | === |
+ | === JRuby === |
+ | [https://www.jruby.org/ JRuby] は [[JVM]] 上に実装された Ruby です。{{Pkg|jruby}} パッケージでインストールできます。 |
||
− | Ruby 1.8.7 をインストールするには、{{AUR|ruby1.8}} か {{AUR|ruby-1.8.7-svn}} を [[Arch User Repository|AUR]] からインストールしてください。Ruby 1.8 には RubyGems が含まれていません。そのかわり、{{AUR|rubygems1.8}} パッケージから利用できます。 |
||
− | |||
− | === 複数のバージョン === |
||
− | 同じシステム上で複数のバージョン (例: 2.0.0-p0 と 1.9.3-p392) を動作させたい場合、一番簡単な方法は [[RVM]] や [[rbenv]] を使うことです。 |
||
== RubyGems == |
== RubyGems == |
||
− | + | RubyGems は Ruby のモジュール (Gem と呼ばれます) のためのパッケージマネージャで、Arch Linux における [[pacman]] に(多少は)相当します。上述の通り {{pkg|ruby}} に含まれています。 |
|
+ | |||
+ | === 設定 === |
||
+ | |||
+ | Arch Linux では、デフォルトで {{ic|gem}} を実行すると、gem はシステム全体 ({{ic|/usr/lib/ruby/gems/}}) ではなく、ユーザーごとに ({{ic|~/.local/share/gem/ruby/}}) インストールされます。これは、Pacman によってインストールされた gem に干渉する可能性があるため、Arch における gem の管理に最適な方法と考えられています。 |
||
+ | |||
+ | それを設定する推奨方法は、手動で {{ic|$GEM_HOME}} を指定し、それを {{ic|$PATH}} [[環境変数]] に[[追加]]することで RubyGems のバイナリを実行可能にすることです: |
||
+ | |||
+ | {{hc|1=~/.profile|2= |
||
+ | export GEM_HOME="$(gem env user_gemhome)" |
||
+ | export PATH="$PATH:$GEM_HOME/bin" |
||
+ | }} |
||
+ | |||
+ | これにより、ライブラリはパスを変更しなくても動作しますが、実行可能な gem をフルパスを指定せずに使用するためには必要です。 |
||
+ | |||
+ | {{Note|変更を保存した後、変更を適用するにはターミナルを再起動してください。}} |
||
+ | |||
+ | 現在の RubyGems 環境を表示するには {{ic|gem env}} を使用します: |
||
+ | |||
+ | $ gem env |
||
=== 使用方法 === |
=== 使用方法 === |
||
37行目: | 50行目: | ||
gem についての情報を得るには: |
gem についての情報を得るには: |
||
− | $ gem spec |
+ | $ gem spec ''gem_name'' |
デフォルトで、{{ic|gem list}} や {{ic|gem spec}} は {{ic|--local}} オプションを使います。つまりローカルのシステムだけで ''gem'' を検索します。これを {{ic|--remote}} フラグで上書きすることが可能です。そう、例えば mysql の gem を検索するには: |
デフォルトで、{{ic|gem list}} や {{ic|gem spec}} は {{ic|--local}} オプションを使います。つまりローカルのシステムだけで ''gem'' を検索します。これを {{ic|--remote}} フラグで上書きすることが可能です。そう、例えば mysql の gem を検索するには: |
||
46行目: | 59行目: | ||
ローカルのドキュメントが必要ない場合はスピードアップすることができます: |
ローカルのドキュメントが必要ない場合はスピードアップすることができます: |
||
− | $ gem install mysql --no- |
+ | $ gem install mysql --no-document |
+ | |||
+ | {{Note|{{ic|~/.gemrc}} ファイルを以下のように設定することでオプションをデフォルトにすることが可能です: |
||
+ | {{hc|~/.gemrc|<nowiki> |
||
+ | gem: --no-document |
||
+ | </nowiki>}}}} |
||
インストールされている gem を全てアップデートするには: |
インストールされている gem を全てアップデートするには: |
||
$ gem update |
$ gem update |
||
+ | === gem をシステム共通でインストール === |
||
− | === 標準ユーザーで実行 === |
||
− | 標準ユーザーとして ''gem'' を実行すると、gem はシステム全体ではなく {{ic|~/.gem}} にインストールされます。Arch で gem を管理するにはこれが最適だと思われます。残念ながら、全ての gem はこの方法ではインストールできず、root でインストールするように言われているもの (特にネイティブ拡張 (コンパイルされた C コード) を持っている gem) があります。このユーザーごとにインストールする挙動は {{ic|/etc/gemrc}} で有効にされており {{ic|~/.gemrc}} ファイルによって書き換えることが可能です。 |
||
+ | {{ic|--no-user-install}} フラグを付けて {{ic|gem}} コマンドを root で実行することで Gem をシステム共通でインストールすることができます。{{ic|/etc/gemrc}} (システム共通) または {{ic|~/.gemrc}} (ユーザー個別、システム共通設定を上書きします) にある {{ic|--user-install}} を {{ic|--no-user-install}} で置き換えることでこのフラグをデフォルトで設定可能です。 |
||
− | バイナリをインストールする gem を使う時は、{{ic|~/.gem/ruby/2.0.0/bin}} を {{ic|$PATH}} に追加する必要があります。 |
||
− | |||
− | === root で実行 === |
||
− | root として実行したとき、gem は {{ic|/root/.gems}} にインストールされます。{{ic|/usr/lib/ruby/gems/}} には'''インストールされません'''。 |
||
− | |||
− | {{Note|詳しくは #[https://bugs.archlinux.org/task/33327 33327] を見て下さい。}} |
||
[[#Bundler|Bundler]] は gem をあなたのアプリケーションにパッケージングすることでこの問題をある程度解決します。bundler を使用するにあたって下のセクションを見て下さい。 |
[[#Bundler|Bundler]] は gem をあなたのアプリケーションにパッケージングすることでこの問題をある程度解決します。bundler を使用するにあたって下のセクションを見て下さい。 |
||
=== Bundler === |
=== Bundler === |
||
− | [http:/ |
+ | [http://bundler.io Bundler] を使うことであなたのアプリケーションが依存している gem はどれか、さらに(任意で)その gem のバージョンは何でなければならないかを指定することができます。この記述があると、Bundler は必要な gem を全て (完全な gem の依存ツリーを含む) インストールして、後の点検のために結果をログに残します。デフォルトで、Bundler は gem を共有の場所にインストールしますが、あなたのアプリケーションに直接インストールすることも可能です。あなたのアプリケーションが実行されると、複数のバージョンの gem がインストールされている時でも、Bundler はそれぞれの gem の正しいバージョンを与えます。これにはわずかばかりの作業が必要です: アプリケーションは {{ic|bundle exec}} で呼び出される必要があり、あなたのアプリケーションのメインの実行ファイルに2行のボイラープレートコード(おまじない)を入れなくてはなりません。 |
Bundler をインストールするには: |
Bundler をインストールするには: |
||
70行目: | 82行目: | ||
デフォルトで、Bundler は gem をシステム全体にインストールします。これは Arch での ''gem'' それ自体の挙動とは反対です。これを正すには、次を {{ic|~/.bashrc}} に追加してください: |
デフォルトで、Bundler は gem をシステム全体にインストールします。これは Arch での ''gem'' それ自体の挙動とは反対です。これを正すには、次を {{ic|~/.bashrc}} に追加してください: |
||
− | export GEM_HOME= |
+ | export GEM_HOME=$(ruby -e 'print Gem.user_dir') |
新しい bundle を始めるには: |
新しい bundle を始めるには: |
||
85行目: | 97行目: | ||
もしくは、次を実行して gem を作業ディレクトリ内の {{ic|.bundle}} にインストールしてください: |
もしくは、次を実行して gem を作業ディレクトリ内の {{ic|.bundle}} にインストールしてください: |
||
− | $ bundle |
+ | $ bundle config set --local path '.bundle' |
+ | |||
+ | {{Note|コマンド `bundle install --path .bundle` は非推奨です。なぜなら、このコマンドは bundler の起動をまたいで記憶することに依存しており、今後のバージョンでは bundler がそのようなことをしなくなるからです。しかし、もし上記のコマンドが有効でない場合は、あなたの ruby のバージョンが古い可能性があるので、このコマンドを使うべきです。}} |
||
あなたのメインの実行ファイルを編集するのを忘れないで下さい: |
あなたのメインの実行ファイルを編集するのを忘れないで下さい: |
||
{{bc|#!/usr/bin/env ruby |
{{bc|#!/usr/bin/env ruby |
||
+ | # "これは自動的にあなたの Gemfile を発見し、その中のすべての gem を Ruby で利用できるようにします。 |
||
− | # "This will automatically discover your Gemfile, and make all of the gems in |
||
− | # |
+ | # Gemfile にあるすべての gems を Ruby で利用できるようにします。" https://bundler.io/rationale.html |
+ | |||
− | require 'rubygems' |
||
require 'bundler/setup' |
require 'bundler/setup' |
||
99行目: | 113行目: | ||
最後に、あなたのプログラムを実行して下さい: |
最後に、あなたのプログラムを実行して下さい: |
||
− | {{bc|bundle exec |
+ | {{bc|bundle exec main_executable_name.rb}} |
− | == pacman を使って RubyGems を管理する == |
+ | === pacman を使って RubyGems を管理する === |
− | + | {{ic|gem}} で gems を管理する代わりに、[[pacman]] や [[AUR ヘルパー]]を利用することができます。Ruby のパッケージは ruby-''gemname'' という命名規則に従っています。 |
|
+ | このオプションは次のような利点があります。 |
||
− | {{Warning|AUR にある ruby gem パッケージの多くは、{{ic|/etc/gemrc}} やユーザーの {{ic|~/.gemrc}} 内のグローバルな設定を無視して、コマンドラインスイッチの {{ic|--no-user-install}} や {{ic|--user-install}} を明示的に使います。インストールする前に PKGBUILD ファイルを編集しますよね?}} |
||
+ | * Gems はシステムの他の部分と一緒にアップデートされます。 |
||
+ | * インストールされた gems は、インストールしたユーザだけが利用できるのではなく、システム全体で利用できるようになります。 |
||
+ | {{Note|指定した gem の PKGBUILD を自動的に生成して ''gem'' と ''pacman'' を統合するツールもあります: [[パッケージの作成#PKGBUILD ジェネレーター]] を見て下さい。}} |
||
− | == 関連項目 == |
||
+ | |||
− | * [[Ruby On Rails]] |
||
+ | ==== Quarry ==== |
||
+ | |||
+ | Quarry は Arch Linux のための [http://rubygems.org rubygems] バイナリリポジトリを運営するためのオープンソースツール (GPL3 ライセンス) です。ソースは [https://github.com/anatol/quarry github] でホストされています。 |
||
+ | |||
+ | Arch の開発者 anatolik によって非公式の rubygems リポジトリが http://pkgbuild.com/~anatolik/quarry/ で運営されており、いまのところ x86_64 アーキテクチャのみサポートしています。このリポジトリには多数の人気 gem が含まれており、gem を追加するようリクエストを送ることもできます。バイナリパッケージリポジトリは AUR のソースパッケージよりも簡単に使用することが可能です。 |
||
+ | |||
+ | リポジトリを有効にする方法は [[非公式ユーザーリポジトリ#quarry]] を見て下さい。 |
||
+ | |||
+ | 有効にしたら必要な gem をインストールしてください: {{ic|# pacman -S ruby-$gemname}}。 |
||
+ | |||
+ | 質問がありましたら、プロジェクトアナウンスに送って下さい: https://bbs.archlinux.org/viewtopic.php?id=182729 |
||
+ | |||
+ | == インタラクティブ・シェル == |
||
+ | === Pry === |
||
+ | Pry は Ruby の標準的な IRB シェルに代わる強力なシェルです。シンタックスハイライト、柔軟なプラグインアーキテクチャ、ランタイム呼び出し、ソースとドキュメントのブラウジングが特徴です。 |
||
+ | |||
+ | $gem install pry |
||
+ | $pry |
||
== 参照 == |
== 参照 == |
||
+ | * [[Ruby on Rails]] |
||
* Ruby - http://ruby-lang.org/ |
* Ruby - http://ruby-lang.org/ |
||
− | * |
+ | * Bundler - http://bundler.io/ |
+ | * [http://www.aoky.net/articles/why_poignant_guide_to_ruby/ ホワイの(感動的)Rubyガイド] |
||
− | * Bundler - http://github.com/carlhuda/bundler |
||
+ | * [http://ruby.learncodethehardway.org/ Learn Ruby The Hard Way] |
||
+ | * [https://blog.hyfather.com/blog/2011/10/18/bundler/ Comparison of Bundler and RVM workflows] |
||
+ | |||
+ | {{TranslationStatus|Ruby|2024-08-17|811756}} |
2024年8月18日 (日) 08:15時点における最新版
関連記事
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