Uzak bir sitede bulunan bir mücevherin tüm sürümlerini nasıl listeleyebilirim?


133

Belirli bir mücevherin uzaktan erişilebilen tüm versiyonlarını bulmaya çalışıyorum.

Kullanmayı denedim:

gem list rhc --remote

Ama gösteriyor ki:

*** REMOTE GEMS ***
rhc (0.84.15)
rhcp (0.2.18)
rhcp_shell (0.2.12)

Herhangi bir fikir?

Yanıtlar:


205

Şey, düşündüğümden daha kolaydı (pekala, gerçekten değil, olması gerektiği kadar kolay diyelim):

gem list rhc --remote --all

Hangi döndürür:

*** REMOTE GEMS ***
rhc (0.84.15, 0.84.13, 0.83.9, 0.82.18, 0.81.14, 0.80.5, 0.79.5, 0.77.8, 0.75.9, 0.74.6, 0.74.5, 0.73.14, 0.72.29, 0.71.2, 0.69.6, 0.69.3, 0.68.5)
rhcp (0.2.18, 0.2.17, 0.2.16, 0.2.15, 0.2.14, 0.1.9, 0.1.8, 0.1.7, 0.1.6, 0.1.5, 0.1.4, 0.1.3, 0.1.2)
rhcp_shell (0.2.12, 0.2.11, 0.0.9, 0.0.7, 0.0.6, 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1)

52
Ayrıca, "rhc" nin bir normal ifade olduğunu unutmayın, bu nedenle, yalnızca ona bakmak istiyorsanız gem list ^rhc$, "--remote" ve "--all" işaretlerini kısaltabilir ve birleştirebilirsinizgem list ^rhc$ -ra
Joshua Cheek

5
diğer seçenekleri geçebileceğinizi unutmayın, yani. phusion yolcunun en son ön sürümlerini almak için isteyebilirsiniz: gem list -ra --pre passenger(-ra == --uzaktan --tüm)
Mirek Rusin

5
@JoshuaCheek gibi bazı kabukların zshdaha gelişmiş ayrıştırmaya sahip olduğunu ve bu şekilde verilen normal ifadeyi yakalayabileceğini unutmayın . Daha güvenli olmak için (eğer bir betiğe veya README'ye böyle bir şey koyarsanız) onu bir dizeye koymaktır, böylece onu 1-1 gem list '^rhc$'
geçirdiğimizden

1
@m_gol zsh, sizin yardımınız için bu + 1'i yaptığım gibi yorumları okuyordu !
Jesse Whitham

--prereleasebeta sürümlerini görmek için kullanın
akostadinov

32

RubyGem'in Kılavuzuna göre searchanahtar kelimeyi kullanmalısınız . Yani komut şu olabilir:

gem search rhc --all

Tam adı istiyorsanız şunu kullanın:

gem search ^rhc$ --all

Ön sürüm sürümleri eklemek istiyorsanız şunu kullanın: --pre

gem search ^rhc$ --pre

Ve zshtırnak işareti kullanıyorsanız :

gem search '^rhc$' --all


4
--prereleasebeta sürümlerini görmek için kullanın
akostadinov

9

@ Eyalev'in cevabını genişletmek için, satır başına bir sürümün bir listesini istiyorsanız, işte tek satırlık bir açıklama:

gem search '^rspec$' --all \
  | grep -o '\((.*)\)$' \
  | tr -d '() ' \
  | tr ',' "\n" \ 
  | sort
0.0.10
0.1.0
0.1.1
# etc.

Bunu biraz daha yeniden kullanılabilir hale getirmek için bazı işlevler yazabilirsiniz (sınırlı bash becerilerimi affedin):

function extract_gem_versions() {   
  echo "$1" \
    | grep -o '\((.*)\)$' \
    | tr -d '() ' \
    | tr ',' "\n"; 
}

function gem_versions() { 
  local gem_name="$1"; 
  local pattern="^${gem_name}$";  
  local vers_str="$(gem search ${pattern} --all)";  
  extract_gem_versions "$vers_str";  
}

gem_versions rspec | sort
0.0.10
0.1.0
0.1.1
# etc.

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.