Ubuntuでgemsを使用するにはどうすればよいですか?
質問
最近 Ubuntu 9.04 にアップグレードしたのですが、gems を使用する際に問題があります。
apt-get を使用して Ruby、Rubygems、および Rails をインストールしました。
その際
rails
コマンドは動作します。
続いて、capistranoとherokuなどのgemsをインストールしました。 そのために、私はコマンドを使いました。
sudo gem install XXX
を使いたいときは
cap
コマンドを使いたいのですが、うまくいきません。
bash: cap: command not found
他のgemコマンドと同じです。
gemコマンドを動作させるために、何か特別なことをしなければならないのでしょうか?
どのように解決するのですか?
私のジェムはどこですか?
あなたのジェムがどこに保存されているかは
gem environment
コマンドを使用します。例えば
chris@chris-laptop:~$ gem environment
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.2
- RUBY VERSION: 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
- INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /usr/bin/ruby1.8
- EXECUTABLE DIRECTORY: /usr/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-linux
- GEM PATHS:
- /usr/lib/ruby/gems/1.8
- /home/chris/.gem/ruby/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
GEM PATHS:"のセクションを見ると、私のノートパソコンではgemsは2つの場所に保存できることがわかります。
/usr/lib/ruby/gems/1.8
または
.gem
というディレクトリを作成します。
また、実行ファイルはEXECUTABLE DIRECTORYに格納されていることがわかります。この場合、EXECUTABLE DIRECTORYは
/usr/bin
.
なぜなら
/usr/bin
がパスに含まれているため、これによって
cap
,
merb
,
rails
など。
PATHを更新する
何らかの理由で EXECUTABLE DIRECTORY がパス上にない場合 (例えば /var/lib/gems/1.8/bin の場合)、PATH 変数を更新する必要があります。
bash シェルを使用していると仮定します。シェル プロンプトで次のように入力すると、現在のセッションですぐにこれを行うことができます。
/var/lib/gems/1.8/bin
をパスに追加することにしましょう。
export PATH=$PATH:/var/lib/gems/1.8/bin
と入力し、リターンキーを押します。これで新しいディレクトリが現在のパスの末尾に追加されます。の間のコロンに注意してください。
$PATH
と
/var/lib/gems/1.8/bin
全てのセッションに値を設定するには、あなたの
.profile
または
.bashrc
ファイルを編集し、同じ行をファイルの末尾に追加します。私は通常
.bashrc
ファイルを編集するのは、いつもそうしているからという以外の理由はありません。終了したら、ファイルを保存し、タイプして環境をリフレッシュしてください。
bash
をシェルプロンプトで表示します。そうすると
.bashrc
が再読込されるようになります。
の現在の値をいつでも確認することができます。
$PATH
とタイプすることで
echo $PATH
をシェルプロンプトで表示します。
これは私自身のサーバーの 1 つからのサンプルで、ユーザー名は "chris"、マシン名は "chris-laptop" となっています。
chris@chris-laptop:~$
chris@chris-laptop:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
chris@chris-laptop:~$
chris@chris-laptop:~$ export PATH=$PATH:/var/lib/gems/1.8/bin
chris@chris-laptop:~$
chris@chris-laptop:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/var/lib/gems/1.8/bin
chris@chris-laptop:~$
Gemが読み込まれません!
" Rubyのgemsをインストールしても読み込まない Gem 環境と Gem パスが同期していないことがあるのです。
rb(main):003:0> Gem.path
=> ["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]
irb(main):004:0> exit
ここでのRubyプロセスは、Gemsのために1つの場所だけを見ています。
:~/$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.7
- RUBY VERSION: 1.9.1 (2009-05-12 patchlevel 129) [x86_64-linux]
- INSTALLATION DIRECTORY: /opt/ruby1.9/lib/ruby/gems/1.9.1
- RUBY EXECUTABLE: /opt/ruby1.9/bin/ruby1.9
- EXECUTABLE DIRECTORY: /opt/ruby1.9/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /opt/ruby1.9/lib/ruby/gems/1.9.1
- /home/mark/.gem/ruby/1.9.1
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
gem environmentの出力をよく見てください。
- GEM PATHS:
- /opt/ruby1.9/lib/ruby/gems/1.9.1
Gem.pathが返すパスと同じではありません。
["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]
何が原因かを正確に言うのは難しいのですが
lib/ruby
が
lib/ruby1.9
に変更する必要がありますが、おそらく開発者は複数のRubyのバージョンで作業していたのでしょう。手っ取り早く
mv
または
ln
で解決します。
もし、複数のRubyのバージョンを扱う必要があるのなら、本当に rvm .
関連
-
[解決済み】Ruby: 特定のバージョンのruby gemをインストールする方法は?
-
[解決済み】OS X Yosemite 10.10.5 で [Ruby on Rails] 5 をインストールすると extconf が失敗して終了コード 1 エラーになる。
-
[解決済み] Rails 4で、以前のバージョンのRailsでattr_accessibleを使用していた状況に遭遇した場合、Forbidden Attributes Errorが発生する。
-
[解決済み] プロキシ(ISA-NTLM)の後ろからRuby Gemsをアップデートする方法
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
-
[解決済み] gemのインストールで --no-ri --no-rdoc をデフォルトにするには?
-
[解決済み】Ubuntuでのsqlite3-rubyのインストールエラー
-
[解決済み] Ubuntuのrailsインストールがzlibで失敗する
-
[解決済み] インストールされているすべてのGemsを削除して最初からやり直す
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Rails: sudo "コマンドが認識されないのはなぜですか?
-
[解決済み】Bundler: コマンドが見つからない
-
[解決済み] nil:NilClass の未定義メソッド `each'... なぜでしょうか?
-
[解決済み] Ruby on Railsのランナー
-
[解決済み] Mac OS Xにhomebrewがインストールされているかどうかを確認する方法
-
[解決済み] Errno::EACCESS: パーミッションが拒否された @ dir_s_mkdir
-
[解決済み] Railsです。gemを使った特定バージョンのライブラリのアンインストール
-
[解決済み] RVMでRubyのデフォルトバージョンを設定するには?
-
[解決済み] Railsでグループとカウント
-
[解決済み] Ruby on Rails の新規セットアップ : "Expected string default value for '--rc'; got false (boolean)".