数日前にRubyにRailsをインストールし、コンソールで新しいプロジェクトを作成するたびにこのメッセージが表示されました。
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for Ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, Java. To add those platforms to the bundle, run `bundle lock --add-platform mingw, mswin, x64_mingw, jruby`.
しかし、次のようにインストールしようとすると:
bundle lock --add-platform mingw
私はこのメッセージを受け取りました:
Could not locate Gemfile
このメッセージについて私が何をしているのか、皆さんご存知ですか?
Mac osx El capitanでも同じ問題がありましたが、これが解決方法です。まず、これはこのコマンドを実行した後に表示されるエラーメッセージです
$ Rails new my-app -d mysql
依存関係tzinfo-data(> = 0)は、Bundlerがインストールするプラットフォームのいずれでも使用されません。 BundlerはRubyにインストールしていますが、依存関係はx86-mingw32、x86-mswin32、x64-mingw32、Javaのみに当てはまります。これらのプラットフォームをバンドルに追加するには、bundle lock --add-platform mingw, mswin, x64_mingw, jruby
を実行します。 -注:my-appディレクトリ(私のアプリのルート)をcdする必要があるまで、アプリをインストールするアプリケーションフォルダにいる間にコマンドを実行しようとしました-作成しているアプリのルートディレクトリにcdする拳-バンドルlock --add-platform mingw、mswin、x64_mingw、jruby-欠落している依存関係をインストールします。 -私の場合、このバンドルロックのみを行いました--add-platform jruby-そして、それはトリックを行うべき魅力的な試みのように機能しました。
このgemは、Ubuntu(または任意のUnixベースのシステム)で実行されるアプリには不要であり、RailsアプリはWindowsマシンで実行されています。
宝石の著者 :
メッセージを削除する場合は、次のいずれかを実行できます。
- Gemfileのgem 'tzinfo-data'行からプラットフォームオプションを削除します(そしてバンドル更新を実行します)。これにより、tzinfoは、システムタイムゾーンデータを使用する代わりに、すべてのプラットフォームでtzinfo-dataをデータソースとして使用します。
- Gemfileからgem 'tzinfo-data'行を削除します。これにより、tzinfoは常にシステムタイムゾーンデータを使用しようとします。 Windowsでアプリを実行しようとすると、TZInfo :: DataSourceNotFound例外が発生します。
- バンドルロック--add-platform mingw、mswin、x64_mingw、jrubyを実行して、Bundlerがバンドルに含めるプラットフォームのリストにmingw、mswin、x64_mingw、およびjrubyを追加します。
プロジェクトディレクトリにいないため、Could not locate Gemfile
メッセージが表示されます。 cd
コマンドを実行する前に、プロジェクトディレクトリにbundle
します。
cd [path/to/your/Rails/project]
bundle lock --add-platform mingw