macOS 環境の調べ方


 macOS で、各種開発関連ツールのバージョンを確認する方法をまとめました。

 「macOS のバージョンを確認して」「〇〇のバージョンも確認して」と別々に確認する際に、ツールごとに都度別々の方法で確認方法を調べるのが苦しくなってきたので。シェルにして実行すれば、一発でいろいろ確認できます。

免責

 私もインストールしていないものがあるので、動作確認とれていないものもあります。

まとめシェル

 開発者デベロッパーが使いそうなツール群のバージョン確認コマンドを集めました。もちろんデフォルトではインストールされていないものもありますから、そういったものは表示されません。

 行を増やしていこうと思えばキリがないので、適宜削除してお使いください。また、複数行出力されるコマンドは不要な行もあるでしょうから、お好みで grep してください。

 また中には、出力内容にローカルパスが含まれるものもありますので、出力内容を誰かに共有する場合などはご注意ください。

check_mac_dev_env.sh
#!/bin/zsh
# https://qiita.com/Tachy_Pochy/items/d5d4bf82f4e00eea1fd4

# macOS
sw_vers
# このシェルを作成した時の結果
# ProductName:  Mac OS X
# ProductVersion:   10.15.7
# BuildVersion: 19H1323

# gcc
echo -n "gcc version: "; gcc -dumpversion

# Xcode
xcodebuild -version

# Git
git --version

# Homebrew
brew --version

# MacPorts
port version
port installed

# Docker
docker version

# Vagrant
vagrant version

# Node.js
node -v
echo -n "npm version: "; npm -version
npm list --depth=0 -g

# Python
python --version
python3 -VV
pip3 list

# Swift
swift --version

# AppleScript
echo -n "AppleScript version: "; osascript -e 'version of AppleScript'

# PHP、Pear および composer
php -v
pear list
composer --version
composer show -i

# Ruby
ruby -v
gem list

# JAVA 、JDK および JAVA_HOME
java --version
javac --version
echo -n "JAVA_HOME="
/usr/libexec/java_home
set | grep LANG

# Perl
perl --version | grep version

# シェル
sh --version
zsh --version
tch --version

# Apache
httpd -v

# Nginx
nginx -V

# SQLite
echo -n "SQLite3 version: "
sqlite3 -version

# curl
curl --version

# PlantUML
java -jar plantuml.jar -version| grep PlantUML\ version

# Graphviz (dot)
dot -V

# Visual Studio Code
echo -n "Visual Studio Code version: "
code -v
code --list-extensions --show-versions

# CotEditor
echo -n "CotEditor version: "
cot -v

その他

Xcode にバンドルしている他のアプリケーションのバージョン確認

echo -n "Accessibility Inspector.app version: "
defaults read /Applications/Xcode.app/Contents/Applications/Accessibility\ Inspector.app/Contents/version.plist CFBundleShortVersionString

echo -n "Create ML.app version: "
defaults read /Applications/Xcode.app/Contents/Applications/Create\ ML.app/Contents/version.plist CFBundleShortVersionString

echo -n "FileMerge.app version: "
defaults read /Applications/Xcode.app/Contents/Applications/FileMerge.app/Contents/version.plist CFBundleShortVersionString

echo -n "Instruments.app version: "
defaults read /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/version.plist CFBundleShortVersionString

echo -n "Reality Composer.app version: "
defaults read /Applications/Xcode.app/Contents/Applications/RealityComposer.app/Contents/version.plist CFBundleShortVersionString

AppleScript の別の方法

echo -n "AppleScript version: "
defaults read /System/Library/Components/AppleScript.component/Contents/version.plist CFBundleShortVersionString

Ruby の別の方法

gem environment

PHP の別の方法

 より詳しく知る。Apache のモジュールなんかも出力される。

php -i

 ローカルパスや環境変数がたくさん含まれるので注意。

Perl の別の方法

 より詳しく知る。

perl -V

Tomcat

 インストールしたことがないので詳しくないのですが、version.sh というシェルがあるようです。

 シェルの場所は $CATALINA_HOME/bin だと思います。

echo $CATALINA_HOME

DB 系

 DB 系で重要なのはクライアントのバージョンではなく、サーバのバージョンだと思うので、上記のシェルには含めませんでした。

 お使いの環境に合わせて、下記の1行で実行するコマンドワンライナーを作成してシェルに加えてください。

 また、シェルの中にパスワードを記述しないようにしましよう。

MySQL の別の方法

 未確認です。

mysql -e "SELECT VERSION();"

 もっと未確認です。

mysql -e "status;"

 接続情報込み。

mysql -u=<user_name> -h=<host_name> -p -e "SELECT VERSION();"

 パスワード入力を省略する方法。

MySQLで幸せになれるヤツの続き-パスワードを隠蔽する方法 - なからなLife

PostgreSQL の別の方法

 未確認です。

psql -c "SELECT version();"

 接続情報込み。

psql -U <user_name> -d <db_name> -p <port> -c "SELECT version();"

 パスワード入力を省略する方法。

psqlでログインするときのパスワード入力を省略する - Qiita

 でも上記方法は平文で保存されるので、抵抗がありますね。

Oracle の確認方法

 これもインストールしたことがなく、ちょっと自信ありませんが。

echo "SELECT * FROM v$version;" | sqlplus / as sysdba

 接続情報込み。

echo "SELECT * FROM v$version;" | sqlplus <user_name>@<host>:<listener_port>/<service_name>