지정된 gem의 원격으로 사용 가능한 모든 버전을 찾으려고합니다.
나는 다음을 사용하려고 시도했다.
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.
이것을 좀 더 재사용 가능하게 만들기 위해 일부 함수를 작성할 수 있습니다 (제한된 bash 기술을 용서하십시오).
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 list [STRING] [options]
예를 들면 다음과 같습니다.
gem list rhc -r
또는 시도하십시오 :
gem list -r rhc
( 문서와 제공된 예제가 서로 모순되는 것처럼 보입니다. 둘 다 시도하십시오 )
설명서를 참조하십시오.
답변
