百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

时间老去,Ruby不死,Ruby入门教程之Ruby3全平台开发环境搭建EP00

toyiye 2024-09-03 22:43 9 浏览 0 评论

如果说电子游戏是第九艺术,那么,编程技术则配得上第十艺术的雅称。艺术发展的普遍规律就是要给与人们对于艺术作品的更高层感受,而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。

相关推荐

# Python 3 # Python 3字典Dictionary(1)

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,格式如...

Python第八课:数据类型中的字典及其函数与方法

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值...

Python中字典详解(python 中字典)

字典是Python中使用键进行索引的重要数据结构。它们是无序的项序列(键值对),这意味着顺序不被保留。键是不可变的。与列表一样,字典的值可以保存异构数据,即整数、浮点、字符串、NaN、布尔值、列表、数...

Python3.9又更新了:dict内置新功能,正式版十月见面

机器之心报道参与:一鸣、JaminPython3.8的热乎劲还没过去,Python就又双叒叕要更新了。近日,3.9版本的第四个alpha版已经开源。从文档中,我们可以看到官方透露的对dic...

Python3 基本数据类型详解(python三种基本数据类型)

文章来源:加米谷大数据Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在Python中,变量就是变量,它没有类型,我们所说的"类型"是变...

一文掌握Python的字典(python字典用法大全)

字典是Python中最强大、最灵活的内置数据结构之一。它们允许存储键值对,从而实现高效的数据检索、操作和组织。本文深入探讨了字典,涵盖了它们的创建、操作和高级用法,以帮助中级Python开发...

超级完整|Python字典详解(python字典的方法或操作)

一、字典概述01字典的格式Python字典是一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。字典的每个键值key=>value对用冒号:分割,每个对之间用逗号,...

Python3.9版本新特性:字典合并操作的详细解读

处于测试阶段的Python3.9版本中有一个新特性:我们在使用Python字典时,将能够编写出更可读、更紧凑的代码啦!Python版本你现在使用哪种版本的Python?3.7分?3.5分?还是2.7...

python 自学,字典3(一些例子)(python字典有哪些基本操作)

例子11;如何批量复制字典里的内容2;如何批量修改字典的内容3;如何批量修改字典里某些指定的内容...

Python3.9中的字典合并和更新,几乎影响了所有Python程序员

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

Python3大字典:《Python3自学速查手册.pdf》限时下载中

最近有人会想了,2022了,想学Python晚不晚,学习python有前途吗?IT行业行业薪资高,发展前景好,是很多求职群里严重的香饽饽,而要进入这个高薪行业,也不是那么轻而易举的,拿信工专业的大学生...

python学习——字典(python字典基本操作)

字典Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。但它是无序的,包含的元素个数不限,值...

324页清华教授撰写【Python 3 菜鸟查询手册】火了,小白入门字典

如何入门学习python...

Python3.9中的字典合并和更新,了解一下

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

python3基础之字典(python中字典的基本操作)

字典和列表一样,也是python内置的一种数据结构。字典的结构如下图:列表用中括号[]把元素包起来,而字典是用大括号{}把元素包起来,只不过字典的每一个元素都包含键和值两部分。键和值是一一对应的...

取消回复欢迎 发表评论:

请填写验证码