​​​​Linux Shell 实现一键部署Ruby3

news2024/11/24 11:21:38

ruby

Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp 语言。由 Ruby 语言本身还发展出了JRuby(Java平台)、IronRuby(.NET平台)等其他平台的 Ruby 语言替代品。

download ruby

ruby Linuxruby Windows环境依赖缺失的rpm可以在此处搜索下载libyaml-devel ruby文档

CN

EN

CN

EN

下载

rpm

源码

cn

en

Linux 各系统下载使用参考

Red HatRocky Linux Oracle Linux

AlmaLinux 

ubuntususelinuxesxiRHEL标准安装系统安装参考YUM参考

MobaXterm 远程连接工具

Red Hat Enterprise 9.0 文档Kickstart 生成器
downloaddownloaddownloaddownloaddownloaddownloaddownload参考参考配置参考download参考Kickstart 
版本兼容性

ruby 一键部署脚本

  • 实现在线下载ruby,编译安装ruby,ruby环境依赖安装,环境变量配置,镜像源更改,安装完成删除下载包。
  • /opt/ruby #安装目录
  • ruby依赖libyaml-devel,以下两种方式实现
yum --enablerepo=powertools install libyaml-devel -y

或

yum install -y https://yum.oracle.com/repo/OracleLinux/OL8/codeready/builder/x86_64/getPackage/libyaml-devel-0.1.7-5.el8.x86_64.rpm
vi /ruby3_install.sh
#!/bin/bash
# -*- coding: utf-8 -*-
# Author: CIASM
# update 2023/05/31
# install source ruby 3


<<!
#linux ruby 
https://www.ruby-lang.org/zh_cn/downloads/
https://www.ruby-lang.org/en/downloads/

# windwos ruby
https://rubyinstaller.cn/
https://rubyinstaller.org/

#yaml libyaml-devel tar gz
https://pyyaml.org/download

yaml rpm check libyaml-devel
https://pkgs.org/
!


install_ruby (){

if ! command -v ruby &> /dev/null
    then
	
	if [ $? -eq 0 ];then
	
	#ruby variable
	ruby_url=https://cache.ruby-lang.org/pub/ruby/3.2/
    ruby_gz=ruby-3.2.2.tar.gz
    ruby_directory=ruby-3.2.2
    ruby_installation_directory=/opt/ruby
    root_directory=/root

	echo "Dependent installation"
	yum install -y http://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
	yum install -y git bzip2 curl wget net-tools cmake make gcc gcc-c++ openssl-devel readline-devel zlib-devel sqlite-devel libffi-devel gdbm-devel ncurses-devel
    yum install -y https://yum.oracle.com/repo/OracleLinux/OL8/codeready/builder/x86_64/getPackage/libyaml-devel-0.1.7-5.el8.x86_64.rpm
	
    #yum --enablerepo=powertools install libyaml-devel -y

	echo "download ruby"
	wget -N -P $root_directory $ruby_url$ruby_gz
	
	echo "make instll ruby"
	tar -zxf $root_directory/$ruby_gz -C $root_directory
	cd $root_directory/$ruby_directory && ./configure --prefix=$ruby_installation_directory && make && make install
	
	echo "ruby environment variable"
	echo 'export PATH=$PATH:/opt/ruby/bin' >>  ~/.bash_profile
	source  ~/.bash_profile
	
	echo "Replacement of Chinese source"
	gem sources -r https://rubygems.org/ -a https://gems.ruby-china.com/
	gem sources -l
	
	echo "ruby version chek"
	ruby -v | awk '{print $2}'
    gem -v | awk '{print $2}'
	
	echo "rm ruby"
	rm -rf $root_directory/$ruby_directory $root_directory/$ruby_gz
	
    echo "Plug-in installation test"
	gem install bundler

			echo -e "\033[32mThe ruby Install Success...\033[0m" 
        else
            echo -e "\033[31mThe ruby Install Failed...\033[0m" 
            exit 1
        fi
    else
        echo -e "\033[33mThe ruby Install already...\033[0m"
    fi
}

main (){
    install_ruby
}
 
main

执行安装ruby

sh /ruby3_install.sh

 ruby 安装完成版本获取,上述自动化脚本内容已增加,以下只是单独列出

