मैं किसी दूरस्थ साइट पर उपलब्ध मणि के सभी संस्करणों को कैसे सूचीबद्ध करूं?


133

मैं एक निर्दिष्ट मणि के सभी उपलब्ध दूरस्थ संस्करणों का पता लगाने की कोशिश कर रहा हूं।

मैंने प्रयोग करने की कोशिश की:

gem list rhc --remote

लेकिन यह दिखाता है:

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

कोई विचार?

जवाबों:


204

ठीक है, मैंने जितना सोचा था, यह उससे भी आसान था (ठीक है, वास्तव में नहीं है, चलो जितना आसान होना चाहिए) कहो:

gem list rhc --remote --all

कौन सा रिटर्न:

*** 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
यह भी ध्यान दें कि "rhc" एक रेगीक्स है, इसलिए यदि आप केवल उस एक को देखना चाहते हैं, तो आप gem list ^rhc$"--remote" और "--all" झंडे को खोज सकते हैं और उनके लिए जोड़ सकते हैंgem list ^rhc$ -ra
जोशुआ गाल

5
ध्यान दें कि आप अन्य विकल्प पास कर सकते हैं, अर्थात। : Phusion यात्री के नवीनतम पूर्व विज्ञप्ति आप करना चाहते हैं पाने के लिए gem list -ra --pre passenger(-ra == --remote --all)
Mirek Rusin

5
@JoshuaCheek ध्यान दें कि कुछ गोले zshअधिक उन्नत पार्सिंग हैं और इस तरह से दिए गए रेगेक्स को पकड़ सकते हैं। अधिक सुरक्षित होने के लिए (यदि स्क्रिप्ट या README में उस तरह से sth डालते हैं) को एक तार में रखना है ताकि हम सुनिश्चित करें कि हम इसे 1-1, अर्थात gem list '^rhc$'आदि पास करते हैं
mgol

1
@m_gol टिप्पणियों को पढ़ने के लिए हुआ, जैसा कि मैंने zshआपकी मदद के लिए यह +1 किया!
जेसी व्हिथम

--prereleaseबीटा वर्जन देखने के लिए उपयोग करें
akostadinov

32

RubyGem की गाइड के अनुसार आपको searchकीवर्ड का उपयोग करना चाहिए । तो कमांड हो सकती है:

gem search rhc --all

यदि आप सटीक नाम का उपयोग करना चाहते हैं:

gem search ^rhc$ --all

यदि आप प्रीलेरेज़ संस्करणों के उपयोग को शामिल करना चाहते हैं --pre

gem search ^rhc$ --pre

और यदि आप zshजोड़ उद्धरण का उपयोग कर रहे हैं :

gem search '^rhc$' --all


4
--prereleaseबीटा वर्जन देखने के लिए उपयोग करें
akostadinov

9

@ Eyalev के उत्तर का विस्तार करने के लिए, यदि आप प्रति पंक्ति एक संस्करण की सूची चाहते हैं, तो यहां एक-लाइनर है:

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

इसे थोड़ा और पुन: प्रयोग करने योग्य बनाने के लिए, आप कुछ कार्य लिख सकते हैं (मेरे सीमित बास कौशल को क्षमा करें):

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.

-2

प्रयत्न:

gem list [STRING] [options]

उदाहरण के लिए:

gem list rhc -r

या कोशिश करें:

gem list -r rhc

( दस्तावेज़ीकरण, और प्रदान किया गया उदाहरण एक दूसरे के विपरीत प्रतीत होते हैं - दोनों को आज़माएं )


प्रलेखन देखें:

http://docs.rubygems.org/read/chapter/10#page34


1
यह सभी संस्करणों को सूचीबद्ध नहीं करता है
एडम टेगन जूल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.