Yanıtlar:
Bu kesinlikle .gempaketlerin yüklenmesi ile ilgili sorunuzun bir cevabı değildir , ancak Gemfile'ınızı düzenleyerek her türlü yeri gem-gem-gem bazında belirtebilirsiniz .
:pathöznitelik belirttiğinizde, yerel makinenizde bu yoldan değerli taş yüklenir.gem "foreman", path: "/Users/pje/my_foreman_fork"
:gitöznitelik belirtmek , taşı uzak bir git deposundan yükler.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"
(As @JHurrah belirtilen yaptığı yorum .)
gem "foreman", :git => "https://github.com/pje/foreman.git"
Paketçi .gem dosyalarını kutudan çıkaramaz gibi görünüyor. .Gem dosyalarını içeren bir dizinin yolunu göstermek işe yaramıyor. Bazı insanlar bu amaç için yerel bir gem sunucusu (geminabox, stickler) kurmayı önerdi.
Ancak, çok daha basit buldum dosya sisteminden yerel bir gem "sunucu" kullanmaktır: Sadece .gem dosyalarınızı yerel bir dizine koymak, sonra bir Gem deposu yapmak için "gem create_index" kullanın
mkdir repo
mkdir repo/gems
cp *.gem repo/gems
cd repo
gem generate_index
Son olarak Gemfile'ınıza aşağıdaki satırı ekleyerek bundler'ı bu konuma doğrultun
source "file://path/to/repo"
Depodaki mücevherleri güncelleştirirseniz, dizini yeniden oluşturduğunuzdan emin olun.
gem serverde tüm projeyi, sadece .gem dosyasını barındırmak istedim aradığını oldu.
source "file://#{File.expand_path('.')}/chef-11.10.0.dev.2"
Could not fetch specs from file://Users/nakilon/....../
Varsayılan olarak Bundler önce sisteminizi kontrol eder ve bir mücevher bulamazsa Gemfile dosyasında belirtilen kaynakları kullanır.
Bundler'ı, "bundle package" ve "bundle install --local" kullanarak dağıttığınız taşları kullanmaya zorlayabilirsiniz
Geliştirme makinenizde:
bundle install
(Gerekli taşları yükler ve Gemfile.lock yapar)
bundle package
(Satıcı / önbellekteki değerli taşları önbelleğe alır)
Sunucuda:
bundle install --local
(--local "satıcı / önbellekteki değerli taşları kullan" anlamına gelir)
bundle installBundan sonra gemfile'i satıcıya / önbelleğe kopyalayın, gem'i gemfile'a geri ekleyin ve çalıştırın bundle install --local
bundle packageüç yıl sonra bile şimdi bile harika bir öneri. Bundler sürümünüz 2.0'dan daha eskiyse (henüz bu yazıda yayınlanmamışsa), bundle package --alldeğerli taşlar pathveya gitbağımlılıklar eklemek istiyorsanız kullanmanız gerekecektir . Yine de, bu tür bağımlılıkları tespit ederse size yardımcı olacak bir hatırlatma verecektir.
--localdocs: "Bir uygun platforma özgü taş rubygems.org üzerinde varsa Not onu buldum olmayacak."
Ekleme .gemiçin vendor/cacheişe görünmektedir. Konumunda seçeneğe gerek yok Gemfile.
Kendi gem sunucumu kullanarak çalıştırmak için en kolay buldum geminabox
Bu basit talimatlara bakın .