環境
- Rails 6.0.3
- ruby 2.6.6
- AWS
- EC2
- nginx
- Capistrano
内容
RailsアプリをAWSへデプロイする際に、特定のgemがあることで、CMake Error となり、デプロイに失敗したときのメモです。
今回の場合、特定のgemとはqiita-markdownになります。
説明
下記コマンドでデプロイを実施。
$ bundle exec cap production deploy
その後途中まで順調に進みますが、bundler:install の部分でエラーがはかれ、デプロイに失敗しました。
エラー文が長いので割愛しますが、原因に直結する部分だけ載せます。
----------- 略 -----------
bundler:install
----------- 略 -----------
01 Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
----------- 略 -----------
01 CMake Error at CMakeLists.txt:15 (CMAKE_MINIMUM_REQUIRED):
01 CMake 3.5.1 or higher is required. You are running version 2.8.12.2
----------- 略 -----------
In Gemfile:
qiita-markdown was resolved to 0.27.0, which depends on
github-linguist was resolved to 4.8.18, which depends on
rugged
エラー文を見る限り、CMakeのバージョンが古いことが直接的な原因でした。
特別なgem(今回の場合はqiita-markdown)が入っている場合は先に依存関係のあるパッケージをEC2にインストールしておく必要があります。
こちらの記事を参考に、CMakeをアップデートすることにしました。
また、記事投稿時点でのCMakeの最新バージョンが3.19.0だったので、このバージョンでアップデートすることにしました。
→ CMakeの最新バージョンはCMakeのホームページで確認できます。
下記が一連のコマンドの流れです。
$ sudo yum remove cmake
$ wget https://cmake.org/files/v3.19/cmake-3.19.0.tar.gz
$ tar xvzf cmake-3.19.0.tar.gz
$ cd cmake-3.19.0
$ ./bootstrap (少し時間がかかります)
$ make (結構時間がかかります)
$ sudo make install
上記が完了後、再度下記コマンドでデプロイを実施。
$ bundle exec cap production deploy
これで無事にデプロイが完了しました!