官僚主義のため、誰かがLinuxサーバーでbashスクリプトを実行して出力を提供できるようにすることができますが、そこにログインできないか、スクリプトを直接実行できない状況に直面しました。
問題のサーバーがDebianまたはUbuntuを実行していると確信しています。
python
どのバージョンがインストールされているのか、どのバージョンがインストールされているのかを知りたいですg++
。
これまでの最良のアイデアは、$PATH
変数を取得して分割し、すべてのパスで:
一致するpython
ものを個別に検索することですg++
。
よりスマートな方法がありますか?
答え1
g++ をローカルにインストールしていない場合は、次は g++ で動作します。
dpkg -l 'g++*'
私のシステムは以下を提供します。
dpkg -l 'g++*'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-================================-=====================-=====================-======================================================================
ii g++ 4:4.9.2-2 amd64 GNU C++ compiler
ii g++-4.6 4.6.3-14 amd64 GNU C++ compiler
un g++-4.6-multilib <none> <none> (no description available)
ii g++-4.9 4.9.2-10 amd64 GNU C++ compiler
ii g++-4.9-multilib 4.9.2-10 amd64 GNU C++ compiler (multilib files)
ii g++-multilib 4:4.9.2-2 amd64 GNU C++ compiler (multilib files)
Pythonの場合、同様のアプローチはあまりにも多くの誤った肯定を提供します。だからDebianとその派生バージョンでは、すべてのPythonライブラリがpython-
。
それはまるで
dpkg -l 'python?.?'
動作する必要があります。
dpkg -l 'python?.?'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-================================-=====================-=====================-======================================================================
ii python2.6 2.6.8-1.1 amd64 Interactive high-level object-oriented language (version 2.6)
ii python2.7 2.7.9-2 amd64 Interactive high-level object-oriented language (version 2.7)
un python3.1 <none> <none> (no description available)
ii python3.4 3.4.2-1 amd64 Interactive high-level object-oriented language (version 3.4)
答え2
そしてzsh
:
$ type -ma '(python|g++)*'
g++ is /usr/bin/g++
g++-4.4 is /usr/bin/g++-4.4
g++-4.6 is /usr/bin/g++-4.6
g++-5 is /usr/bin/g++-5
python is /usr/bin/python
python-config is /usr/bin/python-config
python-coverage is /usr/bin/python-coverage
python2 is /usr/bin/python2
python2-config is /usr/bin/python2-config
python2-coverage is /usr/bin/python2-coverage
python2-gflags2man is /usr/bin/python2-gflags2man
python2.7 is /usr/bin/python2.7
python2.7-config is /usr/bin/python2.7-config
python2.7-coverage is /usr/bin/python2.7-coverage
python3 is /usr/bin/python3
python3.2 is /usr/bin/python3.2
python3.2mu is /usr/bin/python3.2mu
python3.4 is /usr/bin/python3.4
python3.4m is /usr/bin/python3.4m
python3.5 is /usr/bin/python3.5
python3.5m is /usr/bin/python3.5m
python3m is /usr/bin/python3m
pythontex is /usr/bin/pythontex
pythontex3 is /usr/bin/pythontex3
似てtype cmd
いるがパターンに一致するすべてのa
コマンド(およびユーザーのシェルが関連している場合は、エイリアス、関数、および組み込み)を報告します。zsh
m
答え3
$PATHにバージョンが必要な場合は、以下を実行できます。
python -V ; g++ --version
答え4
検索パスを使用できますwhich -a
。
function get_versions {
for p in $(which -a $1); do
$p --version
done
}
get_versions python
get_versions g++