
我希望我的標題不會令人困惑。我有一台 CentOS 5 機器,並且安裝了 Ruby 1.8.7。所以為了升級我的 Ruby 安裝和 gems/rails 我
卸載的紅寶石:sudo yum 刪除紅寶石
下載最新的穩定版本的 ruby 並解壓縮它:wget...&& tar -zxf ....
經歷了通常的安裝:
- ./configure --prefix=$HOME
- 製作
- 須藤進行安裝
下載的紅寶石:得到....
運行安裝文件: 紅寶石設定.rb
現在我的問題是,如果我嘗試安裝 Rails,我可以輸入以下命令來安裝:寶石安裝導軌,我收到以下訊息:“-bash:/ usr / local / bin / gem:/ usr / local / bin / ruby:錯誤的解釋器:權限被拒絕”
所以(對我來說)下一個合乎邏輯的舉動是輸入:sudo gem 安裝rails,但這會返回“sudo:gem:找不到指令”,這意味著我徹底搞砸了一些事情。
只是添加一些更多信息
紅寶石在哪裡:紅寶石: /usr/lib/ruby /usr/lib64/ruby /usr/local/bin/ruby /usr/local/lib/ruby
哪個紅寶石: 〜/ bin /紅寶石
我在想,透過從原始程式碼手動安裝 ruby,我搞砸了一些東西,也許 --prefix=$HOME 是這裡的罪魁禍首?
答案1
您似乎沒有卸載提供gem
可執行檔的包,因此它仍在 中/usr/local/bin/
,並指向不再存在的/usr/local/bin/ruby
解釋器。
您可以卸載該軟體包(推薦,因為您還刪除了它所依賴的 ruby 軟體包),或者只是確保~/bin
您/usr/local/bin
的PATH
. (或者,如果您具有 root 存取權限,則可以重新執行./configure
腳本而不指定--prefix=${HOME}
,並讓它安裝在 中/usr/local/bin
,這是 Ruby 的預設設定。)
一旦您安排好一切,以便您的 shell 找到gem
安裝在 中的可執行文件~/bin
,您應該能夠簡單地gem install rails
不需要sudo
. (或者,如果您將 root 安裝到/usr/local/bin
,請確保gem
位於/usr/local/bin/gem
,然後運行sudo gem install rails
,就像您之前嘗試過的那樣)。
可能更好的方法是看看rvm
或者rbenv
,這兩者都使得管理多個紅寶石成為一項相當輕鬆的任務。使用這些工具中的任何一個,您都可以安裝多個版本的 ruby,而無需刪除系統範圍內的版本,而係統上的其他軟體包可能需要刪除該版本。