指定された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の答えを拡張するために、行ごとに1つのバージョンのリストが必要な場合は、1行のライナーを使用します。
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.