ソースインストールのパスの問題

ソースインストールのパスの問題

タイトルが混乱を招かなければいいのですが。私はCentOS 5マシンを持っていて、ここにRuby 1.8.7をインストールしていました。そこで、Rubyのインストールとgem/railsをアップグレードするために、

  • アンインストールされたRuby:sudo yum ルビーを削除します

  • ruby の最新の安定版リリースをダウンロードし、解凍しました。wget... && tar -zxf ....

  • 通常のインストールを実行しました:

    • ./configure --prefix=$HOME
    • 作る
    • sudo インストール
  • ダウンロードしたrubygems:wget....

  • セットアップファイルを実行した: ルビーセットアップ.rb

ここで問題となるのは、次のように入力してレールをインストールしようとすると、gem レールのインストール、次のメッセージが表示されます。"-bash: /usr/local/bin/gem: /usr/local/bin/ruby: 不正なインタープリタ: アクセス権が拒否されました"

したがって、次の論理的な動きは(私にとって)次のように入力することでした。sudo gem レールをインストール、しかしそれは戻ってくる「sudo: gem: コマンドが見つかりません」つまり、私は何かをとんでもないことにしてしまったということです。

さらに情報を追加します

ルビーはどこ?:ルビー: /usr/lib/ruby /usr/lib64/ruby /usr/local/bin/ruby /usr/local/lib/ruby

どのルビー: ルビー

ソースから手動で Ruby をインストールすることで何かを台無しにしてしまったのではないかと考えています。おそらく、--prefix=$HOME が原因でしょうか?

答え1

実行可能ファイルを提供するパッケージをアンインストールしていないようですgem。そのため、パッケージはまだ にあり/usr/local/bin/、存在しなくなった/usr/local/bin/rubyインタープリターを指しています。

そのパッケージをアンインストールするか (依存する ruby​​ パッケージも削除したので推奨)、 の前~/binに があることを確認するだけです。 (あるいは、ルートアクセス権がある場合は、を指定せずにスクリプトを再実行し、 Ruby のデフォルトである にインストールすることもできます。)/usr/local/binPATH./configure--prefix=${HOME}/usr/local/bin

gemシェルがにインストールされた実行可能ファイルを見つけられるように設定したら、 を必要とせずに~/binを実行できるようになります。(または、 にルート インストールする場合は、が にあることを確認してから、前に試したように を実行します)。gem install railssudo/usr/local/bingem/usr/local/bin/gemsudo gem install rails

おそらく、より良いアプローチは、rvmまたはrbenv、どちらも複数の Ruby の管理を非常に簡単にします。これらのツールのいずれかを使用すると、システム全体の Ruby を削除する必要なく、複数のバージョンの Ruby をインストールできます。システム全体の Ruby は、システム上の他のパッケージで必要になる場合があります。

関連情報