問題タブ [gemspecs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - Docker コンテナー内でビルドするときの Bundler GemspecError
人々はこのエラーを報告しており、キャッシュされた宝石を保持するフォルダーを削除することで解決しました。私は Docker コンテナー内で作業しているので、これは私にとって有益なアドバイスとは思えませんでした。確かに、キャッシュ フォルダーは空ではありませんでしたが、2 つのアイテムが含まれていました (それらは からのものだと思いますgem install bundle
)。
これは私の(欠陥のある)dockerfileです
RUN bundle install
に置き換えることでエラーを修正できました
このローカルディレクトリを犠牲にして、Jekylltmp
の除外リストに追加する必要がありました。_config.yml
実際に何が起こっていたのかを知りたいです。root 以外のユーザーの使い方に問題があると思われます。
注:bundle install --no-cache
役に立ちませんでした。
rubygems - ネイティブ拡張を持つ gem の一貫した Gemfile.lock を維持する
私は、ネイティブ実行可能ファイルを使用して gem を開発するエンジニアのチームで働いています。契約上の理由から、新しい環境にデプロイするときは、すべての依存関係でテストしたものとまったく同じバージョンを使用することが重要です。はGemfile
、再帰バージョンではなく、一次依存バージョンのみを維持できます。このため、歴史的にロックファイルを github にチェックインしたままにしてきましたが、これにより 1.14 リリース以降、バンドラーをアップグレードできなくなりました。問題は、OSX と Linux の両方の開発マシンがあり、1.14 以降、gem リポジトリのロックファイルの先頭が次から変更されたことです。
に
開発者が OSX でレポをプルして実行bundle install
すると、ロックファイルの内容が変更されるため、これは問題です。次に、Linux 開発者が同じことをすると、ロックファイルの git 履歴に大量の誤った変更が作成され、すべてが再び変更されます。
bundle lock --add-platform x86_64-linux
andを実行してみbundle lock --add-platform x86_64-darwin
ました。これにより、バンドラーが異なるプラットフォームの 2 つのエントリを保持するようになることを期待して、それらの間でフリップフロップを実行するのではありません。ロックファイルのセクションにあるいくつかの gem では重複したエントリが生成されましたが、セクション内のエントリでは生成されませんでした。GEM
PATH\n
specs:
現在、Gemfile には次の行が含まれています。
ロードしますengine.gemspec
。このファイルには以下が含まれます。
これが問題だと思います。Gemfile に gemspec を2 回含め、グローバル変数を使用して使用するプラットフォームを指定しようとしましたが、バンドラーはそれを最初にロードするだけで、2 回目の試行をスキップします。
プラットフォーム固有の両方の gem バージョンを同じロックファイルに保持できるようにするソリューションを知っている人はいますか?
または、プラットフォーム名をgemバージョンに追加するバンドラーの新しい動作をオフにする方法はありますか? 以前は、ロックファイルが単純に「21.2.13」を指定し、gemserver に各バージョンの 2 つのコピー (2 つのプラットフォーム用にビルドされたバイナリを含む) が含まれていた場合、バンドラーは現在のマシンの正しいバージョンを解決する問題をまったく抱えていなかったので、これはどうやら余分な情報を保存するロックファイルのように。どうにかしてやめるように言うことはできますか?
ios - Bundler: Gem の作成 - デフォルトの連絡先情報ソース?
このガイドに従って、最初の Ruby Gem を作成しました。
http://bundler.io/v1.12/guides/creating_gem.html
すべてが期待どおりに機能しましたが、1 つ質問があります。Bundler が私の個人的な連絡先情報をどこか (私は Mac を使用しています) から自動的に取得し、それを使用して gem を構築していることに気付きました。この情報を含むファイルの例:
より多くの gem を作成する際に、デフォルトで個人の連絡先情報 (個人の電子メール アドレスなど) を使用するようにしたくありません。デフォルトで会社の情報を使用したい。今後すべての新しい gem ビルドで使用するために、このデフォルト情報を設定できるデータ ファイルがどこかにあると推測/期待していますか? それとも、これらのデフォルト値を設定する他の方法ですか???
足場の構築後にこの情報を編集できることはわかっていますが、可能な限り自動化したいと考えています。