当前位置:首页 > 后端开发 > 正文内容

时刻老去,Ruby不死,Ruby言语根底入门教程之Ruby3全渠道开发环境建立EP00

邻居的猫1个月前 (12-09)后端开发1424

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

扫描二维码推送至手机访问。

版权声明:本文由51Blog发布,如需转载请注明出处。

本文链接:https://www.51blog.vip/?id=211

标签: rubyruby教程
分享给朋友:

“时刻老去,Ruby不死,Ruby言语根底入门教程之Ruby3全渠道开发环境建立EP00” 的相关文章

我没有见过这样的傍晚

我没有见过这样的傍晚

写在前面 379 字 | 风光 | 感受 | 诗篇 | 散文诗 | 日子 | 日常 正文   我没有见过这样的傍晚。   整个国际像是一个孩子偷喝了大人的鸡尾酒,脸颊绯红,对着自己喜爱的人嘿嘿傻笑。   一切人好像都沉浸在这个孩子的欢愉心境里,时刻不再匆忙,让人不由想要散步。   我看着你,你橘...

c语言开发工具

1. 集成开发环境(IDE): Visual Studio:微软开发的IDE,支持多种编程语言,包括C语言。它提供了代码编辑、编译、调试、版本控制等功能。 Code::Blocks:一个开源、跨平台的IDE,支持C/C 编程。它轻量级、易于使用,适合初学者。 Eclipse CD...

链表c语言,二、链表的基本概念

链表c语言,二、链表的基本概念

链表(Linked List)是一种常见的数据结构,它由一系列节点组成,每个节点包含两部分:数据部分和指向下一个节点的指针。链表可以分为单链表、双链表和循环链表等。下面我将分别介绍这些链表类型,并提供相应的C语言实现。 1. 单链表单链表是最简单的链表类型,每个节点只包含一个指向下一个节点的指针。...

c语言函数返回数组,C语言函数返回数组的实现与注意事项

c语言函数返回数组,C语言函数返回数组的实现与注意事项

在C语言中,函数不能直接返回一个数组。但是,你可以通过以下几种方式间接地实现:1. 返回指向数组的指针:你可以让函数返回一个指向数组的指针。但这种方式需要你确保返回的指针所指向的数组在函数返回后仍然有效。一种常见的做法是使用静态数组,因为静态数组在函数返回后仍然存在,但它的缺点是每次调用函数时,数组...

c语言的三种基本结构,构建高效程序的基石

C语言的三种基本结构是顺序结构、选择结构和循环结构。1. 顺序结构:顺序结构是最基本的结构,它按照程序代码的先后顺序执行。在顺序结构中,程序从第一条语句开始执行,然后依次执行后续的语句,直到程序结束。2. 选择结构:选择结构用于根据不同的条件执行不同的语句。在C语言中,选择结构主要有两种形式:if语...

r语言apply函数,数据处理与计算的利器

`apply` 函数是 R 语言中的一个强大工具,它允许用户对矩阵或数据框的列或行应用一个函数。这个函数特别适用于需要对矩阵或数据框的每一列或每一行进行相同的操作,比如计算每一列或每一行的平均值、标准差、最大值、最小值等。 基本语法`apply` `X`: 一个矩阵或数据框。 `MARGIN`: 应...