我希望我的标题不会令人困惑。我有一台 CentOS 5 机器,并且安装了 Ruby 1.8.7。所以为了升级我的 Ruby 安装和 gems/rails 我
卸载的红宝石:sudo yum 删除红宝石
下载最新的稳定版本的 ruby 并解压它:wget...&& tar -zxf ....
经历了通常的安装:
- ./configure --prefix=$HOME
- 制作
- 须藤进行安装
下载的红宝石:得到....
运行安装文件:ruby 安装.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,而无需删除系统范围内的版本,而系统上的其他软件包可能需要删除该版本。