0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Rails】RailsアプリをAWSへデプロイする際に特定のgemがあることでCMake Errorになりデプロイできない場合

Last updated at Posted at 2020-11-22

環境

  • 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

これで無事にデプロイが完了しました!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?