Rails 製の ECサイト フレームワークである Solidus のインストール方法

Solidus

これです。Spreeの後継ですね。

インストール方法

できるだけ最小限に、できるだけ全ての環境に当てはまるようにインストール方法を書いていきます。基本的には公式の説明のとおりですので、そちらを一緒に見ながら進めるとよいと思います。

1. Imagemagick をインストールする

ファイルアップロード用のgemであるPaperclipで用いるためにImagemagickが必要とのことですので、インストールします*1

Imagemagickのインストールは、Solidusをインストールするだけという目的ならば必須ということではないかもしれません*2

とはいえ、どう考えても実質的に必須なので入れておきましょう。

2. Solidus 用のディレクトリを作って bundle init する

適当な場所にSolidus用のディレクトリを作ってその中でbundle initします。

$ mkdir my_solidus
$ cd my_solidus
$ bundle init

3. 生成された Gemfile を編集する

「2.」のbundle initの実行によりGemfileが生成されましたので、それを以下のように編集(2行を追記)します。

# frozen_string_literal: true
source "https://rubygems.org"

# gem "rails"

gem 'solidus'
gem 'solidus_auth_devise'

ここで注意するのは、railsはインストールしないということです。solidusのインストールにより、適切なバージョンの Rails が入るからです。

4. gem をインストール

「3.」で編集したGemfileに基づいて gemファイル をインストールしましょう。インストールする場所についてはここではvendor/bundleを指定していますが、各自の環境によって異なると思います。

$ bundle install --path vendor/bundle

5. rails new する

ここはドキュメントに書かれていないのですが、rails newしなければいけません。そもそもアプリケーションが存在していないからです。

以下の記述ではカレントディレクトリにアプリケーションを作成していますが*3、各自の環境により異なると思います。

$ bundle exec rails new .
Overwrite /var/www/rails/solidus/Gemfile? (enter "h" for help) [Ynaqdh] #=> Y

6. Gemfile に改めて Solidus の行を書き込む

「5.」のrails newにより生成されたGemfileには、「3.」で追記した2行が記載されていません*4。なので、生成されたGemfileの末尾に改めて、2行を追記します。

(略)
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

gem 'solidus'
gem 'solidus_auth_devise'

7. さらに改めて bundle install をする

これは場合によっては不要ですが、そういう場合でも実行して問題はないので手順として書いておきます。「4.」と同じようにして gem をインストールします。場合によっては $ bundle update が必要になるかもしれません。

$ bundle install --path vendor/bundle

8. アプリケーションに必要なものをインストール

ここまでくれば残りのレールに乗るのは簡単です。ドキュメントにあるように以下のコマンドを次々と実行していきましょう(少し時間がかかります)。

$ bundle exec rails generate spree:install
$ bundle exec rails generate solidus:auth:install
$ bundle exec rails railties:install:migrations
$ bundle exec rails db:migrate

Rails 5 ですので、公式ドキュメントにおいてrakeと記載されている部分はrailsに変更しています。また、rails gという書き方が(完全に個人的に)好きではないので、rails generateとしています。

途中、管理者アカウントの登録(変更)が求められることもあります。

また bundle exec rails generate が進まない場合は Gemfilespring を無効にして bundle install し直しましょう。

9. You are on Solidus!

サーバを起動しましょう。起動できたらトップページにアクセスし、Solidusの画面が出ればインストール成功です!

補足

  • 「1.」~「6.」の順序は守らないとうまくいきません*5
  • 機能やドキュメントを調べるときはSpreeのものも含めて調べるとよいかもしれません
  • Solidus特有のエラーではなく、RailsRuby一般に基づくエラーが出た場合*6は各自で対処してみてください
  • デフォルトユーザ名は admin@example.com、デフォルトパスワードは test123 です

さらに補足(2018/08/27)

Rails 5.2.1 ですと bundle exec rails generate solidus:auth:install のところで ArgumentError: wrong number of arguments (given 3, expected 2) が出るかと思います。

github.com

Rails のバージョンを下げましょう。「5.」で rails new する前に bundle exec rails -v をして 5.2.0 なら OK です。

*1:方法は割愛

*2:私の環境ではすでに入っていたので分からない

*3:そのため、Gemfile の上書き確認のメッセージが出る

*4:これが結構気づきにくい

*5:Rails のバージョンの制限などがあるため

*6:spring 問題とか

Powered by はてなブログ