Jawaban:
Ini bukan semata-mata jawaban untuk pertanyaan Anda tentang menginstal .gempaket, tetapi Anda dapat menentukan semua jenis lokasi berdasarkan permata-demi-permata dengan mengedit Gemfile Anda .
:pathatribut akan memasang permata dari jalur itu di mesin lokal Anda.gem "foreman", path: "/Users/pje/my_foreman_fork"
:gitatribut akan menginstal permata dari repositori git jarak jauh.gem "foreman", git: "git://github.com/pje/foreman.git"
# ...or at a specific SHA-1 ref
gem "foreman", git: "git://github.com/pje/foreman.git", ref: "bf648a070c"
# ...or branch
gem "foreman", git: "git://github.com/pje/foreman.git", branch: "jruby"
# ...or tag
gem "foreman", git: "git://github.com/pje/foreman.git", tag: "v0.45.0"
(Seperti @JHurrah disebutkan dalam komentarnya .)
gem "foreman", :git => "https://github.com/pje/foreman.git"
Tampaknya bundler tidak dapat menggunakan file .gem di luar kotak. Menunjuk jalur: ke direktori yang berisi file .gem tidak berfungsi. Beberapa orang menyarankan untuk menyiapkan server permata lokal (geminabox, stickler) untuk tujuan itu.
Namun, yang saya temukan jauh lebih sederhana adalah dengan menggunakan permata "server" lokal dari sistem file: Cukup masukkan file .gem Anda di direktori lokal, lalu gunakan "gem generate_index" untuk menjadikannya repositori Gem
mkdir repo
mkdir repo/gems
cp *.gem repo/gems
cd repo
gem generate_index
Akhirnya arahkan bundler ke lokasi ini dengan menambahkan baris berikut ke Gemfile Anda
source "file://path/to/repo"
Jika Anda memperbarui permata di repositori, pastikan untuk membuat ulang indeks.
gem serveratau saya ingin meng-host seluruh proyek, hanya file .gem.
source "file://#{File.expand_path('.')}/chef-11.10.0.dev.2"
Could not fetch specs from file://Users/nakilon/....../
Secara default Bundler akan memeriksa sistem Anda terlebih dahulu dan jika tidak dapat menemukan permata, ia akan menggunakan sumber yang ditentukan dalam Gemfile Anda.
Anda dapat memaksa bundler untuk menggunakan permata yang Anda gunakan menggunakan "paket bundel" dan "bundel instal --local"
Di mesin pengembangan Anda:
bundle install
(Menginstal permata yang diperlukan dan membuat Gemfile.lock)
bundle package
(Tembolok permata di vendor / cache)
Di server:
bundle install --local
(--local berarti "gunakan permata dari vendor / cache")
bundle installSetelah itu, salin file permata ke vendor / cache , tambahkan file permata kembali ke file permata dan jalankan bundle install --local
bundle packageadalah saran yang bagus, bahkan sekarang, tiga tahun kemudian. Jika versi Bundler Anda lebih lama dari 2.0 (belum dirilis pada penulisan ini), Anda perlu menggunakan bundle package --alljika Anda ingin menyertakan permata dengan pathatau gitdependensi. Ini akan memberi Anda pengingat yang membantu jika mendeteksi dependensi seperti itu.
--localdokumen: "Perhatikan bahwa jika permata khusus platform yang sesuai ada di rubygems.org, itu tidak akan ditemukan."
Menambahkan .gemke vendor/cachetampaknya bekerja. Tidak ada opsi yang diperlukan di Gemfile.
Saya merasa paling mudah untuk menggunakan server gem saya sendiri geminabox
Lihat instruksi sederhana ini .