2


1

Mac OS XでRDoc Ruby Gemをデフォルトにする

私は最近Mac OS X(バージョン1.0.1)に同梱されているものを置き換えるためにRuby gemを通してRDocバージョン(2.4.3)をインストールしました。 残念ながら、コマンドラインでrun "rdoc"を呼び出したときにはまだRDoc 1.0.1しか使用できません。 rdoc -vは以下を返します。

RDoc V1.0.1 - 20041108

最初のRDoc 2.4.3フォルダへのエントリを指すように$ PATH変数を修正しようとしましたが、うまくいきませんでした。 私はこのオンラインについても何も見つけることができなかったので、私はここで尋ねたいと思いました。

乾杯!

更新:

"` gem list -d --version 1.0.1 rdoc` "を実行すると、以下が返されます。

*** LOCAL GEMS ***

rdoc (2.4.3)
    Authors: Eric Hodel, Dave Thomas, Phil Hagelberg, Tony Strauss
    Rubyforge: http://rubyforge.org/projects/rdoc
    Homepage: http://rdoc.rubyforge.org
    Installed at: /usr/local/lib/ruby/gems/1.8

    RDoc is an application that produces documentation for one or more
    Ruby source files

したがって、Gemsバージョンと干渉しているのは、間違いなくMac OSXバージョンのRDocです。

更新2:

私は見つけた、使用して:

`bash --debugger rdoc`

RDocの古いバージョンは/ opt / local / binにありました。 私はそれを削除し、私の$ PATHに私のgemsディレクトリを追加しました

`export PATH=/usr/local/lib/ruby/gems/1.8/gems/`

私は今、最新のRDocの新しい作業コピーを手に入れました!

4 Answer


2


この問題はあなたの2つのバージョンが異なるgemリポジトリにインストールされていることを教えてくれます。

これを試して:

gem list -d --version 1.0.1 rdoc
gem list -d --version 2.4.3 rdoc

これはgemがインストールされている場所に関する詳細な情報をあなたに与えるでしょう。 可能であれば、古いバージョンをアンインストールしてください。

gem uninstall --install-dir /old/gem/repository --version 1.0.1 rdoc

新しいバージョンを非標準の場所にインストールした場合、そのリポジトリのbinディレクトリをパスに追加し、そのディレクトリを `+ GEM_PATH `環境変数に追加する必要がある場合があります。 だからあなたの ` .login `または ` .bash_profile +`または何でも:

PATH = $PATH:/new/gem/repository/bin
export PATH

GEM_PATH = $GEM_PATH:/new/gem/repository
export GEM_PATH

`〜/ .gemrc +`ファイルで ` GEM_PATH +`を設定することもできますが、それは常にコマンドラインツールで読み取られるとは限りません。


0


Instant-Railsを実行しているWindowsでも同様の問題がありました。 最後に、 `+ ruby​​ / lib / ruby​​ / 1.8 / rdoc `ディレクトリの名前を ` rdoc.bak +`に変更し、それ以降、rakeタスクは新しいgem rdocで正しく実行されました。


0


ちょっと考えてみてください。Linuxでは通常、リンクを作成します。 / opt / local / bin / rdoc)は、既存のパスに含まれていないバイナリを指しています。 あなたの場合は、次のようにします。ln -s / opt / local / bin / rdoc /usr/local/lib/ruby/gems/1.8/gems/rdoc

こうすれば、$ PATH変数が少し雑然としたままになり、使用しているバイナリをより細かく制御できます。

お役に立てれば!


0


RVM(Ruby Version Manager)を使うとすぐに使える