ruby -v && gem -v

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/592300.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【上篇】我们邀请了4位专家来探讨消费市场的新增量:W型机会、单客经济、日本市场、DTC......

好久不见了&#xff0c;我是增长黑盒的创始人yolo。最近我们总是发布一些严肃型的行业报告&#xff0c;相信大家的动作都是在第一时间点个收藏&#xff0c;然后....就没有然后了。 所以&#xff0c;今天我们的内容没有复杂的图表和数据&#xff0c;想用比较轻松的对话形式来呈现…

专业的知识图谱应用门槛正在被不断降低

前⾔ 知识图谱&#xff08;knowledge graph&#xff09;⼀度被专家称为“AI皇冠上的明珠”&#xff0c;因为知识图谱技术是⼈⼯智能技术⽅向中的重要⼀环。它不仅可以为其他⼈⼯智能应⽤提供⽀持&#xff0c;如⾃然语⾔处理、推荐系统等&#xff0c;更可以帮助⼈⼯智能系统⾃主…

小程序开发中常见问题解决技巧

众所周知&#xff0c;开发小程序是一件复杂而又繁琐的事情&#xff0c;而且小程序开发也需要一定的技术含量&#xff0c;同时还需要投入大量的时间和精力。所以&#xff0c;在小程序开发过程中&#xff0c;难免会遇到各种各样的问题。为了让大家可以顺利地开发出高质量的小程序…

物联网网关在预付费售电管理系统的构建及应用

摘 要&#xff1a;在社会的不断发展与进步下&#xff0c;信息产业也迎来了自己的繁荣时代&#xff0c;物联网正是在这样的背景之下进入了人们的视野。在互联网的不断发展以及计算机技术的各种进步之下&#xff0c;物联网也迎来了一个又一个的突破&#xff0c;物联网&#xff0c…

契约锁参与第四届【鼎捷智造节】,携手推进制造业数智化转型

如今&#xff0c;制造业正处在智能制造转变的关键期&#xff0c;各类数字化需求不断涌现&#xff0c;为了推动行业数字化转型&#xff0c;鼎捷软件于2021年10月首发启动【鼎捷智造节】&#xff0c;集生态合作圈打造、企业转型赋能、业内优秀产品服务于一体&#xff0c;汇聚业内…

JS的isNAN:判断数字是否合法

定义和用法 isNaN() 函数用于检查其参数是否是非数字值。 如果参数值为 NaN 或字符串、对象、undefined等非数字值则返回 true, 否则返回 false。 语法 isNaN(value) 参数描述value必需。要检测的值。 <!DOCTYPE html> <html lang"en"> <head><…

百万数据导出,居然爆炸了OutOfMemoryError?

