edge
更多信息请访问 rubyonrails.org: 更多 Ruby on Rails

安装Rails核心开发依赖项

本指南介绍如何为Ruby on Rails核心开发设置环境。

阅读本指南后,您将了解:

1 其他设置环境的方法

如果您不想在本地机器上设置Rails进行开发,您可以使用Codespaces、VS Code远程插件或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.1.1 潜在问题

本节详细介绍了您在macOS上使用本地开发时可能遇到的一些潜在问题,特别是在捆绑mysql2 gem时的本机扩展。此文档可能会随着Apple对Rails开发环境进行更改而发生变化,并且可能不准确。

为了在macOS上编译mysql2 gem,您需要以下内容:

  1. 安装[email protected](而不是openssl@3
  2. 使用[email protected]编译的Ruby
  3. 在bundle配置中为mysql2设置编译器标志。

如果同时安装了[email protected]openssl@3,则需要告诉Ruby使用[email protected],以便Rails可以捆绑mysql2

在您的.bash_profile中设置PATHRUBY_CONFIGURE_OPTS以指向[email protected]

export PATH="/usr/local/opt/[email protected]/bin:$PATH"
export RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix [email protected])"

在您的~/.bundle/config中为mysql2设置以下内容。确保删除任何其他BUNDLE_BUILD__MYSQL2的条目:

BUNDLE_BUILD__MYSQL2: "--with-ldflags=-L/usr/local/opt/[email protected]/lib --with-cppflags=-L/usr/local/opt/[email protected]/include"

通过在安装Ruby和捆绑Rails之前设置这些标志,您应该能够使您的本地macOS开发环境正常工作。

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

# 安装Yarn
# 如果您没有安装Node.js,请使用此命令
$ curl --fail --silent --show-error --location https://deb.nodesource.com/setup_18.x | sudo -E bash -
$ sudo apt-get install -y nodejs
# 安装Node.js后,安装yarn npm包
$ 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

# 安装Yarn
# 如果您没有安装Node.js,请使用此命令
$ curl --silent --location https://rpm.nodesource.com/setup_18.x | sudo bash -
$ sudo dnf install -y nodejs
# 安装yarn npm包
$ 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 poppler
$ 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依赖项

Gems是使用Ruby默认提供的Bundler安装的。

要安装Rails的Gemfile,请运行以下命令:

$ bundle install

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

$ bundle install --without db

2.7 贡献到Rails

在设置好一切之后,阅读如何开始贡献

反馈

欢迎您帮助改进本指南的质量。

如果您发现任何拼写错误或事实错误,请贡献您的意见。 要开始,请阅读我们的 文档贡献 部分。

您还可能会发现不完整的内容或过时的内容。 请为主要内容添加任何缺失的文档。请先检查 Edge 指南,以验证问题是否已经修复或尚未修复。 请参阅 Ruby on Rails 指南准则 以了解样式和规范。

如果您发现需要修复但无法自行修复的问题,请 提交问题

最后但同样重要的是,欢迎您在 官方 Ruby on Rails 论坛 上讨论有关 Ruby on Rails 文档的任何问题。