源安装的路径问题

源安装的路径问题

我希望我的标题不会令人困惑。我有一台 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/binPATH. (或者,如果您具有 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​​,而无需删除系统范围内的版本,而系统上的其他软件包可能需要删除该版本。

相关内容