1 簡單的方法
讓開發環境準備好進行駭客攻擊的最簡單和推薦的方法是使用 Rails 開發箱。
2 艱難的道路
如果您無法使用 Rails 開發盒,請參閱以下步驟手動 在 Rails 核心開發上構建 Ruby 的開發箱。
2.1 安裝 Git
Rails 上的 Ruby 使用 Git 進行原始碼控制。 Git 主頁 有安裝說明。網路上有多種資源可以幫助您熟悉 Git:
- 試用 Git 課程 是一門互動式課程,將教您基礎知識。
- 官方文件 非常全面,還包含一些有關 Git 基礎知識的影片。
- Everyday Git 會教你足夠的 Git 知識。
- GitHub 提供各種 Git 資源的連結。
- Pro Git 是一本關於 Git 的完整書籍,具有知識共享許可。
2.2 在 Rails 儲存庫上克隆 Ruby
在 Rails 原始碼上導航到您想要 Ruby 的資料夾(它將建立自己的 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、FFmpeg、muPDF 和 macOS 還有 XQuartz 和 Poppler。
- Active Support 依賴於 memcached 和 Redis
- Railties 依賴於 JavaScript 執行時環境,例如具有 [Node.js] 已安裝 (https://nodejs.org/)。
安裝您需要的所有服務以正確測試您將成為的完整 gem 進行更改。
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
# 安裝 Yarn
$ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
$ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
$ sudo apt-get install 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
# 安裝 Yarn
# 如果您沒有安裝 Node.js,請使用此命令
$ curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
# 如果你安裝了 Node.js,請改用這個命令
$ curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
$ sudo dnf install 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
$ 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
要安裝所有執行:
$ pkg install sqlite3 mysql80-client mysql80-server postgresql11-client postgresql11-server memcached imagemagick ffmpeg mupdf yarn libxml2
# portmaster 資料庫/redis
或者透過埠安裝所有東西(這些包位於
databases
資料夾)。
如果你在安裝 MySQL 的過程中遇到問題,請看 MySQL 文件。
2.4 資料庫設定
設定資料庫引擎需要幾個額外的步驟 執行 Active Record 測試所需。
為了能夠針對 MySQL 執行測試套件,您需要建立一個名為 rails
的使用者,該使用者具有測試資料庫的許可權:
$ mysql -uroot -p
mysql> CREATE USER 'rails'@'localhost';
mysql> GRANT ALL PRIVILEGES ON activerecord_unittest.*
to 'rails'@'localhost';
mysql> GRANT ALL PRIVILEGES ON activerecord_unittest2.*
to 'rails'@'localhost';
mysql> GRANT ALL PRIVILEGES ON inexistent_activerecord_unittest.*
to 'rails'@'localhost';
PostgreSQL 的身份驗證工作方式不同。設定開發環境 使用您的開發帳戶,在 Linux 或 BSD 上,您只需要執行:
$ sudo -u postgres createuser --superuser $USER
對於 macOS:
$ createuser --superuser $USER
然後,您需要使用以下命令為 MySQL 和 PostgreSQL 建立測試資料庫:
$ cd activerecord
$ bundle exec rake db:create
在 PostgreSQL 9.1.x 或更早版本中啟用 HStore 擴充套件時,您將看到以下警告(或本地化警告):“WARNING: => is deprecated as an operator”。
您還可以分別為每個資料庫引擎建立測試資料庫:
$ 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 安裝 Bundler gem
獲取最新版本的 Bundler
$ gem install bundler
$ gem update bundler
並執行:
$ bundle install
或者:
$ bundle install --without db
如果您不需要執行 Active Record 測試。
2.7 貢獻於 Rails
設定完所有內容後,請閱讀如何開始 貢獻。
回饋
我們鼓勵您幫助提高本指南的品質。
如果您發現任何拼寫錯誤或資訊錯誤,請提供回饋。 要開始回饋,您可以閱讀我們的 回饋 部分。
您還可能會發現不完整的內容或不是最新的內容。 請務必為 main 新增任何遺漏的文件。假設是 非穩定版指南(edge guides) 請先驗證問題是否已經在主分支上解決。 請前往 Ruby on Rails 指南寫作準則 查看寫作風格和慣例。
如果由於某種原因您發現要修復的內容但無法自行修補,請您 提出 issue。
關於 Ruby on Rails 的任何類型的討論歡迎提供任何文件至 rubyonrails-docs 討論區。