1-ruby介绍、环境搭建、运行 hello world 程序
Ruby 简介
Ruby 是一种开源的、面向对象的、解释型的动态编程语言,由 Yukihiro “Matz” Matsumoto 于 1995 年发布。主要特点包括:
- 纯面向对象:所有东西都是对象
- 动态类型:变量不需要声明类型
- 简洁优雅的语法
- 强大的元编程能力
- 丰富的标准库和活跃的社区
- 著名的 Ruby on Rails 框架
环境搭建
Ruby 可以安装在 windows、linux、macOS 系统上,下面以 windows 为例进行环境搭建介绍
1. 安装 Ruby
Windows 系统
使用 RubyInstaller,下载地址如下:
- 官网:http://rubyinstaller.org/downloads/
- 国内:https://rubyinstaller.cn/
https://rubyinstaller.cn/rbenv-for-windows
软件需要
-
Windows 7 SP1+ / Windows Server 2008+
-
PowerShell 5 (or later, include PowerShell Core) and .NET Framework 4.5 (or later)
PowerShell must be enabled for your user account e.g.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
-
cURL
-
Git
-
7zip
安装 PowerShell
https://learn.microsoft.com/zh-cn/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.5#winget
- 在CMD终端:搜索最新版本的 PowerShell
winget search Microsoft.PowerShell
- 使用
id
参数安装 PowerShell 或 PowerShell 预览版
# 安装 PowerShell
winget install --id Microsoft.PowerShell --source winget# 安装 PowerShell 预览版
winget install --id Microsoft.PowerShell.Preview --source winget
这里我就安装 PowerShell 就好了,如下:
winget install --id Microsoft.PowerShell --source winget
安装好了之后,可以启动 PowerShell:
查看 PowerShell 的版本:
$PSVersionTable.PSVersion | Select-Object -ExpandProperty Major
安装 rbenv-for-windows
在 PowerShell 终端中运行:
# 自定义你想安装到的位置,最好不要有空格
$env:RBENV_ROOT = "G:\RubyInstall\Ruby-on-Windows"
$s = (iwr -useb "https://gitee.com/RubyMetric/rbenv-for-windows/raw/main/tool/install.ps1")
icm -sc ([scriptblock]::Create($s.Content)) -arg "install", "cn"
查看下载安装好的文件:
然后在$profile
中添加这些内容:
# rbenv for Windows
$env:RBENV_ROOT = "G:\RubyInstall\Ruby-on-Windows"# 国内用户使用内置镜像
# 注意,这一行必须放在init之前
$env:RBENV_USE_MIRROR = "CN"& "$env:RBENV_ROOT\rbenv\bin\rbenv.ps1" init
打开 PowerShell
按 Win + R
,输入 powershell
并回车,打开 PowerShell
检查 $PROFILE 文件是否存在
运行以下命令检查当前用户的 PowerShell 配置文件是否存在:
Test-Path $PROFILE
-
如果返回
True
,说明配置文件已存在,可以直接编辑。 -
如果返回
False
,需要先创建配置文件:New-Item -Path $PROFILE -Type File -Force
创建好的文件:
编辑 $PROFILE 文件
C:\Users\Administrator\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
添加 rbenv 环境变量
在打开的 $PROFILE
文件中,添加以下内容
# rbenv for Windows
$env:RBENV_ROOT = "G:\RubyInstall\Ruby-on-Windows"# 国内用户使用内置镜像
# 注意,这一行必须放在init之前
$env:RBENV_USE_MIRROR = "CN"& "$env:RBENV_ROOT\rbenv\bin\rbenv.ps1" init
重新加载 $PROFILE
运行以下命令使更改生效:
. $PROFILE
或者直接重启 PowerShell。
验证 rbenv 是否可用
运行以下命令检查 rbenv
是否正常工作:
rbenv --version
如果正确配置,会显示 rbenv
的版本信息。
使用 rbenv 安装 ruby 版本
列出所有可安装的 Ruby 版本:
rbenv install -l
安装特定版本的 Ruby:
rbenv install 3.2.2
安装 rbenv 发现缺少 7-zip、scoop 等工具,还需要安装。
安装 scoop
在 PowerShell 中运行以下命令:
# 1. 允许执行远程脚本
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser# 2. 安装 Scoop
irm get.scoop.sh | iex
如果安装出现权限问题,如下:
可以使用管理员的角色安装,如下:
iex "& {$(irm get.scoop.sh)} -RunAsAdmin"
验证 Scoop 是否安装成功
scoop --version
检查环境变量:
$env:PATH
如果没有环境变量,那么也可以手动添加:
# 手动添加 Scoop 到 PATH:
# 临时生效(仅当前会话)
$env:PATH += ";$HOME\scoop\shims"# 永久生效(需重启 PowerShell)
[Environment]::SetEnvironmentVariable("PATH", "$env:PATH;$HOME\scoop\shims", "User")
安装 7-zip
# 通过 Scoop 安装 7-Zip
scoop install 7zip
# 检查 7-Zip 是否安装成功
7z
使用 rbenv 安装 ruby 版本
rbenv install -l # 列出可以安装的版本
rbenv install 3.2.2 # 安装特定版本
rbenv global 3.2.2 # 设置为全局默认版本
rbenv rehash # 更新 shims
根据上图显示,已经成功安装 ruby 了。也可以安装多个版本,进行切换。
其他命令:
# 设置本地目录特定的 Ruby 版本
rbenv local 3.1.4
设置系统环境变量
上面 PowerShell 虽然已经配置好环境变量,但是系统环境变量还需要手动配置一下,不然在CMD命令行下,则无法执行,如下:
需要新增这两个环境变量:
# rbenv for Windows
$env:RBENV_ROOT = "G:\RubyInstall\Ruby-on-Windows"# 国内用户使用内置镜像
# 注意,这一行必须放在init之前
$env:RBENV_USE_MIRROR = "CN"
配置之后,再次 CMD 查看 ruby 版本,如下:
2.配置 gem 国内镜像源
为了解决网络问题,你可以使用国内的 RubyGems 镜像,如 Ruby China 的镜像。以下是如何配置和使用 RubyGems 镜像的步骤:
打开命令行工具,输入以下命令来修改 Gem 的源:
# 查看当前的镜像源
gem sources -l
# 输出
# *** CURRENT SOURCES ***
# https://rubygems.org/# 列出所有配置的源
gem sources --list | grep "current"# 移除默认镜像源
gem sources --remove https://rubygems.org/
# 输出: https://rubygems.org/ removed from sources# 添加国内镜像源
gem sources -a https://gems.ruby-china.com/
# 输出: https://gems.ruby-china.com/ added to sources# 再次查看当前的镜像源
gem sources -l
# 输出
# *** CURRENT SOURCES ***
# https://gems.ruby-china.com/
3.升级 gem 工具
# 升级至 3.6.9
gem update --system 3.6.9
第一个 Ruby 程序:Hello World
方法1:交互式 Ruby (IRB)
- 打开终端/命令行
- 输入
irb
进入交互式 Ruby 环境 - 输入:
puts "Hello, World!"
方法2:创建 Ruby 文件
配置 rubymine 使用 ruby sdk ,如下:
选择 ruby 某个版本的 bin 目录下,选择 ruby.exe
创建 hello.rb
文件,输入以下内容:
# hello.rb
puts "Hello, World!"
执行效果如下:
使用 Byebug 或 Pry 进行调试
Ruby 程序的 Debug 使用
使用 byebug
或 pry
byebug
和 pry
是两个流行的 Ruby 调试器。它们允许你在代码的特定位置暂停执行,检查变量值、步进代码等。
安装 byebug
gem install byebug
基本用法
def some_method# 你的代码byebug# 更多的代码
end
运行应用,当执行到 byebug
时,Rails 会暂停执行,可以在控制台中查看变量、步进(step)、继续执行等。
- 基本用法:在代码中插入
byebug
语句,程序执行到该处会暂停进入调试模式 - 常用命令:
next
:执行下一行代码(跳过方法调用)step
:步入方法内部continue
:继续执行直到下一个断点
- 特点:支持断点管理、堆栈导航和变量检查
代码示例
require 'byebug'def some_method# 你的代码puts "this is some method"# 使用 byebug 进行调试byebug# 更多的代码puts "continue to run1"# 使用 byebug 进行调试byebugputs "continue to run2"
end# 调用方法
some_method
执行如下:
[root@jd-server 01_base]# ruby byebug_example.rb
this is some method[6, 15] in /work/ruby_project/ruby-practice/01_base/byebug_example.rb6: 7: # 使用 byebug 进行调试8: byebug9: 10: # 更多的代码
=> 11: puts "continue to run1"12: 13: # 使用 byebug 进行调试14: byebug15:
# 执行 next 指令:执行下一行代码(跳过方法调用)
(byebug) next
continue to run1[9, 18] in /work/ruby_project/ruby-practice/01_base/byebug_example.rb9: 10: # 更多的代码11: puts "continue to run1"12: 13: # 使用 byebug 进行调试
=> 14: byebug15: 16: puts "continue to run2"17: end18:
# 继续执行直到下一个断点
(byebug) continue[11, 20] in /work/ruby_project/ruby-practice/01_base/byebug_example.rb11: puts "continue to run1"12: 13: # 使用 byebug 进行调试14: byebug15:
=> 16: puts "continue to run2"17: end18: 19: # 调用方法20: some_method
(byebug)
continue to run2
[root@jd-server 01_base]#
Pry 调试工具
安装 pry-byebug
安装方式:需要 pry-byebug
gem(结合了 Pry 和 Byebug 功能)
gem install pry-byebug
基本用法
无论是在开发复杂的业务逻辑、调试棘手的bug,还是在优化性能时,pry-byebug都可以大展拳脚。例如,当需要追踪一个方法的调用过程,或是检查特定状态下的变量值时,只需要在适当位置插入binding.pry
并启动调试会话即可。
控制执行流程:
next
或n
- 执行下一行(不进入方法)step
或s
- 进入方法调用continue
或c
- 继续执行直到下一个断点finish
或f
- 执行直到当前方法结束break
或b
- 设置断点
查看上下文:
whereami
或@
- 显示当前代码位置backtrace
或bt
- 显示调用栈up
- 在调用栈中上移down
- 在调用栈中下移
检查变量:
ls
- 列出当前作用域变量和方法cd
- 进入对象上下文show-source
- 查看方法源代码
代码示例
require "pry-byebug"def some_methoda = 1binding.pry # 程序会在这里暂停b = 2puts a + b
end# 调用方法
some_method
执行如下: