如果说电子游戏是第九艺术,那么,编程技术则配得上第十艺术的雅称。艺术发展的普遍规律就是要给与人们对于艺术作品的更高层感受,而Matz的Ruby语言则正是这样一件艺术品。
无论是语法还是理念,都让Ruby开发者感受到款待,如此,Ruby代码就像活了过来,它们时而高声,却藏不住优雅,时而细语,却意外地铿锵,真是美妙,这种庄重而温柔的魅力,用那一代奉松本行弘为偶像的人的话说,叫剑胆琴心。现在的话又讲,心有猛虎,细嗅蔷薇。
本次,让我们再一次全平台构建Ruby3开发环境,感受Ruby3的魅力。
都知道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
- ➜ ~
如果使用的是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
简单方便。