Paketleyiciyle yalnızca bir mücevher güncelleme


233

Benim raylar app bağımlılıkları yönetmek için bundler kullanın ve ben aşağıdaki gibi dahil bir git depoda barındırılan bir mücevher var:

gem 'gem-name', :git => 'path/to/my/gem.git'

Bu gem güncellemek için yürütmek bundle updateama aynı zamanda Gemfile belirtilen tüm gem güncelleştirir. Peki, sadece bir tanesini güncelleme komutu nedir?

Yanıtlar:


354

Burada arasındaki fark hakkında iyi bir açıklama bulabilirsiniz

Hem değerli taş hem de bağımlılıkları güncelleyin:

bundle update gem-name 

veya

Yalnızca mücevherleri güncelleyin:

bundle update --source gem-name

olası yan etkilerin bazı güzel örnekleriyle birlikte.

Güncelleme

@ Tim'in cevabının dediği gibi Bundler 1.14'ten itibaren bunun resmi olarak desteklenen yolu budur bundle update --conservative gem-name.


19
Dikkatli olun, "değerli taş ve bağımlılıkların güncellenmesi" bir bağımlılıksa ve muhtemelen bunu istemiyorsanız rayların kendisini güncellemek demektir. --source sadece parametre olarak belirtilen cevheri güncelleyecektir. Bu yüzden çoğu durumda daha iyidir.
1.44mb

sürüm nasıl belirtilir?
Oshan Wisumperuma

1
@OshanWisumperuma Bu paket komutlarını çalıştırmadan önce sürümü Gemfile veya muhtemelen Gemfile.lock olarak belirtin
Harry Wood

185

Bunu yapmanın yolu aşağıdaki komutu çalıştırmaktır:

bundle update --source gem-name

3
Bu tam olarak ne gerekli, ben özel bir mücevher var ve sadece özel mücevher bazı değişiklikler yaptıktan sonra bağımlılıkları güncelleme olmadan gem kendini güncelleştirmek gerekir.
Ben bir kurbağa ejderhayım

30

Görünüşe göre paketleyicinin daha yeni sürümleri (> = 1.14):

bundle update --conservative gem-name

not: Bu komut bağımlılık olmadan bir mücevher güncelleyecektir
mmike

24

Komut satırında gem adını belirtmeniz yeterlidir:

bundle update gem-name

1
Garip. Öyle bundle help updatediyor. Hangi paketleyiciyi kullanıyorsunuz?
Brandan

40
bundle update gem-namegem ve "bağımlılıklarından herhangi birini" güncelleyecektir.
yaka

5

bundle update gem-name [--major|--patch|--minor]

Bu aynı zamanda bağımlılıklar için de geçerlidir.


1
Belirli bir sürüme güncellemenin bir yolu var mı? --major, --minorVe --patchbayraklar otomatik olarak en son mümkün sürüme yükseltin.
user2490003

2

Ben kullandım bundle update --sourceuzun zamandır kendimi ama çalışmıyor senaryo vardır. Neyse ki, bundler-patchbu eksikliği gidermek amacı olan bir mücevher var .

Ayrıca nasıl kullanılacağı ve neden sürekli çalışmadığı hakkında kısa bir blog yazısı yazdım . Ayrıca, kontrol etmeyi unutmayın bir yazı neyi ayrıntılı olarak açıklar chrismo tarafından seçeneği yok.bundler-patchbundle update --source--source


0

bundler update --source gem-name Gemfile.lock dosyasındaki revizyon karmasını, git git dalının son kesin karmasıyla karşılaştırabilirsiniz (varsayılan olarak ana).

GIT remote: git@github.com:organization/repo-name.git revision: c810f4a29547b60ca8106b7a6b9a9532c392c954

bulunabilir github.com/organization/repo-name/commits/c810f4a2(kullandığım stenografi 8 karakter url için karma taahhüt)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.