私のタイトルが混乱しないことを願っています。 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/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をインストールできます。このバージョンは、システムの他のパッケージから削除する必要があります。