时间老去,Ruby不死,Ruby语言基础入门教程之Ruby3全平台开发环境搭建EP00
如果说电子游戏是第九艺术,那么,编程技术则配得上第十艺术的雅称。艺术发展的普遍规律就是要给与人们对于艺术作品的更高层感受,而Matz的Ruby语言则正是这样一件艺术品。
无论是语法还是理念,都让Ruby开发者感受到款待,如此,Ruby代码就像活了过来,它们时而高声,却藏不住优雅,时而细语,却意外地铿锵,真是美妙,这种庄重而温柔的魅力,用那一代奉松本行弘为偶像的人的话说,叫剑胆琴心。现在的话又讲,心有猛虎,细嗅蔷薇。
本次,让我们再一次全平台构建Ruby3开发环境,感受Ruby3的魅力。
Mac平台(ARM/X86)
都知道Mac和Ruby是天作之合,你中有我,我中有你,衔接得天衣无缝,拉链般重合。
首先安装Homebrew,它是一款由Ruby开发的包管理工具,目前支持MacOS和Linux系统,通过Homebrew,我们可以多快好省地安装最新的Ruby3.0以上版本。
如果是M系列芯片的Mac电脑,运行命令安装ARM架构版本的Homebrew:
/bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)"
随后在终端执行命令echo $SHELL获得终端类型:
/bin/zsh => zsh => .zprofile
/bin/bash => bash => .bash_profile
如果是zsh终端,输入命令配置环境变量:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
反之,bash终端则输入如下命令:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.bash_profile
eval "$(/opt/homebrew/bin/brew shellenv)"
从MacOS Catalina(10.15.x) 版开始,Mac使用zsh为默认终端。
如果是Intel芯片的Mac,可以选择X86架构的Homebrew:
arch -x86_64 /bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)"
最后注意X86架构的Homebrew默认路径为:/usr/local/bin/brew
然后再执行source ~/.zprofile或source ~/.bash_profile命令更新文件。
安装好之后,在终端输入命令,查看brew版本:
➜ ~ brew -v
Homebrew 3.6.4
Homebrew/homebrew-core (git revision 375065e9c3a; last commit 2022-10-05)
Homebrew/homebrew-cask (git revision 7068d45cf4; last commit 2022-10-05)
说明安装成功,如果是老版本,可以运行命令进行更新:
➜ ~ brew cleanup && brew update
Already up-to-date.
除此之外,也可以为Homebrew设置一下国内源:
# brew
git -C "$(brew --repo)" remote set-url origin https://mirrors.ustc.edu.cn/brew.git
# core
git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
# cask
git -C "$(brew --repo homebrew/cask)" remote set-url origin https://mirrors.ustc.edu.cn/homebrew-cask.git
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.zprofile
source ~/.zprofile
但事实上,有时候国内源由于同步延迟问题,会和国外源有一些微小的差异,而这些差异往往会导致Ruby软件的编译失败,所以两种源各有利弊,各自斟酌。
接下来我们来安装Ruby3,业界比较主流的安装方式大抵两种:rvm或者rbenv,这里我们使用rbenv,它其实就是一个类似python中conda一样的多版本管理软件包,可以方便一些老项目以低版本ruby运行,比如ruby1.9:
brew install ruby-build rbenv
之后将rbenv命令添加到zsh命令行的环境变量中:
echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.zshrc
source ~/.zshrc
重启命令行,键入rbenv:
➜ ~ rbenv
rbenv 1.2.0
Usage: rbenv <command> [<args>]
Some useful rbenv commands are:
commands List all available rbenv commands
local Set or show the local application-specific Ruby version
global Set or show the global Ruby version
shell Set or show the shell-specific Ruby version
install Install a Ruby version using ruby-build
uninstall Uninstall a specific Ruby version
rehash Rehash rbenv shims (run this after installing executables)
version Show the current Ruby version and its origin
versions List installed Ruby versions
which Display the full path to an executable
whence List all Ruby versions that contain the given executable
See `rbenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/rbenv/rbenv#readme
可以看到最新的1.2.0版本。
随后键入命令查看目前可编译的Ruby版本:
~ rbenv install --list
2.6.10
2.7.6
3.0.4
3.1.2
jruby-9.3.8.0
mruby-3.1.0
picoruby-3.0.0
rbx-5.0
truffleruby-22.2.0
truffleruby+graalvm-22.2.0
这里我们选择安装3.0.4版本:
rbenv install 3.0.4
安装成功后键入rbenv versions:
~ rbenv versions
system
* 3.0.0 (set by /Users/liuyue/.rbenv/version)
3.0.4
列出所有安装好的版本。
随后可以使用 rbenv global命令来切换版本:
~ rbenv global 3.0.4
➜ ~ rbenv versions
system
3.0.0
* 3.0.4 (set by /Users/liuyue/.rbenv/version)
如果某个版本不再需要,也可以进行uninstall卸载操作:
➜ ~ rbenv uninstall 3.0.0
rbenv: remove /Users/liuyue/.rbenv/versions/3.0.0? [yN] y
➜ ~ rbenv versions
system
* 3.0.4 (set by /Users/liuyue/.rbenv/version)
至此,大功告成,接着进入ruby命令行工具irb,终端输入:irb
与Python执行和终端使用同一命令不同的是,Ruby的执行命令为ruby,而命令行则是irb
irb是Ruby附带的交互式编程环境,它是由石冢启十先生撰写的:
~ irb
irb(main):001:0> puts "你好,Ruby"
你好,Ruby
=> nil
接着可以使用exit或者quit命令退出Ruby命令行:
➜ ~ irb
irb(main):001:0> puts "你好,Ruby"
你好,Ruby
=> nil
irb(main):002:0> exit
➜ ~
Docker(其他平台构建Ruby开发环境)
如果使用的是Windows平台或者其他系统,我们可以使用Docker的方式快速搭建环境,Docker安装请参见:一寸宕机一寸血,十万容器十万兵|Win10/Mac系统下基于Kubernetes(k8s)搭建Gunicorn+Flask高可用Web集群。
安装完成之后,首先下载ruby3.0.4镜像:
[root@instance-7dojaq0e ruby3]# docker pull ruby:3.0.4-slim
3.0.4-slim: Pulling from library/ruby
31b3f1ad4ce1: Pull complete
9ecf19185ffb: Pull complete
7201eddc3a4c: Pull complete
384b637b5031: Pull complete
e878247dc643: Pull complete
Digest: sha256:5b99cbdb905610eb1aa47c24c15b724045e65dab0b5fd1c069f5f722895724e9
Status: Downloaded newer image for ruby:3.0.4-slim
docker.io/library/ruby:3.0.4-slim
下载完成之后,启动容器:
docker run -it ruby:3.0.4-slim
随后即可进入Ruby命令行:
[root@instance-7dojaq0e ~]# docker run -it ruby:3.0.4-slim
irb(main):001:0> puts "你好 ruby"
你好 ruby
=> nil
简单方便。
结语
按照固有思维方式,人们总以为时下最热门的语言才是学习的目标,但Ruby除了基础语法之外,还给了一些看不见、摸不着的东西,我认为这在目前盛行“实惠”价值观的时候,提一提还是必要的。很多事情不用问值不值得,只用问,它对你来说,是不是有若珍宝。最后,谨以此系列教程献给司徒正美兄,我的Ruby领路人,真正的Ruby高手,大神中的大神,正道是:司徒正美成绝响,人间不见Ruby's Louvre。
时间老去,Ruby不死,Ruby语言基础入门教程之Ruby3全平台开发环境搭建EP00的更多相关文章
- Go语言开发环境搭建
1.Go的安装 (1)下载go安装程序 下载地址:https://golang.org/dl/ (墙内下载地址http://www.golangtc.com/download),如果是您的系统是win ...
- ubuntu16.04 Golang语言开发环境搭建
golang即go语言是跨平台的语言,适用于windows 和linux平台,下面介绍linux平台下ubuntu16.04系统下的开发环境搭建过程. 一.安装开发必备环境 执行下面命令分别安装git ...
- 【Apache Pulsar】Apache Pulsar单机环境及Go语言开发环境搭建
0x01 简介 Apache Pulsar是一个开源的分布式发布-订阅消息系统,与Kafka类似,但比后者更加强大.Pulsar最初由Yahoo开发并维护,目前已经成为Apache软件组织的一个孵化子 ...
- R语言开发环境搭建
R语言开发环境搭建 一.环境 Win7 64bit系统 二.R软件下载 R 3.5.2 for Windows,官网:https://www.r-project.org/ RStudio 1.1.46 ...
- Java 学习笔记 第一章:Java语言开发环境搭建
第一章:Java语言开发环境搭建 第二章:常量.变量和数据类型 第三章:数据类型转换.运算符和方法入门 1.Java虚拟机——JVM JVM(Java Virtual Machine ):Java虚拟 ...
- ruby开发环境搭建
ruby开发可以在max os .Linux系统或windows下进行.推荐使用linux系统,这里以在linux系统下搭建开发环境为例.大体上需要以下几步: 一.下载并安装virtualbox和ub ...
- PyCharm/IntelliJ IDEA Golang开发环境搭建(最方便快捷的GO语言开发环境)
IntelliJ太牛了.为了配置Go语言开发环境,折腾了半天,下IDE(Sublime Text,IntelliJ Idea),然后装Go插件.装Go插件还要下载插件项目源码,编译等等,Sublime ...
- Java语言开发环境搭建
在使用任何计算机语言开发之前,都要搭建其开发环境. 一.明确什么是JDK.JRE. 二.下载JDK 三.安装JDK 四.配置环境变量 五.验证是否成功 一.什么是JRE.JDK. JRE(Java R ...
- 基于GTK+3 开发远程控制管理软件(C语言实现)系列三 Windows7开发环境搭建
一.介绍与准备 考虑到目标客户端基本都是windows客户端,所以此次开发环境将搭建在windows7下,相关开发工具有Msys2 和 Eclipse For C/C++ Msys2 是msys的升级 ...
- 02.Go语言开发环境搭建(新版)
安装Go语言及搭建Go语言开发环境 注意:Go语言1.14版本之后推荐使用go modules管理以来,也不再需要把代码写在GOPATH目录下了 下载 下载地址 Go官网下载地址:https://go ...
随机推荐
- DirectX 使用 Vortice 从零开始控制台创建 Direct2D1 窗口修改颜色
本文将告诉大家如何使用 Vortice 底层库从零开始,从一个控制台项目,开始搭建一个最简单的使用 Direct2D1 的 DirectX 应用.本文属于入门级博客,期望本文能让大家了解 Vortic ...
- VS Code For Web 深入浅出 -- 导读篇
下一代 IDE 的形态究竟是什么呢?VS Code For Web 试图回答这个问题. 背景 众所周知,VS Code 是当前工业界最优秀的代码编辑器之一.它由<设计模式>的作者 Eric ...
- Vue3 JS 与 SCSS 变量相互使用
在开发中会遇到如下需求: JS 中使用 SCSS 变量.如在 scss 中定义了一个颜色,el-menu 组件使用该颜色作为背景色,此时需要获取 scss 变量,通过 background-color ...
- uoj220【NOI2016】网格
刚了几个小时啊,这tm要是noi我怕不是直接滚粗了.我判答案为1的情况试了几种做法,最后终于想到了一个靠谱的做法,然后细节巨多,调了好久,刚拿到97分时代码有6.2KB了,后来发现有些东西好像没啥用就 ...
- redis 分布式锁 PHP
redis分布式 1.redis是单线程操作 2.分布式会出现的问题,死锁 3.redis分布式(集群).多台服务器里面都有多个单机redis.然后这些redis之间相互链接.还有查看各个单台服务器之 ...
- Windows活动目录_票据——敬请期待!
票据:域控&域机子之间的信任密钥 [缺省40天更换一次] 域用户登录过程 域用户的账户密码(用信任密钥加密的)传递至域控: 域控验证账户密码成功后,构造域用户SID和组SID(用信任密钥加密的 ...
- 知识图谱顶会论文(ACL-2022) CAKE:用于多视图KGC的可扩展常识感知框架
CAKE:用于多视图KGC的可扩展常识感知框架.pdf 论文地址:CAKE:Scalable Commonsense-Aware Framework For Multi-View Knowledge ...
- C++ 不知树系列之初识树(树的邻接矩阵、双亲孩子表示法……)
1. 前言 树是一种很重要的数据结构,最初对数据结构的定义就是指对树和图的研究,后来才广义化了数据结构这个概念.从而可看出树和图在数结构这一研究领域的重要性. 树和图重要的原因是,它让计算机能建模出现 ...
- 29.渲染器Renderer
什么是渲染器 渲染器就是将服务器生成的数据格式转为http请求的格式 渲染器触发及参数配置 在DRF配置参数中,可用的渲染器作为一个类的列表进行定义 但与解析器不同的是,渲染器的列表是有顺 ...
- .NET周报【10月第3期 2022-10-25】
国内文章 聊一聊被 .NET程序员 遗忘的 COM 组件 https://www.cnblogs.com/huangxincheng/p/16799234.html 将Windows编程中经典的COM ...