環境
- Rails 6.0.3
- ruby 2.6.6
- AWS
- EC2
- nginx
- Capistrano
内容
Rails
アプリをAWS
へデプロイする際に、特定のgemがあることで、CMake Error となり、デプロイに失敗したときのメモです。
今回の場合、特定のgemとはqiita-markdown
になります。
説明
下記コマンドでデプロイを実施。
ローカル環境のターミナル(Railsアプリのルートディレクトリ)
$ 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
上記が完了後、再度下記コマンドでデプロイを実施。
ローカル環境のターミナル(Railsアプリのルートディレクトリ)
$ bundle exec cap production deploy
これで無事にデプロイが完了しました!