v7.1.3.2
更多資訊請至 rubyonrails.org: 更多 Ruby on Rails

安裝 Rails 核心開發相依關係

本指南介紹如何設定 Ruby on 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.1.1 潛在問題

本節詳細說明您在 macOS 上使用原生擴充功能時可能會遇到的某些潛在問題,特別是在本地開發中捆綁 mysql2 gem 時。此文件可能會變更,且 Apple 在 Rails 上對開發人員環境進行變更時,可能會不正確。

要在 macOS 上編譯 mysql2 gem,您需要以下項目

  1. 已安裝 [email protected](不是 openssl@3
  2. 使用 [email protected] 編譯 Ruby
  3. 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

# 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 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

或透過 port 安裝所有內容(這些套件位於 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 安裝的,它預設會與 Ruby 一起提供。

若要安裝 Rails 的 Gemfile,請執行

$ bundle install

如果您不需要執行 Active Record 測試,您可以執行

$ bundle install --without db

2.7 貢獻 Rails

設定好所有內容後,請閱讀如何開始 貢獻

回饋

我們鼓勵您協助提升本指南的品質。

如果您發現任何錯字或事實錯誤,請務必貢獻。若要開始,您可以閱讀我們的 文件貢獻 部分。

您也可能會發現不完整的內容或未更新的內容。請務必為 main 新增任何遺漏的文件。請務必先查看 Edge Guides,以驗證問題是否已在 main 分支中修正。查看 Ruby on Rails 指南準則 以了解風格和慣例。

如果您發現需要修正的地方,但無法自行修補,請 開啟問題

最後,歡迎在 官方 Ruby on Rails 論壇 討論任何與 Ruby on Rails 文件相關的事項。