本页内容

  • 环境要求
  • 安装 PostgreSQL
  • 安装 Ruby
  • 安装 Node.js 和 Yarn 包管理器
  • 安装开发工具
  • 通过 Gem 包管理器安装 Ruby on Rails
  • 为 Rails 项目创建 PostgreSQL 角色
  • 创建第一个 Rails 项目
  • 结论

Ruby on Rails(简称 RoR 或 Rails)是一个使用 Ruby 编写、基于 MIT 许可证的自由开源 Web 应用框架。它是一个使用模型-视图-控制器(MVC)模式的全栈 Web 框架。

Rails Web 框架为数据库、Web 服务和 Web 页面提供了结构。此外,Rails 还包含一些重要的工具,例如 scaffolding、Puma、Gems 等。

本指南将教你如何在 AlmaLinux 9 机器上安装配合 PostgreSQL 数据库的 Ruby on Rails。在本指南结束时,你将配置好用于 Rails 项目的开发环境。

环境要求

要完成本指南,请确保你具备以下条件:

  • 一台 AlmaLinux 9 机器 —— 本示例将使用主机名为 almalinux9、IP 地址为 192.168.10.15 的 AlmaLinux 9。
  • 一个具有 root/sudo 权限的非 root 用户。

安装 PostgreSQL

首先,你将安装用作 Rails 项目数据库的 PostgreSQL 服务器。你可以通过 AppStream 软件仓库安装它,但在本指南中你将通过官方 PostgreSQL 仓库进行安装。

运行以下命令下载并将 PostgreSQL 仓库添加到你的系统。

sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm

如何在 AlmaLinux 9 上安装 Ruby on Rails 并配合 PostgreSQL

现在,使用以下命令安装 PostgreSQL 服务器。与此同时,你还会安装 libpq5-devel,这是供你的 Rails 应用使用的 PostgreSQL 库。

sudo dnf install -y postgresql15-server postgresql15-contrib libpq5-devel

如何在 AlmaLinux 9 上安装 Ruby on Rails 并配合 PostgreSQL

之后,运行以下命令初始化 PostgreSQL 服务器配置。

sudo postgresql-15-setup initdb

然后使用以下 systemctl 命令启动并启用 PostgreSQL 服务。

sudo systemctl start postgresql-15
sudo systemctl enable postgresql-15

如何在 AlmaLinux 9 上安装 Ruby on Rails 并配合 PostgreSQL

最后,使用以下命令验证 PostgreSQL 服务。运行正常时,你应该会看到诸如 'active (exited)' 或 'active (running)' 之类的消息。

sudo systemctl status postgresql-15

如何在 AlmaLinux 9 上安装 Ruby on Rails 并配合 PostgreSQL

安装 Ruby

默认情况下,AlmaLinux 的 appstream 仓库提供适用于 Ruby on Rails 的 Ruby 3.x。在本节中,你将通过 DNF 包管理器安装 Ruby 3.0。

运行以下命令查看 appstream 仓库中可用的 Ruby 版本列表。

sudo dnf module list ruby

以下输出确认 AlmaLinux 仓库同样提供 Ruby 3.1。

如何在 AlmaLinux 9 上安装 Ruby on Rails 并配合 PostgreSQL

现在,运行以下命令安装 Ruby 和 Ruby 开发包。输入 y 确认并按 ENTER 继续。

sudo dnf install ruby ruby-devel

如何在 AlmaLinux 9 上安装 Ruby on Rails 并配合 PostgreSQL

Ruby 安装完成后,使用以下命令进行检查。你应该会看到 AlmaLinux 系统上已安装 Ruby v3.0。

ruby --version

如何在 AlmaLinux 9 上安装 Ruby on Rails 并配合 PostgreSQL

安装 Node.js 和 Yarn 包管理器

在安装 Rails 之前,你必须安装 Node.js 和 Yarn 包管理器。这两个包将被 Rails 用于编译 Rails 项目中的静态文件。

运行以下 dnf 命令安装 Node.js 和 NPM 包。出现提示时,输入 y 并按 ENTER 继续。

sudo dnf install nodejs npm -y

如何在 AlmaLinux 9 上安装 Ruby on Rails 并配合 PostgreSQL

接下来,运行以下 npm 命令安装 Yarn 包管理器。

sudo npm install -g yarn

Yarn 包管理器应位于 /usr/local/bin 目录中。因此,你必须将 /usr/local/bin 目录添加到 PATH 环境变量。

运行以下命令,通过 .bashrc 文件将 /usr/local/bin 目录添加到 PATH 环境变量,并重新加载它以使更改生效。

echo "export PATH=$PATH:/usr/local/bin" >> ~/.bashrc
source ~/.bashrc

现在,运行以下命令定位 Node.js 和 Yarn 包管理器。Node.js 二进制文件位于 /bin/node,Yarn 包管理器位于 /usr/local/bin/yarn。

