银河麒麟(内核CentOS8)安装rbenv、ruby2.6.5和rails5.2.6

一、安装 rbenv 和 ruby-build

1.安装 rbenv

ruby 复制代码
git clone https://github.com/rbenv/rbenv.git ~/.rbenv

2. 添加 rbenv 到 PATH

ruby 复制代码
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc

3.安装 ruby-build 插件

ruby 复制代码
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

二、安装Ruby 2.6.5

1.确保安装必要的开发工具和库

查看系统信息:

ruby 复制代码
cat /etc/os-release

根据系统选择命令安装开发工具和库。

输出包含 ID="kylin" 或 centos,说明应使用 yum。

使用yum安装依赖

ruby 复制代码
sudo yum install -y autoconf bison gcc make openssl-devel libyaml-devel readline-devel zlib-devel ncurses-devel libffi-devel gdbm-devel

如果不确定系统可能会遇到的问题:

报错:sudo:apt-get:找不到命令

出现 sudo: apt-get 找不到命令错误,是因为 Kylin Linux(麒麟系统)基于 CentOS/Red Hat 系列,默认使用 yum 或 dnf 作为包管理工具,而非 Debian/Ubuntu 的 apt-get。

2.确认 ruby-build 是否为最新版本

Ruby 版本列表由 ruby-build 插件提供,更新它以获取最新版本支持:

通过 Git 安装

ruby 复制代码
cd ~/.rbenv/plugins/ruby-build

git pull

查看可安装的 Ruby 版本(可省略,如果版本太低,不会显示出来)

ruby 复制代码
rbenv install --list

直接手动安装。

3.安装ruby2.6.5

ruby 复制代码
rbenv install 2.6.5

安装前准备工作

手动下载 Ruby 源码包(这一步可以直接执行,或者再解决问题(1)后仍无法安装再执行)

创建缓存目录

ruby 复制代码
mkdir -p ~/.rbenv/cache

手动下载(使用 wget)

ruby 复制代码
wget https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.5.tar.bz2 -P ~/.rbenv/cache

或使用国内镜像(如清华源)

ruby 复制代码
wget https://mirrors.tuna.tsinghua.edu.cn/ruby/ruby/2.6/ruby-2.6.5.tar.bz2 -P ~/.rbenv/cache

检查当前用户对~/.rbenv/cache有写入权限

ruby 复制代码
chmod 755 ~/.rbenv

chmod 755 ~/.rbenv/cache

重新安装并指定源码路径

ruby 复制代码
rbenv install 2.6.5 --verbose

(--verbose是详细输出日志)

问题及解决办法:

(1)curl:(56)OpenSSL SSl_read:连接被对方重设:errno 104

error:failed to download openssl-1.1.1u.tar.gz

手动下载 OpenSSL

wget https://www.openssl.org/source/openssl-1.1.1u.tar.gz -P ~/.rbenv/cache

提示

"正在解析主机www(www) 失败:未知的名称或服务。wget:无法解析主机地址"

检查网络:ping www.baidu.com(需要手动停止,否则会一直输出,停止后会看到"握手次数"及结果)

仍没解决,出现该问题核心在于 DNS 解析失败或网络访问受限。

检查域名解析是否正常

nslookup www.openssl.org

返回 IP 地址:说明 DNS 解析正常,检查网络连通性

检查网络连通性

确认能访问目标服务器的 IP 地址:

如果 ping 通:域名解析已恢复,重新执行 wget

(2)手动下载Ruby源包码后,再次执行rbenv install ruby 2.6.5

提示空间不足,

确认磁盘空间充足:

ruby 复制代码
df -h /tmp

清理临时文件

ruby 复制代码
sudo rm -rf /tmp/ruby-build.* 

再次执行 rbenv ruby 2.6.5

将2.6.5设为全局版本

ruby 复制代码
rbenv global 2.6.5

4.检查ruby是否安装成功

ruby 复制代码
ruby -v

三、安装rails5.2.6

1.安装rails5.2.6步骤

(1)安装 Bundler

ruby 复制代码
gem install bundler

需要的话,使用rbenv的Ruby版本安装特定版本的Rails。

ruby 复制代码
rbenv shell 2.6.5

(2) 安装 Rails 5.2.6

ruby 复制代码
gem install rails -v 5.2.6

(3)验证安装

rails -v # 应该显示 Rails 5.2.6

2.问题及解决办法:

(1)gem install bundler 出现版本不匹配问题

会提示让安装相应的版本,一般是2.4.22

(2)nokogiri版本不匹配问题

根据提示的版本(1.13.10),安装相应的版本

再次执行安装rails的命令,仍提示nokogiri版本问题

解决办法:

安装对应版本的gem

ruby 复制代码
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

gem -v

再次执行 gem install rails -v 5.2.6

验证是否安装成功:rails -v

相关推荐
Championship.23.243 小时前
Linux 3.0 锁机制与故障排查详解
linux·运维·服务器
天疆说4 小时前
Zotero Connector 在 Edge 里找不到桌面 Zotero(Linux / Zotero 9.0.6 / Edge 150)
linux·前端·edge
风123456789~5 小时前
【Linux专栏】ls 排除某个文件
linux·运维·服务器
IT曙光6 小时前
ubuntu apt-get离线源制作
linux·ubuntu
其实防守也摸鱼6 小时前
运维--学习阶段问题解答(1)(自测)
linux·运维·服务器·数据库·学习·自动化·命令模式
懒鸟一枚6 小时前
深入理解 Linux 内存、Swap 交换分区与分页机制的关系
java·linux·数据库
Darkwanderor8 小时前
对Linux的进程控制的研究
linux·运维·c++
bksczm10 小时前
linux之线程概念和控制
linux·开发语言·c++
爱网络爱Linux11 小时前
Linux proc 目录安全加固
linux·运维·rhce·rhca·红帽认证·proc 目录安全加固
hehelm11 小时前
Linux网络编程—TCP字典翻译系统
linux·开发语言·网络·c++·tcp/ip