Yanıtlar:
Bu kesinlikle .gem
paketlerin 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 server
de 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 install
Bundan 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 --all
değerli taşlar path
veya git
bağı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.
--local
docs: "Bir uygun platforma özgü taş rubygems.org üzerinde varsa Not onu buldum olmayacak."
Ekleme .gem
için vendor/cache
iş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 .