乐趣区

关于前端:前端学-Ruby安装RubyRails

Ruby 是什么

Ruby 是一个重视平衡的语言,它的发明者松本行弘,混合了他喜爱的多门语言(Perl、Smalltalk、Eiffel、Ada 和 Lisp),发明出了一种兼具函数式编程和命令式编程特色的新语言

他“试着让 Ruby 更天然,而不是更简略”,让所有合乎生存惯例

除此之外,他还提到:

Ruby 就像人的身材一样,外表上看来简略,然而外部却相当简单

如何装置 ruby

笔者所用的电脑是 window,在此基础上有多种办法装置、应用 ruby,一是间接下载 window 版的 ruby;二是先装置 docker,后下载 Linux 镜像,在 Linux 环境中装置 ruby;三是装置 docker 后,间接下载 ruby 镜像

如果是在 Window 中,能够在官网或者国内镜像源处下载应用

如果是在 Linux 中,能够在官网里下载

  1. 下载最新版的 Ruby 压缩文件
wget https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.3.tar.xz
# curl https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.3.tar.xz
  1. 下载 Ruby 之后,应用上面的命令解压:
tar -xvzf ruby-3.1.3.tgz    
cd ruby-3.1.3
  1. 配置并编译源代码
./configure
make
sudo make install
  1. 装置后,通过在命令行中输出以下命令来确保所有工作失常
ruby -v
ruby 3.1.3

如果用 docker

  1. 拉取 ruby 镜像
docker pull ruby
  1. 基于 ruby 镜像生产一个容器
docker run -it 

当然,也能够用 vscode + dev-container 来在 vscode 中生成一个 Linux,Linux 装置 ruby 来做开发

除了间接下载 ruby 外,还能够下载 RVM,它能够治理多个版本的 Ruby,就像前端概念里的 nvm

RVM

RVM 能在零碎中装置和治理多个 Ruby 版本。同时还能治理不同的 gem 集。反对 macOS、Linux 和其它类 UNIX 操作系统

gpg2 --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
\curl -sSL https://get.rvm.io | sudo bash -s stable
# 当 rvm 装置好后,看下图的提醒操作
sudo usermod -a -G rvm johan # 将以后用户增加到 rvm 组中
su root # 切换到 root,相当于先登记 johan
su johan # 切换会 johan,相当于登录 johan
source /etc/profile.d/rvm.sh # 让命令失效 
# 设置为零碎默认版本
rvm use --default 2.2.3
# 在其余版本之前切换
rvm use 2.2.1
# 卸载一个指定版本
rvm uninstall 2.2.1

Gems

RubyGems 是 Ruby 我的项目的包管理工具。有很多有用的代码库(包含 Rails)都能够通过包(或叫做 gem)的模式获取

因为下载了 ruby,自带了 gem,就好比下载了 node,自带了 npm

gem -v 
#3.3.26

有意思的是:ruby 的英语意思是红宝石,gem 的意思是宝石

Ruby 镜像源替换

增加镜像的目标是为了下载依赖包的时候速度更快,就好比 npm 的国内镜像 cnpm

查看以后镜像

gem source l # 或者 gem source
# 后果
# *** CURRENT SOURCES ***

# https://rubygems.org/

增加国内镜像:

gem sources --add https://gems.ruby-china.com/

再次查看镜像:

gem sources -l
# *** CURRENT SOURCES ***

# https://rubygems.org/
# https://gems.ruby-china.com/

用 –add 增加地址,–remove 删除地址

gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/

国内其余镜像源

在部署时,ruby-china 的源会抖动连贯不上,能够通过换源或者在开发时将源下载下来,用本地源来代替(唐诗我的项目遇到的坑)

中科大:http://mirrors.ustc.edu.cn/help/rubygems.html

清华:https://mirrors.tuna.tsinghua.edu.cn/help/rubygems/

阿里:https://mirrors.aliyun.com/rubygems/

gem 命令

  • gem list:查看所有的包
  • gem install xx:下载利用包
  • gem uninstall:卸载利用包
  • gem sources:查看以后镜像

命令行

