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

Ubuntu18.04安装rvm、ruby2.6.5和rails5.2.6

系统环境:Ubuntu 18.04

一、安装前准备

1.

sudo apt update

2.

sudo apt upgrade

如果提示abort,忽略。

3.

sudo apt install sqlite3 gnupg curl git libpq-dev

二、安装rvm ruby版本管理器

1.切换管理员模式

sudo su

2.安装软件签名公钥

gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

查看是否已安装

gpg --list-keys 409B6B1796C275462A1703113804BB82D39DC0E3
gpg --list-keys 7D2BAF1CF37B13E2069D6956105BD0E739499BDB


3.安装rvm和ruby的最新版本

不需要最新版本,去掉命令- -ruby

curl -sSL https://get.rvm.io | bash -s stable –ruby

“Thanks for installing RVM”表示rvm安装成功,且安装了最新的ruby版本(ruby-3.0.0)

4.启动rvm,查看rvm版本

source /usr/local/rvm/scripts/rvm
rvm -v


5.rvm更新至最新最稳定的状态

rvm get stable --autolibs=enable

6.查看所有ruby版本

rvm list known

三、安装ruby2.6.5和rails5.2.6

1.安装ruby2.6.5

rvm install ruby-2.6.5

(1)设置ruby的默认版本、查看ruby的版本

rvm --default use ruby-2.6.5
ruby -v


(2)安装Nodejs

     我们需要安装nodejs作为ruby的js运行时环境;添加nodejs仓库

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -

安装nodejs

sudo apt install -y nodejs

(3)更新gem 

gem是ruby的包管理工具,在我们安装ruby的时候,他已经被自动安装上了。执行命令"gem update –system"会报错,原因是最新的rubygems需要ruby版本>=3.1.0,但是我们需要安装ruby2.6.5的。错误如下:

解决办法:安装ruby2.6.5对应的rubygems版本

wget https://rubygems.org/rubygems/rubygems-3.2.22.tgz

tar -xzvf rubygems-3.2.22.tgz

cd rubygems-3.2.22
ruby setup.rb


(4)查看gem版本  

gem -v

2.安装rails5.2.6

gem install rails -v 5.2.6

(1)查看rails是否安装成功

rails -v

cd 退出管理员模式。

(2)bundle install 出错及解决办法

注意:bundle install时会出现以下错误,原因是我们使用管理员模式安装的,涉及权限问题。

错误信息:You don't have write permissions for the /usr/local/rvm/gems/ruby-2.6.5/wrappers directory.

解决办法:

修改 RVM 目录权限

sudo chown -R $USER:$USER /usr/local/rvm/gems/ruby-2.6.5

重新运行 bundle install

bundle install

相关文章:

  • eBPF驱动的实时内核安全防护体系:构建零日漏洞免疫的云原生基础设施
  • 深度学习笔记之自然语言处理(NLP)
  • DeepSeek 助力 Vue 开发:打造丝滑的范围选择器(Range Picker)
  • 豪越科技:消防安全重点单位一体化安全管控
  • LLM有哪些可控超参数
  • MySQL性能优化
  • Redis(高阶篇)03章——缓存双写一致性之更新策略探讨
  • Azure Synapse Dedicated SQL Pool统计指定表中各字段的空值、空字符串或零值比例
  • 什么是 近端策略优化算法PPO
  • 【动态规划】(二)动态规划——0-1背包问题
  • 第35次CCF计算机软件能力认证 python 参考代码
  • RK3588 ubuntu20.04 换源 aarch64源
  • redis数据类型
  • WebAssembly 3.0发布:浏览器端高性能计算迎来新突破!
  • DFS算法篇:理解递归,熟悉递归,成为递归
  • huggingface/pytorch-image-models
  • java实现不带哨兵节点的双向链表(二)
  • 力扣-二叉树-112 路径总和
  • 【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第十一节】
  • 简单介绍输入URL到展出页面的过程
  • 订婚不等于性同意!山西订婚强奸案入选最高法案例
  • 第1现场 | 美国称将取消制裁,对叙利亚意味着什么
  • 孙简任吉林省副省长
  • 夜读丨取稿费的乐趣
  • 超新星|罚丢点球的那道坎,刘诚宇靠自己迈了过去
  • “应急侠”上线,应急管理部正式发布应急科普IP形象