一、问题的提出 /*** 大数据导出1.0* /demo/exportExcel4* param response*/ GetMapping("/exportExcel4") public void exportExcel4(HttpServletResponse response) throws IOException {Date start new Date();// 模拟数据List<UserExportVO> users new …

「从零入门推荐系统」19:HM推荐系统代码实战案例

作者 | gongyouliu 编辑 | gongyouliu 我们在上一章中利用Netflix prize数据集讲解了最基础、最简单的一些推荐系统召回、排序算法&#xff0c;大家应该对怎么基于Python实现推荐算法有了一些基本的了解了。接着上一章的思路&#xff0c;本章我们会基于一个更复杂、更近代一点的…

JAVA企业级开发 1.5 初探Spring AOP

一、提出游吟诗人唱赞歌任务 骑士执行任务前和执行任务后&#xff0c;游吟诗人唱赞歌 &#xff08;一&#xff09;采用传统方式实现 修改day04子包的勇敢骑士类 修改day04子包里的救美骑士类 执行测试类 - TestKnight &#xff08;二&#xff09;采用传统方式实现的缺…

Hive部署本地模式

本地模式 使用mysql替换derby进行元数据的存储&#xff0c;hive的相关进程都是在同一台机器上&#xff0c;即本地模式。mysql因为是独立的进程&#xff0c;所以mysql可以和hive在同一机器上&#xff0c;也可以在其他机器上。 说明&#xff1a; 通常使用关系型数据库来进行元数据…

微信公众号、支付接口认证:一步步教您如何实现

1、微信公众号接口认证方案 1.1 认证流程 1&#xff09;官方配置Token验证 Token不在网络中传递 2&#xff09;开发一个Token验证接口 Token及其它参数拼接并字典排序再做sha摘要计算微信定期调用此接口来验证身份正确性通过摘要验证判断请求来源微信&#xff08;Token配置…

TensorFlow进行MNIST数据集手写数字识别,保存模型并且进行外部手写图片测试

首先&#xff0c;你已经配置好Anaconda3的环境&#xff0c;下载了TensorFlow模块&#xff0c;并且会使用jupyter了&#xff0c;那么接下来就是MNIST实验步骤。 数据集官网下载&#xff1a;MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burgeshttp…

apple pencil的替代品买啥比较好?平价电容笔推荐

随着技术的发展&#xff0c;出现了许多种类的电容笔。一款好的电容笔&#xff0c;不但可以极大地提升我们的工作效率&#xff0c;也可以极大地改善我们的学习效果。平替电容笔无论是在技术方面&#xff0c;还是在产品质量方面&#xff0c;都有着非常广泛的应用前景。下面就是我…

Java领域的序列化与反序列化,Java的对象如何传输,常用序列化技术

文章目录 一、引出问题&#xff1a;Java原生的序列化1、基于Socket传输对象案例2、什么是序列化3、Java 原生序列化4、serialVersionUID 的作用5、transient 关键字绕开 transient 机制的办法writeObject 和 readObject 原理 6、Java 序列化的一些简单总结 二、分布式架构下常见…

【智能座舱系列| AR-HUD增强现实】—AR-HUD到底是“鸡肋”还是“真”香?

AR-HUD 概念 HUD,即抬头显示(Head Up Display),又叫平视显示系统。它的作用,就是把时速、导航等重要的行车信息,投影到驾驶员前面的挡风玻璃上,让驾驶员尽量做到不低头、不转头就能看到。 这种显示系统,原是军用战斗机上的显示系统,飞行员不必低头,就能在挡风玻璃上…

ChatGPT学习笔记;Meta发布Megabyte AI模型抗衡Transformer

AI知识 ChatGPT学习笔记 文章包括如下的内容&#xff1a; ChatGPT 介绍科普 背景知识ChatGPT 功能ChatGPT 原理 等等&#xff0c;文章的地址在这里。 AI新闻 &#x1f680; Meta发布Megabyte AI模型抗衡Transformer&#xff1a;解决后者已知问题、速度提升4成 摘要&…

笔试强训5

作者&#xff1a;爱塔居 专栏&#xff1a;笔试强训 作者简介&#xff1a;大三学生&#xff0c;希望和大家一起进步 目录 day6 day7 day6 1.关于抽象类与最终类&#xff0c;下列说法错误的是&#xff1f; A 抽象类能被继承&#xff0c;最终类只能被实例化。 B 抽象类和最终类…

NET HELPMSG 3534 报错

使用了带管理员权限的 PowerShell&#xff08;即在管理员权限下运行CMD&#xff09; 然后进行安装和服务启动操作 1、清空 MySQL 下的 data 文件夹&#xff1b; 2、确保系统环境变量中已经配置了 mysql 的 bin 目录到Path中&#xff1b; 3、执行以下命令&#xff1a; sc delet…

《Opencv3编程入门》学习笔记—第四章

《Opencv3编程入门》学习笔记 记录一下在学习《Opencv3编程入门》这本书时遇到的问题或重要的知识点。 第四章 OpenCV数据结构与基本绘图 四、基础图像容器Mat &#xff08;一&#xff09;数字图像存储概述 图像在数码设备中的表现形式为包含众多强度值的像素点矩阵。 &a…

JAVA键盘录入

文章目录 JAVA键盘录入1.导包2.创建对象3.接受数据接收 b o o l e a n \color{red}{boolean} boolean类型数据接收 b y t e \color{red}{byte} byte类型数据接收 s h o r t \color{red}{short} short类型数据接收 i n t \color{red}{int} int类型数据接收 l o n g \color{red}{…