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.yml 或 activerecord/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 贡献代码
设置好所有内容后,阅读如何开始贡献。