1 其他設定環境的方法
如果您不想在本機上設定 Rails 進行開發,可以使用 Codespaces、VS Code Remote Plugin 或 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 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.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
設定完所有內容後,請閱讀如何開始貢獻。