which node
which yarn

最后,运行以下命令检查 Node.js 和 Yarn 包管理器的版本。

node --version
yarn --version

如何在 AlmaLinux 9 上安装 Ruby on Rails 并配合 PostgreSQL

安装开发工具

在此步骤中,你将安装 Rails 所需的“开发工具”(Development Tools)。

运行以下命令将“开发工具”(Development Tools)安装到你的 AlmaLinux 系统。

sudo dnf group install "Development Tools" -y

安装完成后,进入下一步安装 Rails。

通过 Gem 包管理器安装 Ruby on Rails

所有依赖安装完成后,你就可以在 AlmaLinux 机器上安装 Ruby on Rails 了。

运行以下 gem 命令将 Ruby on Rails 安装到你的系统。

sudo gem install rails

如何在 AlmaLinux 9 上安装 Ruby on Rails 并配合 PostgreSQL

安装完成后,运行以下命令定位 Rails 二进制文件并验证 Rails 版本。

which rails
rails --version

在以下输出中,你应该会看到 Rails 可执行文件位于 /usr/local/bin/rails,且当前安装的 Rails 版本为 7.0。

如何在 AlmaLinux 9 上安装 Ruby on Rails 并配合 PostgreSQL

为 Rails 项目创建 PostgreSQL 角色

在本节中,你将创建一个新的 PostgreSQL 角色,供 Rails 项目使用。该新角色必须拥有在 PostgreSQL 上创建新数据库的权限。

使用以下命令登录 PostgreSQL。登录后,你应该会看到提示符 postgres=>,这表明你已连接到默认数据库 'postgres'。

sudo -u postgres psql

现在运行以下查询,创建一个新的供 Rails 使用的 PostgreSQL 角色。在本示例中,你将创建一个名为 hellorails、密码为 userpassword 的新角色。该角色被允许在 PostgreSQL 上创建新数据库。

CREATE ROLE hellorails WITH CREATEDB LOGIN PASSWORD 'userpassword';

接下来,运行以下查询检查 PostgreSQL 上可用用户的列表。

\du

如果成功,你应该会看到带有 Create DB 权限属性的新角色 hellorails。

如何在 AlmaLinux 9 上安装 Ruby on Rails 并配合 PostgreSQL

按 Ctrl+d 或输入 \q 退出 PostgreSQL。

创建第一个 Rails 项目

在本节中,你将学习如何使用 rails 命令创建第一个 Ruby on Rails 项目。

创建一个新项目目录 /var/www,并将当前工作目录切换到其中。

mkdir -p /var/www; cd /var/www

现在,使用以下 rails 命令创建一个名为 hellorails、数据库为 PostgreSQL 的新 Rails 项目。这同时会生成新的项目目录 hellorails。

rails new hellorails --database=postgresql

如何在 AlmaLinux 9 上安装 Ruby on Rails 并配合 PostgreSQL

进入 hellorails 目录,并使用 nano 或你偏好的编辑器打开数据库配置文件 config/database.yml。

cd hellorails
nano config/database.yml

按如下方式修改 development、test 和 production 的默认数据库配置,并确保为你的 PostgreSQL 信息使用正确的用户和密码。

development:
  <<: *default
  database: hellorails_development
  username: hellorails
  password: userpassword
  host: localhost
  port: 5432
test:
  <<: *default
  database: hellorails_test
  user: hellorails
  password: userpassword
  host: localhost
  port: 5432
production:
  <<: *default
  database: hellorails_production
  username: hellorails
  password: userpassword
  host: localhost
  port: 5432

完成后保存文件并退出编辑器。

接下来,运行以下命令迁移数据库。这将为你的 Rails 项目生成新的数据库。

rails db:setup
rails db:migrate

如何在 AlmaLinux 9 上安装 Ruby on Rails 并配合 PostgreSQL

数据库迁移完成后,运行以下命令启动你的 Rails 项目,并确保更改服务器 IP 地址。这将在特定 IP 地址 192.168.10.15 上以默认端口 3000 启动你的 Rails 项目。

rails server --binding=192.168.10.15

如何在 AlmaLinux 9 上安装 Ruby on Rails 并配合 PostgreSQL

打开你的 Web 浏览器,访问服务器 IP 地址加上端口 3000(即:http://192.168.10.15:3000/)。如果 Rails 安装成功,你应该会看到 Rails 项目的默认 index.html 页面。

如何在 AlmaLinux 9 上安装 Ruby on Rails 并配合 PostgreSQL

结论

恭喜!你现已在 AlmaLinux 9 机器上安装了配合 PostgreSQL 的 Ruby on Rails。你还学习了如何创建 PostgreSQL 角色以及创建第一个 Rails 项目。

随着 Rails 安装到你的系统,你可以继续使用 Rails 开发应用;对于入门包,你可能会对 Ruby Scaffolding 感兴趣,以了解 Rails 中的 MVC(Model View Controller)。