1-ruby介绍、环境搭建、运行 hello world 程序

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/

1751101867989

https://rubyinstaller.cn/rbenv-for-windows

1751102092190

软件需要
  • 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

1751103083814

  • 使用 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

1751103251311

1751106006068

安装好了之后,可以启动 PowerShell:

1751106918487

查看 PowerShell 的版本:

$PSVersionTable.PSVersion | Select-Object -ExpandProperty Major

1751107034434

安装 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"

1751107205971

1751107401956

查看下载安装好的文件:

1751107435438

然后在$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

1751107638853

打开 PowerShell

Win + R,输入 powershell 并回车,打开 PowerShell

检查 $PROFILE 文件是否存在

运行以下命令检查当前用户的 PowerShell 配置文件是否存在:

Test-Path $PROFILE

1751112871644

  • 如果返回 True,说明配置文件已存在,可以直接编辑。

  • 如果返回 False,需要先创建配置文件:

    New-Item -Path $PROFILE -Type File -Force
    

1751113060754

创建好的文件:

1751113186250

编辑 $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

1751113346620

重新加载 $PROFILE

运行以下命令使更改生效:

. $PROFILE

或者直接重启 PowerShell。

1751113720513

验证 rbenv 是否可用

运行以下命令检查 rbenv 是否正常工作:

rbenv --version

1751113799601

如果正确配置,会显示 rbenv 的版本信息。

使用 rbenv 安装 ruby 版本

列出所有可安装的 Ruby 版本

rbenv install -l

1751112028780

安装特定版本的 Ruby

rbenv install 3.2.2

1751114263971

安装 rbenv 发现缺少 7-zip、scoop 等工具,还需要安装。

安装 scoop

在 PowerShell 中运行以下命令:

# 1. 允许执行远程脚本
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser# 2. 安装 Scoop
irm get.scoop.sh | iex

1751114883834

如果安装出现权限问题,如下:

1751296583355

可以使用管理员的角色安装,如下:

iex "& {$(irm get.scoop.sh)} -RunAsAdmin"

验证 Scoop 是否安装成功

scoop --version

1751114966066

1751115444570

检查环境变量:

$env:PATH

1751115106267

如果没有环境变量,那么也可以手动添加:

# 手动添加 Scoop 到 PATH:
# 临时生效(仅当前会话)
$env:PATH += ";$HOME\scoop\shims"# 永久生效(需重启 PowerShell)
[Environment]::SetEnvironmentVariable("PATH", "$env:PATH;$HOME\scoop\shims", "User")

1751115282972

安装 7-zip
# 通过 Scoop 安装 7-Zip
scoop install 7zip

1751115570157

# 检查 7-Zip 是否安装成功
7z

1751115625251

使用 rbenv 安装 ruby 版本
rbenv install -l # 列出可以安装的版本
rbenv install 3.2.2 # 安装特定版本
rbenv global 3.2.2   # 设置为全局默认版本
rbenv rehash         # 更新 shims

1751115813427

根据上图显示,已经成功安装 ruby 了。也可以安装多个版本,进行切换。

其他命令:

# 设置本地目录特定的 Ruby 版本
rbenv local 3.1.4
设置系统环境变量

上面 PowerShell 虽然已经配置好环境变量,但是系统环境变量还需要手动配置一下,不然在CMD命令行下,则无法执行,如下:

1751118564607

需要新增这两个环境变量:

# rbenv for Windows
$env:RBENV_ROOT = "G:\RubyInstall\Ruby-on-Windows"# 国内用户使用内置镜像
# 注意,这一行必须放在init之前
$env:RBENV_USE_MIRROR = "CN"

1751118875490

1751118899479

配置之后,再次 CMD 查看 ruby 版本,如下:

1751118957543

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)

  1. 打开终端/命令行
  2. 输入 irb 进入交互式 Ruby 环境
  3. 输入:
puts "Hello, World!"

1751116196359

方法2:创建 Ruby 文件

配置 rubymine 使用 ruby sdk ,如下:

1751119583767

1751119608147

选择 ruby 某个版本的 bin 目录下,选择 ruby.exe

1751119648923

1751119668023

创建 hello.rb文件,输入以下内容:

# hello.rb
puts "Hello, World!"

执行效果如下:

1751119771809

使用 Byebug 或 Pry 进行调试

Ruby 程序的 Debug 使用

使用 byebugpry

byebugpry 是两个流行的 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并启动调试会话即可。

控制执行流程:

  • nextn - 执行下一行(不进入方法)
  • steps - 进入方法调用
  • continuec - 继续执行直到下一个断点
  • finishf - 执行直到当前方法结束
  • breakb - 设置断点

查看上下文:

  • whereami@ - 显示当前代码位置
  • backtracebt - 显示调用栈
  • up - 在调用栈中上移
  • down - 在调用栈中下移

检查变量:

  • ls - 列出当前作用域变量和方法
  • cd - 进入对象上下文
  • show-source - 查看方法源代码
代码示例
require "pry-byebug"def some_methoda = 1binding.pry   # 程序会在这里暂停b = 2puts a + b
end# 调用方法
some_method

执行如下:

1752401934088

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/95223.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/95223.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PPO、DPO和GRPO的区别

一、 核心思想一句话概括 首先,我们用三个比喻来快速理解它们的核心思想:PPO (近端策略优化): 「比武招亲」 模型(AI)通过试错和与裁判(奖励模型)的互动来学习。它生成多个回答,裁判…

使用组合子构建抽象语法树

引言 组合子(Combinator)是一种函数式编程中的概念,它允许我们通过组合简单的函数来构建复杂的逻辑。在解析器和抽象语法树(AST)的构建中,组合子提供了一种简洁且模块化的方法。本文将介绍如何使用组合子来…

20.27《24GB显卡轻松训练ChatGLM3-6B!QLoRA极速微调实战指南》

24GB显卡轻松训练ChatGLM3-6B!QLoRA极速微调实战指南 import torch from transformers import AutoModel, AutoTokenizer, BitsAndBytesConfig# 配置4-bit量化参数 bnb_config = BitsAndBytesConfig(load_in_4bit=True,bnb_4bit_use_double_quant=True

JSP 输出语法全面解析

JSP 输出语法全面解析 JSP 提供了多种输出内容到响应流的方式&#xff0c;每种方式都有其特定的使用场景和特点。以下是 JSP 输出语法的详细解析。 总结 JSP直接编写普通字符串 翻译到service方法的out.write(“这里面”) <%%> 翻译到service方法体内部&#xff0c;里面是…

前端学习——CSS

前面我们已经学习过来HTML。但是对于前端网页来说&#xff0c;HTML只是网页的骨架。而只是使用HTML的网页是十分简陋的&#xff0c;一般没办法应用于实际应用。因此我们还要学习CSS对网页进行美化。 相关代码已经上传至gitee&#xff1a;前端学习代码: 前端学习&#xff0c;喜欢…

【stm32】对射式红外传感器计次以及旋转编码器计次

对射式红外传感器计次 1. 将传感器的功能分装在一个模块里CountsSenser2.配置外部中断1.配置RCC&#xff0c;将涉及的外设的时钟都打开 2.配置GPIO&#xff0c;选择端口为输入模式 3.配置AFIO&#xff0c;选择前面使用的一路GPIO,连接到后面的EXTI 4.配置EXTI&#xff0c;选择边…

人工智能学习:Python相关面试题

1、Python与其他语言&#xff08;如Java/C&#xff09;的核心区别是什么&#xff1f;Python是动态类型的解释型语言&#xff0c;语法简洁&#xff0c;支持多种编程范式&#xff08;面向对象、函数式、过程式&#xff09;。与Java相比&#xff0c; Python无需编译且语法更简洁&a…

【Canvas与旗帜】哥伦比亚旗圆饼

【成图】【代码】<!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>哥伦比亚旗圆饼 Draft1</title><style type"text/css&qu…

Linux 系统 poll 与 epoll 机制2:实现原理与应用实践

接上文poll机制&#xff1a;Linux 系统 poll 与 epoll 机制1。 3. epoll 机制&#xff1a;高并发 I/O 的优化实现​ epoll(Efficient event polling implementation)机制诞生于 Linux 2.5.44 版本&#xff0c;是内核为解决高并发 I/O 场景&#xff08;如万级以上 FD 监听&…

Mamba LLM 架构简介:机器学习的新范式

Mamba LLM 架构简介&#xff1a;机器学习的新范式探索 Mamba LLM 的强大功能&#xff0c;Mamba LLM 是来自一流大学的变革性架构&#xff0c;重新定义了 AI 中的序列处理。语言模型是一种经过训练的机器学习模型&#xff0c;用于在自然语言上执行概率分布。它们的架构主要由多层…

GaussDB生产扩容引起的PANIC问题处理案例

1 环境信息CPU:8C内存&#xff1a;64GGaussDB版本&#xff1a;24.7.32解决方案部署形态&#xff1a;HCS部署形态&#xff1a;1主1从1日志扩容原因&#xff1a;当前的配置满足不了max_connections为2000值&#xff0c;即当前的业务最大连接数超过2000个而按照8C64G的配置最多满足…

【168页PPT】华为流程管理体系构建与落地(附下载方式)

篇幅所限&#xff0c;本文只提供部分资料内容&#xff0c;完整资料请看下面链接 https://download.csdn.net/download/2501_92796370/91662548 资料解读&#xff1a;【168页PPT】华为流程管理体系构建与落地 详细资料请看本解读文章的最后内容。华为&#xff0c;作为全球知名…

基于CotSegNet网络和机器学习的棉花点云器官分割和表型信息提取

一、引言PointNet作为点云处理领域的先驱与里程碑式深度学习模型&#xff0c;以其卓越的性能和对无序点云数据直接处理的能力而闻名。博主将分享1篇发表在《Computers and Electronics in Agriculture》&#xff08;中科院1区TOP&#xff09;的“Organ segmentation and phenot…

经典卷积神经网络CNN

一、CNN视觉处理三大任务&#xff1a;图像分类、目标检测、图像分割上游&#xff1a;提取特征&#xff0c;CNN下游&#xff1a;分类、目标、分割等&#xff0c;具体的业务1. 概述卷积神经网络是深度学习在计算机视觉领域的突破性成果。在计算机视觉领域, 往往我们输入的图像都很…

11.1.5 实现文件删除,共享和共享下载排行榜

1、图床分享图片api_sharepicture.cc sharepicture_cgi.c 分享后每个人都可以看到。 数据库&#xff1a; DROP TABLE IF EXISTS share_picture_list; CREATE TABLE share_picture_list (id int(11) NOT NULL AUTO_INCREMENT COMMENT 编号,user varchar(32) NOT NULL COMMENT …

【Java后端】SpringBoot配置多个环境(开发、测试、生产)

在 Spring Boot 中配置多个环境&#xff08;开发、测试、生产&#xff09;通常用 配置文件分环境管理 启动参数切换 的方式来实现。下面一个完整的实践指南&#xff1a;&#x1f539; 1. 使用多配置文件管理环境 Spring Boot 默认支持 application-{profile}.properties 或 ap…

HTTP 分块传输编码:深度解析与报文精髓

分块传输编码&#xff08;Chunked Transfer Encoding&#xff09;是 HTTP/1.1 协议中的一项核心特性&#xff0c;它允许服务器在不预先知道响应体总大小的情况下&#xff0c;高效地传输数据。这项技术解决了传统 Content-Length 机制的局限性&#xff0c;使得 HTTP 协议能够完美…

Vue 项目首屏加载速度优化

Vue 项目首屏加载从 5s 到 1.5s&#xff1a;4 步落地优化方案&#xff0c;附完整代码 数据对比前段时间我在做一个活动时&#xff0c;打包加载后发现打开页面要等半天&#xff0c;经过几天的优化&#xff0c;最终将首屏加载时间从5秒压到 1.5 秒。这篇文章会把整个优化过程拆解…

Java学习第十六部分——JUnit框架

目录 一.概述 二.作用 三.版本 四.优势 五.局限性 六.发展方向 七.核心组件 1 测试用例 2.断言&#xff08;Assertions&#xff09; 3.测试生命周期 4.测试运行器 八.简单示例 九.JUnit 4 与 JUnit 5 的区别 十.idea项目实战 1.在idea中创建Java项目&#xff0c…

[吾爱原创] 千千每日计划

[吾爱原创] 千千每日计划 链接&#xff1a;https://pan.xunlei.com/s/VOYuE8p-KIV-NJr2_0d1Ak9YA1?pwdbqez# 介绍&#xff1a;千千系列的最后一款软件,一款每日计划的一款软件&#xff0c;并且支持时间段修改和打卡和导入导出等功能。 功能&#xff1a; 1.设置每天的计划 2…