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

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

私のタイトルが混乱しないことを願っています。 Ruby 1.8.7がインストールされたCentOS 5システムがあります。だからRubyのインストールとgem / railsをアップグレードするために、

  • ルビー除去:sudo yum ルビーの削除

  • Rubyの最新の安定版をダウンロードして解凍します。wget...&& tar -zxf....

  • 一般的なインストールを進めました。

    • ./configure --prefix=$HOME
    • 作る
    • sudoのインストール
  • ルビーのダウンロード:得る…。

  • インストールファイルの実行: ruby​​ install.rb

私の質問は、Railsをインストールしようとすると、次のように入力してインストールできることです。ジュエリーマウントレール、次のメッセージが表示されます。"-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またはrootアクセス権がある場合は指定せずにスクリプトを再実行します。これはRubyのデフォルトです)。/usr/local/binPATH./configure--prefix=${HOME}/usr/local/bin

gemシェルがにインストールされている実行可能ファイルを見つけることができるようにすべてを準備したら、それを~/bin行う必要はありませんgem install railssudo(または、ルートがインストールされている場合は存在することを/usr/local/bin確認し、以前に行ったように実行します。試したとおり)。gem/usr/local/bin/gemsudo gem install rails

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

関連情報