本ガイドでは、Ruby on Rails自体の開発環境を構築する方法について解説します。
このガイドの内容:
Rails development boxにある準備済みのdevelopment環境を入手するのがおすすめです。
Rails development boxを利用できない事情がある場合は、この先をお読みください。Ruby on Railsコア開発で必要なdevelopment boxを手動でビルドする手順を解説します。
Ruby on Railsではソースコード管理にGitを使っています。インストール方法についてはGitホームページに記載されています。Gitを学べる以下のような多数の資料があります(特記ないものは英語)。
Ruby on Railsのソースコードを置きたいディレクトリ(rails
ディレクトリが作成される場所)で以下を実行します。
$ git clone https://github.com/rails/rails.git $ cd rails
Railsのテストの中には追加のツールに依存しているものもあります。そうしたテストを実行するには、これらのツールを手動でインストールしておく必要があります。
以下のリストは、Railsのgemごとに必要な追加の依存関係です。
機能を変更したいgemを正しくテストするには、そのgemが依存するサービスをすべてインストールする必要があります。
Redisのドキュメントでは、パッケージマネージャによるRedisインストールは推奨されていません(パッケージマネージャーが古いため)。Redisをソースからインストールしてサーバーを立ち上げる方法については、Redisドキュメントに詳しく記載されています。
Active Recordのテストは、少なくともMySQLとPostgreSQLとSQLite3で必ずパスしなければなりません。アダプタごとに微妙な違いがあるので、特定のアダプタではテストがパスしたパッチの多くが却下されています。
以下は、OSごとの追加ツールのインストール方法です。
macOSの場合は、必要な追加ツールをHomebrewですべてインストールできます。
ツールをすべてインストールするには、クローンしたRailsディレクトリで以下を実行します。
$ brew bundle
インストールしたサービスを起動する必要もあります。サービスをすべて起動するには以下を実行します。
$ brew services list
サービスを個別に起動するには、以下のように実行します。
$ brew services start mysql
上のコマンドのmysql
は、起動したいサービス名に置き換えます。
以下を実行すると、すべてのツールをインストールできます。
$ 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 # 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
以下を実行すると、すべてのツールをインストールできます。
$ 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
以下を実行すると、すべてのツールをインストールできます。
$ 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
MySQLはArch Linuxではサポートされなくなったので、代わりにMariaDBをインストールする必要があります(Arch Linuxのお知らせを参照)。
以下を実行すると、すべてのツールをインストールできます。
$ pkg install sqlite3 mysql80-client mysql80-server postgresql11-client postgresql11-server memcached imagemagick ffmpeg mupdf yarn libxml2 # portmaster databases/redis
ports
ですべてのツールをインストールすることも可能です(パッケージはdatabases
フォルダに保存されます)。
MySQLのインストールで発生する問題については、MySQLドキュメントを参照してください。
Active Recordのテストを実行するのに必要なデータベースエンジンごとに、追加の設定手順がいくつか必要になります。
MySQLでテストスイートを実行可能にするには、testデータベースに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で、開発用アカウントをdevelopment環境にセットアップするには、以下を実行するだけで済みます。
$ sudo -u postgres createuser --superuser $USER
macOSの場合は以下です。
$ createuser --superuser $USER
続いて、MySQLとPostgreSQLそれぞれについて以下を実行し、testデータベースを追加する必要があります。
$ cd activerecord $ bundle exec rake db:create
PostgreSQL 9.1.x以前でHStore拡張を有効にすると、"WARNING: => is deprecated as an operator"という警告が表示されます(メッセージはローカライズされる可能性もあります)。
以下を実行すると、データベースエンジンごとにtestデータベースを作成できます。
$ cd activerecord $ bundle exec rake db:mysql:build $ bundle exec rake db:postgresql:build
データベースを削除するには以下を実行します。
$ cd activerecord $ bundle exec rake db:drop
上のrakeタスクでtestデータベースを作成すると、文字セットとコレーション(照合順序)が正しく設定されます。
他のデータベースを使っている場合は、activerecord/test/config.yml
またはactiverecord/test/config.example.yml
でデフォルトの接続情報があるかどうかをチェックしてください。別のcredential(認証情報)が必要な場合はactiverecord/test/config.yml
を変更することでできますが、この変更はRailsの更新に含めるべきではありません。
Yarnをインストールした場合は、以下を実行してJavaScriptの依存関係をインストールする必要があります。
$ yarn install
Bundlerの最新バージョンをインストールします。
$ gem install bundler $ gem update bundler
次に以下を実行します。
$ bundle install
または、Active Recordのテストを実行する必要がない場合は、以下を実行します。
$ bundle install --without db
設定がすべて完了したら、ガイドのRuby on Rails に貢献するをお読みください。
Railsガイドは GitHub の yasslab/railsguides.jp で管理・公開されております。本ガイドを読んで気になる文章や間違ったコードを見かけたら、気軽に Pull Request を出して頂けると嬉しいです。Pull Request の送り方については GitHub の README をご参照ください。
原著における間違いを見つけたら『Rails のドキュメントに貢献する』を参考にしながらぜひ Rails コミュニティに貢献してみてください 🛠💨✨
本ガイドの品質向上に向けて、皆さまのご協力が得られれば嬉しいです。
Railsガイド運営チーム (@RailsGuidesJP)
Railsガイドは下記の協賛企業から継続的な支援を受けています。支援・協賛にご興味あれば協賛プランからお問い合わせいただけると嬉しいです。