
タイトルが混乱を招かなければいいのですが。私は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/bin
PATH
./configure
--prefix=${HOME}
/usr/local/bin
gem
シェルがにインストールされた実行可能ファイルを見つけられるように設定したら、 を必要とせずに~/bin
を実行できるようになります。(または、 にルート インストールする場合は、が にあることを確認してから、前に試したように を実行します)。gem install rails
sudo
/usr/local/bin
gem
/usr/local/bin/gem
sudo gem install rails
おそらく、より良いアプローチは、rvm
またはrbenv
、どちらも複数の Ruby の管理を非常に簡単にします。これらのツールのいずれかを使用すると、システム全体の Ruby を削除する必要なく、複数のバージョンの Ruby をインストールできます。システム全体の Ruby は、システム上の他のパッケージで必要になる場合があります。