当装置完 ruby 后,关上命令行输出 irb,即可进入 irb 运行环境,这就像输出 node 进入 node 运行环境,输出 python,进入 python 运行环境

装置 Rails

Rails 是什么?

Rails 是应用 Ruby 语言写的 Web 利用框架。它有两大领导“思维”

  • 不要自我反复(DRY)
  • 多约定,少配置(约定大于配置)

因为有包管理工具,所以下载就能够

github 源码地址:https://github.com/rails/rails

gem install rails

装置结束后,执行 rails -v 查看是否装置胜利

rails -v
# Rails 7.0.4

当然,rails 还有很多命令,如

rails new blog # 生成一个 blog 我的项目
rails new --api blog # 以 API 模式生成一 blog 我的项目
rails new --css bootstrap blog # 以 bootstrap 作为 css 生成一 blog 我的项目
rails new --database postgresql blog # 以 postgressql 作为数据库生成我的项目
rails new -h # 查看所有命令行选项
rails new --api --database=postgresql --skip-test blog # 创立一个数据库为 postgresql 的跳过测试的 api 博客(blog)我的项目 

第一个程序

应用 rails 新建我的项目,它就像 express-generator 一样,所有的配置都帮你弄好,你要写代码就能够

rails new first_app

目录构造

文件 / 文件夹 作用
app/ 蕴含利用的控制器、模型、视图、辅助办法、邮件程序、频道、作业和动态资源文件。这个文件夹是本文残余内容关注的重点。
bin/ 蕴含用于启动利用的 rails 脚本,以及用于装置、更新、部署或运行利用的其余脚本。
config/ 配置利用的路由、数据库等。详情请参阅配置 Rails 利用。
config.ru 基于 Rack 的服务器所需的 Rack 配置,用于启动利用。
db/ 蕴含以后数据库的模式,以及数据库迁徙文件。
Gemfile, Gemfile.lock 这两个文件用于指定 Rails 利用所需的 gem 依赖。Bundler gem 须要用到这两个文件。对于 Bundler 的更多介绍,请拜访 Bundler 官网。
lib/ 利用的扩大模块。
log/ 利用日志文件。
public/ 仅有的能够间接从内部拜访的文件夹,蕴含动态文件和编译后的动态资源文件。
Rakefile 定位并加载可在命令行中执行的工作。这些工作在 Rails 的各个组件中定义。如果要增加自定义工作,请不要批改 Rakefile,间接把自定义工作保留在 lib/tasks 文件夹中即可。
README.md 利用的自述文件,阐明利用的用处、装置办法等。
test/ 单元测试、固件和其余测试安装。详情请参阅 Rails 利用测试指南。
tmp/ 临时文件(如缓存和 PID 文件)。
vendor/ 蕴含第三方代码,如第三方 gem。
.gitignore 通知 Git 要疏忽的文件(或模式)。详情参见 GitHub 帮忙文档。

其中 Gemfile 相当于前端中的 package.jsonGemfile.lock 相当于 package.lock

但当你应用初始化我的项目时,会报错:

其起因是在门路中应用了中文,所以换个门路就好

下载依赖是通过 bundle install,相当于前端的 npm install

bundle install 

能够应用 bundle –help 查看 bundle 的其余命令行,笔者会用 bundle install --verbose 查看下载过程

如何启动我的项目呢,在前端开发中,有 package.json,能在 script 中写命令。而 rails 不同,它的 Gemfile 没有运行文件的命令,但它自带了很多命令行,如:

rails server # 启动服务
rails s -p 8080 # s 为 server 缩写,-p 8080 示意指定 8080 的端口 

如此,rails 利用就启动了

总结

本文的次要目标是让 Ruby on Rails 能运行,在 window 上运行的确还有坑,即便没有几年前那么多,但还是有个坑让我踩进去了,这里作记录

咱们当初曾经装置了 ruby、rails,并且启动我的项目,但到当初一行代码都不会写,下一篇,咱们相熟 ruby 的语法

参考资料

  • Rails 入门

系列文章

  • 前端学 Ruby:前言
退出移动版