如果说电子游戏是第九艺术,那么,编程技术则配得上第十艺术的雅称。艺术发展的普遍规律就是要给与人们对于艺术作品的更高层感受,而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> []
-
- 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 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。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |