• Linux系统安装Ruby语言


      Ruby是一种面向对象的脚本语言,由日本的计算机科学家松本行弘设计并开发,Ruby的设计哲学强调程序员的幸福感,致力于简化编程的复杂性,并提供一种既强大又易于使用的工具。其语法简洁优雅,易于阅读和书写,使得代码更加清晰易懂,作为一种动态类型语言,Ruby不需要在声明变量时指定类型,它会在运行时自动处理类型转换,同时,Ruby是一种纯面向对象的语言,所有事物都被视为对象,支持封装、继承和多态等核心概念。

    Ruby中文论坛:Ruby China

    Ruby官方文档:Ruby-Doc.org: Documenting the Ruby Language

    我在安装时使用的VS Code同SSH连接到的Ubuntu虚拟机,在正式部署在云服务器前最好先在虚拟机上部署测试。Visual Studio Code连接VMware虚拟机-CSDN博客

    提前准备

    先更新软件包列表

    sudo apt update
    sudo apt upgrade

     在安装Ruby前最好先配置好git:

    sudo apt install git

     验证是否安装完成:

    git --version

    设置用户名和用户邮箱:

    1. git config --global user.name "GGBao"
    2. git config --global user.email "1234567@GG.com"

    在VS Code中安装插件 Ruby LSP 和 Code Runner 到虚拟机:旧的Ruby插件已经弃用:

    使用rbenv安装Ruby

    现在已经更新到3.3版本了,但这次安装的是Ruby2.7版本,因为2.7版本更方便操作和简单易学一点,而且更加稳定有更多参考资料。

    安装各种Ruby的依赖包:

    sudo apt install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev
    1. * `git-core`: Git版本控制
    2. * `curl`: 用于从命令行获取或发送数据的工具
    3. * `zlib1g-dev`: zlib压缩库的开发文件
    4. * `build-essential`: 包含gcc、g++和make等编译工具
    5. * `libssl-dev`: OpenSSL库的开发文件,用于安全通信
    6. * `libreadline-dev`: readline库的开发文件,支持命令行编辑和历史记录
    7. * `libyaml-dev`: YAML库的开发文件
    8. * `libsqlite3-dev` 和 `sqlite3`: SQLite数据库的开发文件和命令行工具
    9. * `libxml2-dev` 和 `libxslt1-dev`: 用于XML和XSLT处理的开发文件
    10. * `libcurl4-openssl-dev`: 使用OpenSSL的curl库的开发文件
    11. * `software-properties-common`: 管理软件包的存储库和PPA的工具
    12. * `libffi-dev`: FFI库的开发文件,允许从一种语言调用另一种语言编写的代码

     克隆rbenv仓库:

    rbenv通过修改环境变量来控制当前使用的Ruby版本,它不会干扰系统自带的Ruby环境,而是为用户提供一个隔离的Ruby运行环境。这使得在不同的项目之间切换和管理多个Ruby版本变得简单易行。

    git clone https://github.com/rbenv/rbenv.git ~/.rbenv

    更新bashrc文件,将rbenv的bin目录添加到PATH环境变量中并初始化rbenv:

    echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc 
    echo 'eval "$(rbenv init -)"' >> ~/.bashrc

     重启shell

    exec $SHELL

    克隆 Ruby-build 插件:

    git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

     安装Ruby版本和全局设置Ruby版本:

    rbenv install 2.7.2
    rbenv global 2.7.2

    安装rails

    Ruby on Rails(简称Rails)是一个用于开发数据库驱动的网络应用程序的完整框架。它基于MVC(模型-视图-控制器)设计模式,为开发者提供了一个纯Ruby的开发环境,Rails从视图中的Ajax应用,到控制器中的访问请求和反馈,再到封装数据库的模型,为开发者提供了一套完整的解决方案。它支持各类网络服务器和数据库,使得发布网站时只需要一个数据库和一个网络服务器即可。

    gem install rails -v 6.0.3.4

    安装 ruby-railties:

    sudo apt install ruby-railties

    新建一个文件测试下安装是否完成:

    1. # hello.rb
    2. pust "Oh yeah GGboy"

    运行成功:

    Ruby基础操作

    变量和字符串插值:
     

    1. name = "靓仔"
    2. age = 22
    3. width = 1.75
    4. puts "Hello, my name is #{name} and I am #{age} years old and I am #{width} meters tall."

    定义方法:

    1. # 秒数换算
    2. def seconds_to_hms(seconds)
    3. hours = seconds / 3600
    4. minutes = (seconds % 3600) / 60
    5. seconds = seconds % 60
    6. "#{hours}:#{minutes}:#{seconds}"
    7. end
    8. # 调用方法
    9. puts seconds_to_hms(6000)

    判断语句:

    1. name = "山里灵活"
    2. age = 18
    3. if age < 18
    4. puts "#{name}没到18岁"
    5. elsif age == 18
    6. puts "#{name}刚满18岁"
    7. else
    8. puts "#{name}已经不在18岁"
    9. end

    循环语句:

    1. 6.times do |i|
    2. print ' ' * (6 - i - 1)
    3. print '*' * (2 * i + 1)
    4. puts
    5. end

    面向对象:

    1. class Person
    2. def initialize(name, age, address, phone_number, email)
    3. @name = name
    4. @age = age
    5. @address = address
    6. @phone_number = phone_number
    7. @email = email
    8. end
    9. def greet
    10. puts "Hello, my name is #{@name} and I am #{@age} years old."
    11. puts "I live at #{@address} and my phone number is #{@phone_number}."
    12. puts "You can reach me at #{@email}."
    13. end
    14. end
    15. person = Person.new("Charlie", 28, "123 Main St.", "(555)-555-5555", "charlie@example.com")
    16. person.greet

     

    添加注释:

    1. # 这是单行注释
    2. =begin
    3. 这是多行注释
    4. 火鸡面
    5. 大扒鸭
    6. 大辣椒
    7. 一顿不吃心刺挠
    8. =end
  • 相关阅读:
    【Spring】DI依赖注入
    网络安全笔记-Web架构
    【SDXL_LORA模型训练详细教程(含云端教程)】
    java从入门到进阶
    金仓数据库 KingbaseES异构数据库移植指南 (3. KingbaseES移植能力支撑体系)
    代码随想录算法训练营第三十四天| 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果
    uniApp集成aar
    c++概述--易混淆点记录
    MySQL事务
    王道书P149 T3(二叉树链式存储实现)
  • 原文地址:https://blog.csdn.net/m0_73500130/article/details/139709342