本页内容
- 环境要求
- 安装 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

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

之后,运行以下命令初始化 PostgreSQL 服务器配置。
sudo postgresql-15-setup initdb
然后使用以下 systemctl 命令启动并启用 PostgreSQL 服务。
sudo systemctl start postgresql-15
sudo systemctl enable postgresql-15

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

安装 Ruby
默认情况下,AlmaLinux 的 appstream 仓库提供适用于 Ruby on Rails 的 Ruby 3.x。在本节中,你将通过 DNF 包管理器安装 Ruby 3.0。
运行以下命令查看 appstream 仓库中可用的 Ruby 版本列表。
sudo dnf module list ruby
以下输出确认 AlmaLinux 仓库同样提供 Ruby 3.1。

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

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

安装 Node.js 和 Yarn 包管理器
在安装 Rails 之前,你必须安装 Node.js 和 Yarn 包管理器。这两个包将被 Rails 用于编译 Rails 项目中的静态文件。
运行以下 dnf 命令安装 Node.js 和 NPM 包。出现提示时,输入 y 并按 ENTER 继续。
sudo dnf install nodejs npm -y

接下来,运行以下 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

安装开发工具
在此步骤中,你将安装 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

安装完成后,运行以下命令定位 Rails 二进制文件并验证 Rails 版本。
which rails
rails --version
在以下输出中,你应该会看到 Rails 可执行文件位于 /usr/local/bin/rails,且当前安装的 Rails 版本为 7.0。

为 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。

按 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

进入 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

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

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

结论
恭喜!你现已在 AlmaLinux 9 机器上安装了配合 PostgreSQL 的 Ruby on Rails。你还学习了如何创建 PostgreSQL 角色以及创建第一个 Rails 项目。
随着 Rails 安装到你的系统,你可以继续使用 Rails 开发应用;对于入门包,你可能会对 Ruby Scaffolding 感兴趣,以了解 Rails 中的 MVC(Model View Controller)。