私はいくつかのプライベート宝石を開発していますが、私はPATH/GEM_PATHやBundler/RVMインストールフローを正しく理解していないと思います。カスタム宝石を開発するときにBundlerのRakefileインストールタスクを使用してgemをインストールできない
私は2つの宝石を持つリポジトリを持っています(簡略化のためA & B)。私はthis bundler tutorialのガイドラインに従って、足場+を使って宝石を開発しました。
Bundlerプロジェクトのおかげで、rake build
、rake install
、rake install:local
、rake release
のようないくつかのRakefileタスクがあります。これらの宝石の私有の性質のため、私はそれらをRubyGemsにリリースすることはできません(私たちはRubygemsをホストしていません)。
私のマシンは、私が何をしたいのかルビーのバージョンを管理するためにRVMを使用し、バンドラーのバージョン1.15.1
されていますは理想的な私たちは、それぞれにcd
なり、プロジェクトを試して新しいマシン/開発者を想定すると、サブフォルダ(現在2、gem A、gem B)を実行してrake install
を実行した後、現在のユーザに対してシステム全体で利用可能な宝石を用意する必要があります。何が起こっている
:宝石が構築されていると正常に動作しますが、それらはAがサブフォルダAと宝石Bの内側にのみ使用可能です各宝石すなわち宝石は、サブフォルダB.
内部のみ利用可能であるのサブフォルダ内でのみ利用可能です私が試したこと:rake build/install/install:local
の後に、pkg
の下に新しい.gem
ファイルが生成されました。私は手動でgem install pkg/A.gem
、gem install --local pkg/A.gem
とgem install --local --user-install pkg/A.gem
を使って "コンパイル済み"ファイルをインストールしようとしましたが、成功しませんでした。 (there are plenty of SO questions/answers about this)
これはPATH変数と関係がありますが、私が前に言ったように、管理方法を完全には理解していません。これらのコマンドから次の結果が得られます。
# Our gem
> gem which A
/home/ubuntu/.rvm/gems/ruby-2.4.0/gems/A-0.1.8/lib/A.rb
# Pry, available globally
> gem which pry
/home/ubuntu/.rvm/gems/ruby-2.4.0/gems/pry-0.11.1/lib/pry.rb
私は紛失してしまいました。より良いプライベート宝石のインストールの流れの提案を聞くためにも開きます:)
gemをグローバルジェムセットにインストールするには、 'rvm @global do gem install --local pkg/A.gem' – DiegoSalazar
で修正してください。私は 'rvm @global install gem install pkg/A-0.1.8.gem'を実行し、' 'gem which A'は'/home/ubuntu/.rvm/rubies/ruby-2.4.0/bin/gem'を出力します。インストールされた宝石は引き続き各ディレクトリ内でのみ動作します。レポのルートディレクトリから次のように実行しようとしました。(成功せずに): 'rvm @global do gem install A/pkg/A-0.1.8.gem' – Fdo