ubuntu自带的rubygems有问题

本文解决了在Ubuntu上使用apt安装RubyGems后遇到的问题,包括如何手动更新RubyGems到0.9.4版本,确保Rails安装顺利进行。
安装rails,一般都会安装rubygems,但是如果用ubuntu的apt安装gem,安装后的gem会有异常:
bash 代码
 
  1. $ sudo gem update --system  
  2. ...  
  3. ... (Gem::GemNotFoundException) Could not find rubygems-update (> 0) in the repository  

问题很奇怪,我估计是版本问题──ubuntu 7.0.4携带配的是0.9.0版的rubygems,而我们现在要用至少0.9.4。
所以解决的办法很简单──自己下载一份,然后用ruby的脚本手动安装。
bash 代码
  1. $ tar xvzf ../rubygems-0.9.4.tgz
  2. ...
  3. $ cd rubygems-0.9.4
  4. ...
  5. $ sudo ruby setup.rb
  6. ...
  7. $ sudo gem update --system
  8. Updating RubyGems...
  9. Bulk updating Gem source index for: http://gems.rubyforge.org
  10. Attempting remote update of rubygems-update
  11. Successfully installed rubygems-update-0.9.4
  12. Updating version of RubyGems to 0.9.4
  13. Installing RubyGems 0.9.4
  14. ...
  15. RubyGems system software updated

问题虽然简单,但是我居然忘了,结果今天浪费了很多时间,google一下,也没有人详细解释,俺这里补充一下。
<think>好的,我需要回答用户关于安装Ruby 2.5是否会自带gem问题。首先,我得回想一下RubyGem的关系。Ruby是一种编程语言,而GemRuby的包管理器,用来安装和管理库。通常,Ruby的官方版本安装包会包含gem,但用户可能遇到特殊情况,比如通过不同的方式安装Ruby,比如源码编译或使用RVM、rbenv等版本管理工具。 接下来,我应该确认Ruby 2.5版本的具体情况。根据记忆,Ruby从早期版本开始就将gem作为标准组件一起安装,所以2.5版本应该也不例外。不过,可能需要提到可能的例外情况,比如极简安装或者特定打包方式可能不包含gem,但这种情况比较少见。 然后,考虑用户的可能环境。用户可能在Linux、macOS或Windows上安装,不同平台的默认包管理可能有差异。例如,某些Linux发行版的仓库中的Ruby包可能分拆,需要额外安装rubygems。这时候需要建议用户安装后检查gem是否存在,并给出检查的命令。 还需要指导用户如果gem不存在该怎么办,比如通过安装rubygems包或者重新安装Ruby。此外,提到使用第三方工具如RVM或rbenv通常会更可靠,因为它们会自动处理依赖,包括gem的安装。 最后,整理这些信息,用清晰的结构分点回答,确保用户能逐步理解和解决问题。同时注意使用正确的格式,行内公式用$...$,不过这里可能不需要数学公式,但需要遵守其他格式要求,比如中文回答,结构清晰,使用列表和代码块示例。</think>安装 Ruby 2.5 时是否会自带 `gem`,取决于具体的安装方式。以下是分步说明: --- ### 1. **标准安装通常会包含 gem** - **官方源码包或主流安装方式**(如通过 `apt`、`yum`、`brew` 或官方安装程序)默认会捆绑 `gem`。 - 例如:在 Ubuntu 使用 `apt install ruby-full` 或在 macOS 使用 `brew install ruby@2.5`,均会同时安装 Rubygem。 --- ### 2. **例外情况** - **源码编译时手动排除 gem**:如果从源码编译 Ruby 2.5 时通过配置参数(如 `--disable=gems`)主动禁用了 gem,则不会安装。 - **极简化打包的 Ruby**:某些第三方打包版本(如嵌入式系统或精简版)可能移除了 gem。 --- ### 3. **验证是否已安装 gem** 安装完成后,在终端执行以下命令: ```bash gem -v ``` - 如果输出版本号(如 `2.7.6`),则 gem 已安装。 - 如果提示 `command not found`,则未安装。 --- ### 4. **未安装 gem 的解决方案** - **通过包管理器补充安装**(适用于 Linux): ```bash sudo apt install rubygems # Debian/Ubuntu sudo yum install rubygems # CentOS/RHEL ``` - **重新安装 Ruby**:使用包含 gem 的安装方式(如通过 RVM 或 rbenv)。 --- ### 5. **推荐安装方式** 使用版本管理工具 **RVM** 或 **rbenv**,可自动处理依赖(包括 gem): ```bash # 使用 rbenv 安装 Ruby 2.5 rbenv install 2.5.9 ``` --- ### 总结 - **大多数情况下**,安装 Ruby 2.5 会自带 gem。 - **验证方法**:通过 `gem -v` 检查。 - **异常处理**:通过包管理器或版本管理工具重新安装。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值