更多内容请访问 rubyonrails.org:

安装 Rails 核心开发依赖项

本指南涵盖了如何为 Ruby on Rails 核心开发设置环境。

阅读本指南后,您将了解

  • 如何为 Rails 开发设置您的机器

1. 设置环境的其他方式

如果您不想在本地机器上设置 Rails 进行开发,您可以使用 Codespaces、VS Code Remote 插件或 rails-dev-box。在此处了解有关这些选项的更多信息:这里

2. 本地开发

如果您想在本地机器上开发 Ruby on Rails,请参阅以下步骤。

2.1. 安装 Git

Ruby on Rails 使用 Git 进行源代码控制。Git 主页上有安装说明。网上有各种资源可以帮助您熟悉 Git。

2.2. 克隆 Ruby on Rails 仓库

导航到您想下载 Ruby on Rails 源代码的文件夹(它将创建自己的 rails 子目录)并运行

$ git clone https://github.com/rails/rails.git
$ cd rails

2.3. 安装额外的工具和服务

一些 Rails 测试依赖于您在运行这些特定测试之前需要安装的额外工具。

以下是每个 gem 的额外依赖项列表

  • Action Cable 依赖于 Redis
  • Active Record 依赖于 SQLite3、MySQL 和 PostgreSQL
  • Active Storage 依赖于 Yarn(此外 Yarn 依赖于 Node.js)、ImageMagick、libvips、FFmpeg、muPDF、Poppler,在 macOS 上还依赖 XQuartz。
  • Active Support 依赖于 memcached 和 Redis
  • Railties 依赖于 JavaScript 运行时环境,例如安装了 Node.js

安装您需要的所有服务,以便正确测试您将要修改的完整 gem。macOS、Ubuntu、Fedora/CentOS、Arch Linux 和 FreeBSD 上如何安装这些服务的详细信息如下。

Redis 的文档不鼓励使用包管理器进行安装,因为这些通常已过时。从源代码安装并启动服务器非常简单,并在 Redis 文档中详细说明。

Active Record 测试必须通过至少 MySQL、PostgreSQL 和 SQLite3。如果仅针对单个适配器进行测试,您的补丁将被拒绝,除非更改和测试是适配器特定的。

下面您可以找到关于如何为不同操作系统安装所有额外工具的说明。

2.3.1. macOS

在 macOS 上,您可以使用 Homebrew 安装所有额外的工具。

要安装所有工具,请运行

$ brew bundle

您还需要启动每个已安装的服务。要列出所有可用的服务,请运行

$ brew services list

然后您可以像这样逐个启动每个服务

$ brew services start mysql

mysql 替换为您要启动的服务名称。

2.3.2. Ubuntu

要安装所有工具,请运行

$ sudo apt-get update
$ sudo apt-get install sqlite3 libsqlite3-dev mysql-server libmysqlclient-dev postgresql postgresql-client postgresql-contrib libpq-dev redis-server memcached imagemagick ffmpeg mupdf mupdf-tools libxml2-dev libvips42 poppler-utils libyaml-dev libffi-dev

# Install Yarn
# Use this command if you do not have Node.js installed
# ref: https://github.com/nodesource/distributions#installation-instructions
$ sudo mkdir -p /etc/apt/keyrings
$ curl --fail --silent --show-error --location https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
$ echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
$ sudo apt-get update
$ sudo apt-get install -y nodejs

# Once you have installed Node.js, install the yarn npm package
$ sudo npm install --global yarn

2.3.3. Fedora 或 CentOS

要安装所有工具,请运行

$ sudo dnf install sqlite-devel sqlite-libs mysql-server mysql-devel postgresql-server postgresql-devel redis memcached ImageMagick ffmpeg mupdf libxml2-devel vips poppler-utils

# Install Yarn
# Use this command if you do not have Node.js installed
# ref: https://github.com/nodesource/distributions#installation-instructions-1
$ sudo dnf install https://rpm.nodesource.com/pub_20/nodistro/repo/nodesource-release-nodistro-1.noarch.rpm -y
$ sudo dnf install nodejs -y --setopt=nodesource-nodejs.module_hotfixes=1

# Once you have installed Node.js, install the yarn npm package
$ sudo npm install --global yarn

2.3.4. Arch Linux

要安装所有工具,请运行

$ sudo pacman -S sqlite mariadb libmariadbclient mariadb-clients postgresql postgresql-libs redis memcached imagemagick ffmpeg mupdf mupdf-tools poppler yarn libxml2 libvips
$ sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
$ sudo systemctl start redis mariadb memcached

如果您正在运行 Arch Linux,MySQL 不再受支持,因此您需要改用 MariaDB(请参阅 此公告)。

2.3.5. FreeBSD

要安装所有工具,请运行

$ sudo pkg install sqlite3 mysql80-client mysql80-server postgresql11-client postgresql11-server memcached imagemagick6 ffmpeg mupdf yarn libxml2 vips poppler-utils
# portmaster databases/redis

或者通过 ports 安装所有内容(这些包位于 databases 文件夹下)。

如果您在安装 MySQL 期间遇到问题,请参阅 MySQL 文档

2.3.6. Debian

要安装所有依赖项,请运行

$ sudo apt-get install sqlite3 libsqlite3-dev default-mysql-server default-libmysqlclient-dev postgresql postgresql-client postgresql-contrib libpq-dev redis-server memcached imagemagick ffmpeg mupdf mupdf-tools libxml2-dev libvips42 poppler-utils

如果您正在运行 Debian,MariaDB 是默认的 MySQL 服务器,因此请注意可能存在差异。

2.4. 数据库配置

配置运行 Active Record 测试所需的数据库引擎需要几个额外的步骤。

PostgreSQL 的身份验证工作方式不同。要在 Linux 或 BSD 上使用您的开发帐户设置开发环境,您只需运行

$ sudo -u postgres createuser --superuser $USER

对于 macOS

$ createuser --superuser $USER

MySQL 将在创建数据库时创建用户。该任务假定您的用户是 root 且没有密码。

然后,您需要为 MySQL 和 PostgreSQL 创建测试数据库

$ cd activerecord
$ bundle exec rake db:create

您也可以分别为每个数据库引擎创建测试数据库

$ cd activerecord
$ bundle exec rake db:mysql:build
$ bundle exec rake db:postgresql:build

您可以使用以下命令删除数据库

$ cd activerecord
$ bundle exec rake db:drop

使用 Rake 任务创建测试数据库可确保它们具有正确的字符集和排序规则。

如果您使用其他数据库,请检查文件 activerecord/test/config.ymlactiverecord/test/config.example.yml 以获取默认连接信息。您可以编辑 activerecord/test/config.yml 以在您的机器上提供不同的凭据,但您不应将任何这些更改推送到 Rails。

2.5. 安装 JavaScript 依赖项

如果您安装了 Yarn,您将需要安装 JavaScript 依赖项

$ yarn install

2.6. 安装 Gem 依赖项

Gem 使用 Bundler 进行安装,Bundler 默认随 Ruby 一起提供。

要安装 Rails 的 Gemfile,请运行

$ bundle install

如果您不需要运行 Active Record 测试,您可以运行

$ bundle config set without db
$ bundle install

2.7. 为 Rails 贡献代码

设置好所有内容后,阅读如何开始贡献



回到顶部