programing

원격 사이트에서 사용할 수 있는 모든 버전의 보석을 나열하려면 어떻게 해야 합니까?

bestprogram 2023. 6. 1. 23:02

원격 사이트에서 사용할 수 있는 모든 버전의 보석을 나열하려면 어떻게 해야 합니까?

저는 지정된 보석의 모든 원격 사용 가능한 버전을 찾으려고 합니다.

다음을 사용해 보았습니다.

gem list rhc --remote

하지만 다음을 보여줍니다.

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

아이디어 있어요?

글쎄요, 생각보다 쉬웠어요 (글쎄요, 사실은 아니지만, 그렇게 해야 할 만큼 쉽다고 합시다):

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)

RubyGem's Guide에 따르면 다음을 사용해야 합니다.search키워드명령은 다음과 같습니다.

gem search rhc --all

정확한 이름을 사용하려면 다음을 사용합니다.

gem search ^rhc$ --all

사전 릴리스 버전을 포함하려면 다음을 사용합니다.--pre

gem search ^rhc$ --pre

그리고 만약 당신이 사용한다면.zsh따옴표 추가:

gem search '^rhc$' --all

@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.

gem info 둘 다 제공합니다.--remote원격 보석만 확인하는 옵션--all알려진 모든 버전을 표시하는 방법

$ gem info rhc --remote --all

*** REMOTE GEMS ***

rhc (1.38.7, 1.38.4, 1.37.1, 1.36.4, 1.35.4, 1.35.3, 1.35.1, 1.34.2, 1.33.4, 1.32.2, 1.31.5, 1.30.3, 1.30.2, 1.29.7, 1.28.5, 1.27.4, 1.26.9, 1.25.3, 1.25.2, 1.24.4, 1.23.7, 1.22.5, 1.21.3, 1.20.3, 1.19.5, 1.18.2, 1.17.6, 1.16.9, 1.15.6, 1.14.7, 1.13.6, 1.12.4, 1.11.4, 1.10.7, 1.9.6, 1.8.9, 1.7.8, 1.6.8, 1.5.13, 1.4.8, 1.4.7, 1.3.8, 1.2.7, 1.1.11, 1.0.4, 0.98.16, 0.97.17, 0.96.9, 0.95.14, 0.95.13, 0.94.8, 0.93.19, 0.93.18, 0.92.11, 0.91.12, 0.91.11, 0.90.7, 0.90.6, 0.88.9, 0.87.8, 0.86.7, 0.85.12, 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)
    Author: Red Hat
    Homepage: https://github.com/openshift/rhc

    OpenShift Client Tools

gem (list|search)유사한 기능 제공)--remote --all하지만 만약 당신이 특정 보석을 찾고 있다면.--exact옵션은 정확한 일치 항목만 찾습니다.

$ gem search rhc --remote --all --exact

*** REMOTE GEMS ***

rhc (1.38.7, 1.38.4, 1.37.1, 1.36.4, 1.35.4, 1.35.3, 1.35.1, 1.34.2, 1.33.4, 1.32.2, 1.31.5, 1.30.3, 1.30.2, 1.29.7, 1.28.5, 1.27.4, 1.26.9, 1.25.3, 1.25.2, 1.24.4, 1.23.7, 1.22.5, 1.21.3, 1.20.3, 1.19.5, 1.18.2, 1.17.6, 1.16.9, 1.15.6, 1.14.7, 1.13.6, 1.12.4, 1.11.4, 1.10.7, 1.9.6, 1.8.9, 1.7.8, 1.6.8, 1.5.13, 1.4.8, 1.4.7, 1.3.8, 1.2.7, 1.1.11, 1.0.4, 0.98.16, 0.97.17, 0.96.9, 0.95.14, 0.95.13, 0.94.8, 0.93.19, 0.93.18, 0.92.11, 0.91.12, 0.91.11, 0.90.7, 0.90.6, 0.88.9, 0.87.8, 0.86.7, 0.85.12, 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)

gem info최대 한 개의 보석이 돌아올 것입니다;gem (list|search)여러 개의 보석을 반환할 수 있습니다. gem info당신이 찾고 있는 것이 무엇인지 안다면 이상적입니다.gem (list|search)보석 이름의 불확실성이 있을 때 도움이 될 수 있습니다.또한.gem list에서는 원격 작업이 가능하지만 로컬 보석을 검색하기 위해 자체적으로 설명합니다.

보석에 사용할 수 있는 원격 버전만 반환하는 명령/옵션 집합은 없는 것 같습니다.@jared-beck가 한 대답을 복습하기 위해, 텍스트 조작으로 그것을 추출할 수 있습니다.

$ gem info rhc --remote --all | grep -o '\((.*)\)$' | tr -d '() ' | tr ',' "\n"
1.38.7
1.38.4
1.37.1
1.36.4
1.35.4
# ... truncated ...

더 나은 솔루션

gem search '^rhc$' --all

이러한 공유 지식에 대한 동기 부여

예상치 못한 결과를 던지는 승인된 답변이 표시됩니다.

시도:

gem list [STRING] [options]

예:

gem list rhc -r

또는 시도:

gem list -r rhc

(설명서와 제공된 예제가 서로 모순되는 것 같습니다. 둘 다 시도해 보십시오.)


설명서를 참조하십시오.

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

언급URL : https://stackoverflow.com/questions/9146012/how-do-i-list-all-versions-of-a-gem-available-at-a-remote-site