当前位置: 首页 > news >正文

gem rbenv介绍【前端扫盲】

以下是为使用 Ubuntu 20.04 的非前端程序员准备的 rbenv 和 gem 的详细介绍,包含具体安装步骤和操作示例:


一、gem:Ruby 的包管理器

1. 是什么?
  • gem 是 Ruby 的官方包管理工具,用于安装、管理和分发 Ruby 代码库(称为 Gem),类似 Python 的 pip 或 Node.js 的 npm
  • 例如:通过 gem install rails 可以安装 Ruby on Rails 框架。
2. 核心功能
  • 安装/卸载库:从 RubyGems.org 仓库下载和管理 Gem。
  • 版本控制:支持指定 Gem 的版本(如 gem install rails -v 7.0.4)。
  • 依赖管理:自动处理 Gem 之间的依赖关系。
3. 常用命令
# 安装 Gem(默认最新版本)
gem install <gem_name>

# 安装指定版本
gem install <gem_name> -v <version>

# 列出已安装的 Gem
gem list

# 更新 Gem
gem update <gem_name>

# 卸载 Gem
gem uninstall <gem_name>
4. Gemfile 与 Bundler
  • Bundler 是管理项目依赖的工具,通过 Gemfile 文件定义依赖项,确保不同环境的一致性。
  • 示例 Gemfile
    source 'https://rubygems.org'
    gem 'rails', '7.0.4'
    gem 'sqlite3', '~> 1.4'
    
  • Bundler 命令
    # 安装所有依赖
    bundle install
    
    # 更新依赖
    bundle update
    

二、rbenv:Ruby 版本管理工具(Ubuntu 20.04 专用)

1. 是什么?
  • rbenv 允许你在同一台机器上安装和切换多个 Ruby 版本,避免因系统 Ruby 版本过旧导致的问题。
  • 例如:项目 A 使用 Ruby 3.2.2,项目 B 使用 Ruby 2.7.6。
2. Ubuntu 20.04 安装步骤
  1. 安装依赖(编译 Ruby 所需):

    sudo apt update
    sudo apt install -y git curl autoconf bison build-essential libssl-dev libreadline-dev zlib1g-dev libyaml-dev
    
  2. 安装 rbenv 和 ruby-build

    # 克隆 rbenv 到用户目录
    git clone https://github.com/rbenv/rbenv.git ~/.rbenv
    
    # 添加 rbenv 到 PATH 环境变量
    echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
    echo 'eval "$(rbenv init -)"' >> ~/.bashrc
    
    # 重启 Shell 或执行以下命令使配置生效
    exec $SHELL
    
    # 安装 ruby-build 插件(用于编译 Ruby)
    git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
    
  3. 安装 Ruby 版本

    # 查看可安装的 Ruby 版本
    rbenv install --list
    
    # 安装 Ruby 3.2.2
    rbenv install 3.2.2
    
    # 设置全局默认版本
    rbenv global 3.2.2
    
    # 验证安装
    ruby -v  # 应输出 "ruby 3.2.2..."
    
3. 常用命令
# 设置当前目录的 Ruby 版本(创建 .ruby-version 文件)
rbenv local 3.2.2

# 查看已安装的 Ruby 版本
rbenv versions

# 卸载 Ruby 版本
rbenv uninstall 2.7.6
4. 与 gem 的关系
  • rbenv 管理 Ruby 解释器版本gem 管理 Ruby 库
  • 通过 rbenv 安装的 Ruby 版本,其 Gem 会存储在 ~/.rbenv/versions/<ruby-version>/lib/ruby/gems 目录下,与系统 Ruby 完全隔离。

三、协作流程示例(Ubuntu 20.04)

  1. 创建新项目

    mkdir myapp && cd myapp
    
    # 设置当前项目使用 Ruby 3.2.2
    rbenv local 3.2.2
    
  2. 初始化 Bundler

    # 生成 Gemfile
    bundle init
    
    # 编辑 Gemfile,添加依赖
    echo 'gem "rails", "7.0.4"' >> Gemfile
    
  3. 安装依赖

    bundle install
    
  4. 运行项目

    # 使用 bundle exec 确保加载项目依赖的 Gem
    bundle exec rails server
    

四、常见问题与解决

1. 安装 Ruby 时编译失败
  • 原因:缺少依赖库。
  • 解决:确保已安装所有依赖:
    sudo apt install -y libssl-dev libreadline-dev zlib1g-dev
    
2. gem 安装权限错误
  • 现象You don't have write permissions...
  • 原因:误用 sudo gem install
  • 解决:使用 rbenv 后,所有 Gem 应安装在用户目录,无需 sudo
3. rbenv 命令未找到
  • 原因:Shell 配置未生效。
  • 解决
    # 重新加载配置
    source ~/.bashrc
    # 或重启终端
    

五、总结

  • rbenv:管理多个 Ruby 版本,避免系统版本冲突。
  • gem:安装和管理 Ruby 库(Gem)。
  • Bundler:确保项目依赖的一致性。

在 Ubuntu 20.04 上,推荐使用 rbenv 替代系统自带的 Ruby,既能自由切换版本,又无需 sudo 权限。这种组合是 Ruby 开发的黄金标准,尤其适合同时维护多个项目的场景!

相关文章:

  • 泰勒多项式
  • 星越L_第二排座椅/头枕使用讲解
  • ABAQUS球体颗粒重力堆积3D模型
  • Spring 中的 AOP 实现机制
  • Day67 | 灵神 | 二分查找:统计公平数对的数目
  • 信息学奥赛一本通 1525:电力 | OpenJudge 百练 2117:Electricity
  • Unity NodeCanvas AI使用笔记
  • MR-Flink-Spark任务提交-常用命令
  • Python赋能区块链溯源系统:从技术实现到应用落地
  • VBA技术资料MF281:驱动器列表和类型
  • HarmonyOS开发,解决Kill server failed 报错问题
  • electron 入门
  • Java 异常处理
  • 泰瑞达 ETS-88设备整理
  • 【Java】方法
  • ElasticSearch 7.x 集群 + Kibana 部署完全指南(5节点)
  • 【无标题】RegisterClassObjects
  • 全方位对比oracle18c和oracle 19c
  • 使用码云搭建CocoaPods远程私有库
  • java面试题,什么是动态代理?、动态代理和静态代理有什么区别?说一下反射机制?JDK Proxy 和 CGLib 有什么区别?动态代理的底层
  • 多家外资看好中国市场!野村建议“战术超配”,花旗上调恒指目标价
  • 人民日报访巴西总统卢拉:“巴中关系正处于历史最好时期”
  • 英国首相斯塔默住所起火,警方紧急调查情况
  • 王毅集体会见加勒比建交国外长及代表
  • 男子退机票被收90%的手续费,律师:虽然合规,但显失公平
  • 水豚“豆包”出逃已40天,扬州茱萸湾景区追加悬赏