Wie liste ich alle Versionen eines Edelsteins auf, die an einem entfernten Standort verfügbar sind?

133

Ich versuche, alle remote verfügbaren Versionen eines bestimmten Edelsteins herauszufinden.

Ich habe versucht:

gem list rhc --remote

Aber es zeigt:

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

Irgendwelche Ideen?

opensas
quelle

Antworten:

204

Nun, es war einfacher als ich dachte (nun, nicht wirklich, sagen wir so einfach wie es sein sollte):

gem list rhc --remote --all

Welches kehrt zurück:

*** 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)
opensas
quelle
52
Beachten Sie auch, dass "rhc" ein regulärer Ausdruck ist. Wenn Sie sich also nur diesen ansehen möchten, können Sie danach suchen gem list ^rhc$und die Flags "--remote" und "--all" können fürgem list ^rhc$ -ra
Joshua Cheek
5
Beachten Sie, dass Sie andere Optionen übergeben können, z. Um die neuesten Vorabversionen von Phusion Passenger zu erhalten, möchten Sie: gem list -ra --pre passenger(-ra == --remote --all)
Mirek Rusin
5
@JoshuaCheek Beachten Sie, dass einige Shells wie zshfortgeschrittenes Parsen haben und den auf diese Weise gegebenen regulären Ausdruck abfangen könnten. Um sicherer zu sein (wenn Sie so etwas in ein Skript oder eine README- gem list '^rhc$'
Datei einfügen
1
@m_gol hat gerade die Kommentare gelesen, als ich zshdies +1 für Ihre Hilfe getan habe!
Jesse Whitham
Verwenden Sie --prerelease, um Beta-Versionen zu sehen
Akostadinov
32

Laut RubyGem's Guide sollten Sie das searchSchlüsselwort verwenden. Der Befehl könnte also lauten:

gem search rhc --all

Wenn Sie den genauen Namen wünschen, verwenden Sie:

gem search ^rhc$ --all

Wenn Sie Vorabversionen einschließen möchten, verwenden Sie --pre

gem search ^rhc$ --pre

Und wenn Sie zshAnführungszeichen hinzufügen:

gem search '^rhc$' --all

eyalev
quelle
4
Verwenden Sie --prerelease, um Beta-Versionen zu sehen
Akostadinov
9

Um die Antwort von @ eyalev zu erweitern, wenn Sie eine Liste mit einer Version pro Zeile wünschen, hier ein Einzeiler:

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

Um dies ein bisschen wiederverwendbarer zu machen, könnten Sie einige Funktionen schreiben (entschuldigen Sie meine begrenzten Bash-Fähigkeiten):

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.
Jared Beck
quelle
-2

Versuchen:

gem list [STRING] [options]

Beispielsweise:

gem list rhc -r

Oder Versuche:

gem list -r rhc

( Die Dokumentation und das bereitgestellte Beispiel scheinen sich zu widersprechen - versuchen Sie beide )


Siehe die Dokumentation:

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

Nur Bolivianer hier
quelle
1
Dies listet nicht alle Versionen auf
Adam Tegen