ฉันจะแสดงรายการอัญมณีทุกรุ่นที่ไซต์ระยะไกลได้อย่างไร


133

ฉันกำลังพยายามค้นหาอัญมณีที่ระบุในเวอร์ชันระยะไกลทั้งหมดที่มีอยู่

ฉันลองใช้:

gem list rhc --remote

แต่มันแสดงให้เห็น:

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

ความคิดใด ๆ ?

คำตอบ:


205

มันง่ายกว่าที่ฉันคิดไว้ (ก็ไม่เชิงว่าง่ายอย่างที่ควรจะเป็น):

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" และ "- ทั้งหมด" สำหรับgem list ^rhc$ -ra
Joshua Cheek

5
โปรดทราบว่าคุณสามารถผ่านตัวเลือกอื่น ๆ ได้เช่น เพื่อรับผู้โดยสารฟิวชั่นก่อนการเผยแพร่ล่าสุดที่คุณต้องการ: gem list -ra --pre passenger(-ra == --remote
Mirek Rusin

5
@JoshuaCheek โปรดทราบว่าเชลล์บางตัวzshมีการแยกวิเคราะห์ขั้นสูงกว่าและสามารถจับนิพจน์ทั่วไปได้ด้วยวิธีนี้ เพื่อให้ปลอดภัยยิ่งขึ้น (ถ้าใส่ sth แบบนั้นในสคริปต์หรือ README) คือใส่ไว้ในสตริงเพื่อให้แน่ใจว่าเราผ่าน 1-1 เช่นgem list '^rhc$'ฯลฯ
mgol

1
@m_gol เกิดขึ้นเพื่ออ่านความคิดเห็นเนื่องจากฉันzsh+1 นี้เพื่อขอความช่วยเหลือจากคุณ!
Jesse Whitham

ใช้--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
นี่ไม่ใช่รายการทุกเวอร์ชัน
Adam Tegen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.