はじめに
こんにちは! アメリカで独学でソフトウェアエンジニアを目指している者です。
現在は『Rails Tutorial』の8章まで学習を終え、2周目に取り組んでいます。
1周目と比べると基本的な内容は少しずつ理解が進んできましたが、まだ知らないコードや知識があり、日々新しい発見があります。
本記事では、その中でも特に「bundle lock --add-platform
コマンド」について簡単にまとめました。
Railsを始めたばかりの方や、後々自分が見返すときの備忘録的な内容ですので、参考にしていただければ幸いです。
bundle lock--add-platformコマンドとは
Rails Tutorialでは、bundle lock --add-platform x86_64-linux
と記載されています。
これは特定のプラットフォーム(ここでは x86_64-linux)を Gemfile.lock に追加するためのコマンドです。
たとえば、次のようなケースを考えてみましょう。
- 開発環境 → Mac
- 本番環境 → Linux
このように、開発環境と本番環境のプラットフォームが異なると、Macでは正常に動作していても Linux ではエラーが発生する場合があります。
これは、一部の Gem が Linux 向けに作られていることが原因で、Mac 用の情報のみだと正常にインストールされない可能性があるためです。
そこで bundle lock --add-platform x86_64-linux
を実行すると、Linux 用の Gem も Gemfile.lock
に含まれるようになります。
その結果、本番環境で必要な Gem が欠けていることによるトラブルを未然に防ぐことができます。
Rails は環境依存が大きいフレームワークとも言われているため、このコマンドを導入しておくのは本番環境を想定するうえで非常に重要です。
なお、『Rails Tutorial』でも同様の説明があり、開発初期の段階で実行しておくことが推奨されています。
まとめ
bundle lock --add-platform
コマンドは、開発環境と本番環境が異なる場合に生じる Gem の依存関係トラブルを防ぐために非常に便利です。
特に Rails のように環境依存が比較的大きいフレームワークでは、早めのタイミングで実行しておくことをおすすめします。
Railsは学ぶことが多くまた、学習中に面白いなと思った内容があれば記事にしたいと思います