Próbuję znaleźć wszystkie dostępne zdalnie wersje określonego klejnotu.
Próbowałem użyć:
gem list rhc --remote
Ale to pokazuje:
*** REMOTE GEMS ***
rhc (0.84.15)
rhcp (0.2.18)
rhcp_shell (0.2.12)
Jakieś pomysły?
Odpowiedzi:
Cóż, było łatwiej niż myślałem (no cóż, nie do końca, powiedzmy tak łatwe, jak powinno):
gem list rhc --remote --all
Który zwraca:
*** 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)
gem list -ra --pre passenger
(-ra == --remote --all)
zsh
mają bardziej zaawansowaną analizę i mogą przechwytywać podane w ten sposób wyrażenie regularne. Aby być bezpieczniejszym (jeśli umieszczamy coś takiego w skrypcie lub README), należy umieścić to w ciągu, abyśmy byli pewni, że przekażemy to 1-1, tj. gem list '^rhc$'
Itd.
zsh
+1 za Twoją pomoc!
--prerelease
aby zobaczyć wersje beta
Zgodnie z Przewodnikiem po RubyGem powinieneś użyć search
słowa kluczowego. Więc polecenie może wyglądać następująco:
gem search rhc --all
Jeśli chcesz podać dokładną nazwę, użyj:
gem search ^rhc$ --all
Jeśli chcesz dołączyć wersje wstępne, użyj --pre
gem search ^rhc$ --pre
A jeśli używasz zsh
dodawania cudzysłowów:
gem search '^rhc$' --all
--prerelease
aby zobaczyć wersje beta
Aby rozszerzyć odpowiedź @ eyalev, jeśli chcesz listę jednej wersji w każdym wierszu, oto jedna linijka:
gem search '^rspec$' --all \
| grep -o '\((.*)\)$' \
| tr -d '() ' \
| tr ',' "\n" \
| sort
0.0.10
0.1.0
0.1.1
# etc.
Aby uczynić to nieco bardziej możliwym do ponownego użycia, możesz napisać kilka funkcji (przepraszam za moje ograniczone umiejętności 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.
Próbować:
gem list [STRING] [options]
Na przykład:
gem list rhc -r
Lub spróbuj:
gem list -r rhc
( dokumentacja i przedstawiony przykład wydają się być ze sobą sprzeczne - wypróbuj oba )
Zobacz dokumentację:
gem list ^rhc$
a flagi „--remote” i „--all” można skrócić i połączyć wgem list ^rhc$ -ra