ここに必要なソフトウェアのバージョンを調べるターミナルコマンド群を一覧しておきます。 強制ではありませぬが、出来うる限り、最新バージョンになるように努力してくださいませ。 バージョンが古いと、当該中の手解き(ハンズオン)を行うことができない場合があります。 ピリオド区切りバージョン表記法(version notation separated by periods) 〔major version〕.〔minor version〕.〔maintenance version〕 〔メジャーバージョン〕.〔マイナーバージョン〕.〔メンテナンスバージョン〕 --- 青木淳@2025/04/29 | macos | bash | xcode | clang | make | scan-build | java | ant | python | javascript | ruby | svn | git | ------------------------------------------------------------ 【Mac OS(macOS)のバージョンを調べるコマンド】↑ 参照:アップデート情報 $ # macOS 15.4 (Sequoia) $ sw_vers ProductName: macOS ProductVersion: 15.4.1 BuildVersion: 24E263 macOS 10.15 (Catalina) 以降では、32bitアプリケーションなどが動作しなくなります。 都合が良くない場合には、macOS 10.14 (Mojave) を維持してください。 $ # macOS 10.14 (Mojave) $ sw_vers ProductName: Mac OS X ProductVersion: 10.14.6 BuildVersion: 18G7016 ------------------------------------------------------------ 【bash(シェル:コマンドインタプリタ)のバージョンを調べるコマンド】↑ $ bash --version GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin22) Copyright (C) 2007 Free Software Foundation, Inc. Catalina 以降はデフォルトのシェルが bash から zsh に変わっています、ご注意を。 デファクト・スタンダート(事実上の標準)シェルとして bash を強く推します。 すべての解説は bash をベースに記されておりますので、気をつけてください。 デフォルトのシェルを切り替えるを方法を紹介しておきます。 $ chsh -s /bin/bash # デフォルトのシェルをbashにする $ chsh -s /bin/zsh # デフォルトのシェルをzshにする なお、bash に切り替えた際に出現して来る default interactive shell is now zsh...のメッセージを抑制するためには、 以下の一文を、~/.bash_profileに加えるのがいいでしょう。 export BASH_SILENCE_DEPRECATION_WARNING=1 近頃では、エディタとして Visual Studio Code を使用している方々が多いので、 ~/.bash_profile を、そのエディタにかけるコマンドを紹介しておきます。 $ open -a 'Visual Studio Code' ~/.bash_profile しっかりと~/.bash_profileの加筆修正ができるようになってください、シェルスクリプトの勉強をしながら… ------------------------------------------------------------ 【Xcode(&コマンドラインツール)のバージョンを調べるコマンド】↑ 参照:Xcodeの最小要件とサポートされるSDK $ # macOS 15.4 (Sequoia) $ xcodebuild -version Xcode 16.3 Build version 16E140 $ # macOS 10.14 (Mojave) $ xcodebuild -version Xcode 11.3.1 Build version 11C505 上記のXcodeに加えて、Command Line Tools for Xcodeもインストールします。 $ open -a 'Safari' https://developer.apple.com/download/more/?=Xcode $ # macOS 15.4 (Sequoia) $ pkgutil --pkg-info=com.apple.pkg.CLTools_Executables | grep version version: 16.3.0.0.1.1742442376 $ # macOS 10.14 (Mojave) $ pkgutil --pkg-info=com.apple.pkg.CLTools_Executables | grep version version: 11.3.1.0.1.1576735732 ------------------------------------------------------------ ★★★これより下の項目については、すべて macOS 15.4 (Sequoia) 以降におけるバージョンのみを示します。★★★ ------------------------------------------------------------ 【Cコンパイラのバージョンを調べるコマンド】↑ $ cc --version Apple clang version 17.0.0 (clang-1700.0.13.3) Target: x86_64-apple-darwin24.3.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin $ gcc --version Apple clang version 17.0.0 (clang-1700.0.13.3) Target: x86_64-apple-darwin24.3.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin $ clang --version Apple clang version 17.0.0 (clang-1700.0.13.3) Target: x86_64-apple-darwin24.3.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin Mac OS X(macOS)のCコンパイラは、いずれもその実体がClang(クラン)になります。 Clangは、C, C++, Objective-C, Objective-C++などのコンパイラのフロントエンドであり、 ミドルエンドとバックエンドとしてLLVM(低水準仮想マシン)を使用しています。 ------------------------------------------------------------ 【Cプログラムのビルドを行うmakeのバージョンを調べるコマンド】↑ $ make --version GNU Make 3.81 Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This program built for i386-apple-darwin11.3.0 ------------------------------------------------------------ 【Cプログラムの静的コード解析器(アナライザ)scan-build(およびscan-view)のバージョンを調べるコマンド】↑ $ scan-build --help | grep checker- ANALYZER BUILD: checker-279 (2016-11-14 15:34:09) おそらくインストールされていないと思われますので、 以下の「静的コード解析」のページ(学内からのみ)を参照し、インストールしてください。 $ open -a 'Safari' http://bluetree.kyoto-su.ac.jp/repositories/AP/C/StaticCodeAnalysis/index-j.html $ b2a open -a 'Safari' http://bluetree.kyoto-su.ac.jp/repositories/AP/C/StaticCodeAnalysis/index-j.html ------------------------------------------------------------ 【Javaの仮想マシンとコンパイラのバージョンを調べるコマンド】↑ $ (export JAVA_HOME=`/usr/libexec/java_home -v "24"` ; java -version ; javac -version) java version "24.0.1" 2025-04-15 Java(TM) SE Runtime Environment (build 24.0.1+9-30) Java HotSpot(TM) 64-Bit Server VM (build 24.0.1+9-30, mixed mode, sharing) javac 24.0.1 このバージョン以上でないと脆弱性があることが判明しています。 このバージョン未満の場合は、下記のページ(学内からのみ)を参考にしてバージョンアップしてください。 $ open -a 'Safari' http://bluetree.kyoto-su.ac.jp/repositories/AP/Java/JavaSE/index.html $ b2a open -a 'Safari' http://bluetree.kyoto-su.ac.jp/repositories/AP/Java/JavaSE/index.html この「24」とLTS(Long Term Support)版の「21」と「17」と「11」と「8」において、 サードパーティ製Javaライブラリなどが揃っていない場合もあります。 それゆえ、当分の間は「24」と「21」と「17」と「11」と「8」の併用でゆきます。 (場合によっては「23」や「22」や「20」や「19」や「18」や「16」や「15」や「14」や「13」や「12」や「10」や「9」なども併用する必要があるやもしれません。) $ (export JAVA_HOME=`/usr/libexec/java_home -v "21"` ; java -version ; javac -version) java version "21.0.7" 2025-04-15 LTS Java(TM) SE Runtime Environment (build 21.0.7+8-LTS-245) Java HotSpot(TM) 64-Bit Server VM (build 21.0.7+8-LTS-245, mixed mode, sharing) javac 21.0.7 $ (export JAVA_HOME=`/usr/libexec/java_home -v "17"` ; java -version ; javac -version) java version "17.0.15" 2025-04-15 LTS Java(TM) SE Runtime Environment (build 17.0.15+9-LTS-241) Java HotSpot(TM) 64-Bit Server VM (build 17.0.15+9-LTS-241, mixed mode, sharing) javac 17.0.15 $ (export JAVA_HOME=`/usr/libexec/java_home -v "11"` ; java -version ; javac -version) java version "11.0.27" 2025-04-15 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.27+8-LTS-232) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.27+8-LTS-232, mixed mode) javac 11.0.27 $ (export JAVA_HOME=`/usr/libexec/java_home -v "1.8"` ; java -version ; javac -version) $ sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin $ sudo rm -fr /Library/PreferencesPanes/JavaControlPanel.prefPane $ sudo rm -fr ~/Library/Application\ Support/Oracle/Java java version "1.8.0_451" Java(TM) SE Runtime Environment (build 1.8.0_451-b10) Java HotSpot(TM) 64-Bit Server VM (build 25.451-b10, mixed mode) javac 1.8.0_451 ------------------------------------------------------------ 【Javaプログラムのビルドを行うantのバージョンを調べるコマンド】↑ $ ant -version Apache Ant(TM) version 1.10.15 compiled on August 25 2024 おそらくインストールされていないと思われますので、 以下の「Apache Ant」のページ(学内からのみ)を参照し、インストールしてください。 $ open -a 'Safari' http://bluetree.kyoto-su.ac.jp/repositories/AP/Java/ApacheAnt/index.html $ b2a open -a 'Safari' http://bluetree.kyoto-su.ac.jp/repositories/AP/Java/ApacheAnt/index.html ------------------------------------------------------------ 【Java/JavaScriptおよびC/C++プログラムの整形器(フォーマッタ)clang-formatのバージョンを調べるコマンド】↑ $ clang-format -version clang-format version 4.0.0 (tags/checker/checker-279) おそらくインストールされていないと思われますので、 以下の「静的コード解析」のページ(学内からのみ)を参照し、インストールしてください。 $ open -a 'Safari' http://bluetree.kyoto-su.ac.jp/repositories/AP/C/StaticCodeAnalysis/index-j.html $ b2a open -a 'Safari' http://bluetree.kyoto-su.ac.jp/repositories/AP/C/StaticCodeAnalysis/index-j.html フォーマッタclang-formatは、静的コード解析Clang Static Analyzerに付属してきます。 $ open -a 'Safari' http://bluetree.kyoto-su.ac.jp/repositories/AP/C/ProgramFormatter/index-j.html $ b2a open -a 'Safari' http://bluetree.kyoto-su.ac.jp/repositories/AP/C/ProgramFormatter/index-j.html ------------------------------------------------------------ 【Python処理系のバージョンを調べるコマンド】↑ 参照:Status of Python versions $ /usr/bin/python3 --version Python 3.9.6 Python2系とPython3系を共存させ、併用し(切り替えて使い)たい場合には、以下のページ(学内からのみ)を参照してください。 $ open -a 'Safari' http://bluetree.kyoto-su.ac.jp/repositories/AP/Python/3/Python3and2/index-j.html $ b2a open -a 'Safari' http://bluetree.kyoto-su.ac.jp/repositories/AP/Python/3/Python3and2/index-j.html $ pyenv --version pyenv 2.4.17-1-gd64d1aa1 $ python --version Python 3.12.7 Pythonの2系および3系の安定バージョンを示しておきます。 $ pyenv versions * system (set by ~/.pyenv/version) 2.7.18 3.9.20 3.10.15 3.11.10 3.12.7 3.13.0 以下にインストール候補たちをリストしておきます。 $ pyenv install --list | grep -E '^\ *3.13.[0-9]*$' 3.13.0 $ pyenv install --list | grep -E '^\ *3.12.[0-9]*$' 3.12.0 3.12.1 3.12.2 3.12.3 3.12.4 3.12.5 3.12.6 3.12.7 $ pyenv install --list | grep -E '^\ *3.11.[0-9]*$' 3.11.0 3.11.1 3.11.2 3.11.3 3.11.4 3.11.5 3.11.6 3.11.7 3.11.8 3.11.9 3.11.10 $ pyenv install --list | grep -E '^\ *3.10.[0-9]*$' 3.10.0 3.10.1 3.10.2 3.10.3 3.10.4 3.10.5 3.10.6 3.10.7 3.10.8 3.10.9 3.10.10 3.10.11 3.10.12 3.10.13 3.10.14 3.10.15 $ pyenv install --list | grep -E '^\ *3.9.[0-9]*$' 3.9.0 3.9.1 3.9.2 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9 3.9.10 3.9.11 3.9.12 3.9.13 3.9.14 3.9.15 3.9.16 3.9.17 3.9.18 3.9.19 3.9.20 $ pyenv install --list | grep -E '^\ *2.7.[0-9]*$' 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 2.7.10 2.7.11 2.7.12 2.7.13 2.7.14 2.7.15 2.7.16 2.7.17 2.7.18 ------------------------------------------------------------ 【JavaScript処理系のバージョンを調べるコマンド】↑ $ jsc -e 'let v = version(); print(v); // Currently does nothing. It will return undefined.' undefined JSCやNode.jsなどのJavaScript環境を整えたい場合には、以下のページ(学内からのみ)を参照してください。 $ open -a 'Safari' http://bluetree.kyoto-su.ac.jp/repositories/AP/JavaScript/NodeVersionManager/index.html $ b2a open -a 'Safari' http://bluetree.kyoto-su.ac.jp/repositories/AP/JavaScript/NodeVersionManager/index.html $ nvm --version 0.39.1 $ node --version v16.16.0 $ nvm ls -> v16.16.0 default -> node (-> v16.16.0) iojs -> N/A (default) unstable -> N/A (default) node -> stable (-> v16.16.0) (default) stable -> 14.15 (-> v16.16.0) (default) lts/∗ -> lts/gallium (-> v16.16.0) lts/argon -> v4.9.1 (-> N/A) lts/boron -> v6.17.1 (-> N/A) lts/carbon -> v8.17.0 (-> N/A) lts/dubnium -> v10.24.1 (-> N/A) lts/erbium -> v12.22.12 (-> N/A) lts/fermium -> v14.20.0 (-> N/A) lts/gallium -> v16.16.0 JavaScript(Node.js)の最新LTSバージョンを示しておきます。 $ nvm ls-remote | grep -E 'Latest LTS' v4.9.1 (Latest LTS: Argon) v6.17.1 (Latest LTS: Boron) v8.17.0 (Latest LTS: Carbon) v10.24.1 (Latest LTS: Dubnium) v12.22.12 (Latest LTS: Erbium) v14.20.0 (Latest LTS: Fermium) -> v16.16.0 (Latest LTS: Gallium) ------------------------------------------------------------ 【Ruby処理系のバージョンを調べるコマンド】↑ $ ruby --version ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin20] 各種アプリケーションのRuby環境を整えたい場合には、以下のページ(学内からのみ)を参照してください。 $ open -a 'Safari' http://bluetree.kyoto-su.ac.jp/repositories/AP/Ruby/RubyVersionControl/index-j.html $ b2a open -a 'Safari' http://bluetree.kyoto-su.ac.jp/repositories/AP/Ruby/RubyVersionControl/index-j.html $ rbenv --version rbenv 1.2.0-16-gc4395e5 $ ruby --version ruby 3.0.4p208 (2022-04-12 revision 3fa771dded) [x86_64-darwin21] Rubyの安定バージョンを示しておきます。 $ rbenv versions * system (set by ~/.rbenv/version) 2.7.6 3.0.4 3.1.2 以下にインストール候補たちをリストしておきます。 $ rbenv install --list-all | grep -E '^\ *2.7.[0-9]*$' 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 $ rbenv install --list-all | grep -E '^\ *3.0.[0-9]*$' 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 $ rbenv install --list-all | grep -E '^\ *3.1.[0-9]*$' 3.1.0 3.1.1 3.1.2 ------------------------------------------------------------ 【集中型のソフトウェア構成管理(SCM:リポジトリ)であるSubversionのバージョンを調べるコマンド】↑ $ svn --version svn, version 1.10.4 (r1850624) compiled Dec 13 2019, 19:47:45 on x86_64-apple-darwin18.0.0 Copyright (C) 2019 The Apache Software Foundation. This software consists of contributions made by many people; see the NOTICE file for more information. Subversion is open source software, see http://subversion.apache.org/ The following repository access (RA) modules are available: * ra_svn : Module for accessing a repository using the svn network protocol. - with Cyrus SASL authentication - handles 'svn' scheme * ra_local : Module for accessing a repository on local disk. - handles 'file' scheme * ra_serf : Module for accessing a repository via WebDAV protocol using serf. - using serf 1.3.9 (compiled with 1.3.9) - handles 'http' scheme - handles 'https' scheme The following authentication credential caches are available: * Plaintext cache in ~/.subversion * GPG-Agent * Mac OS X Keychain なお、Xcode 12からは、Xcode本体にも、Command Line Toolsにも、Subversionが同包されなくなりました。 LTS版のSubversion(1.10.6)を設えたい場合には、以下のページ(学内からのみ)を参照してください。 $ open -a 'Safari' http://bluetree.kyoto-su.ac.jp/repositories/AP/Subversion/index.html $ b2a open -a 'Safari' http://bluetree.kyoto-su.ac.jp/repositories/AP/Subversion/index.html $ which -a svn | xargs -n 1 -I {} sh -cx '{} --version | head -n 2' + /usr/local/subversion/bin/svn --version + head -n 2 svn, version 1.10.6 (r1863367) compiled Jul 26 2020, 17:05:56 on x86_64-apple-darwin18.7.0 + /opt/subversion/bin/svn --version + head -n 2 svn, version 1.10.6 (r1863367) compiled Aug 20 2019, 12:18:38 on x86_64-apple-darwin18.2.0 + /usr/bin/svn --version + head -n 2 svn, version 1.10.4 (r1850624) compiled Dec 13 2019, 19:47:45 on x86_64-apple-darwin18.0.0 ------------------------------------------------------------ 【分散型のソフトウェア構成管理(SCM:リポジトリ)であるGit(ギット)のバージョンを調べるコマンド】↑ $ git --version git version 2.39.5 (Apple Git-154) ------------------------------------------------------------ 以上になります。
$ hash -r ; バージョンを確かめるコマンド
ここで(お釈迦さんに対して説法する…:蛇足かもしれませぬが…)、バージョンを確かめるコマンドを実行する直前に、hashコマンドに-rオプションをつけて実行することを説明しておきましょう。以降の文章を読む際に、どうかbashとhashを(bとhを)混同しないように注意してください。コマンドインタプリタbashには、すでに実行したことがあるコマンドの実行ファイル(たとえば、lsという名ならば、/bin/lsという実体:ファイルポインタ)を覚えておくハッシュ辞書(キャッシュテーブル)があります。実行を要請されたコマンド名をたよりに、毎回毎回いちいちコマンドサーチパス(これは「echo $PATH」で確認できます)を引いて、コマンドの実行ファイルを見つけ出しているのではないのです。
1回目の実行で判明したコマンドの実行ファイルを、コマンド名と実行ファイルのペアにしてキャッシュテーブルに記憶しておきます。そして、2回目以降では、まずコマンド名でキャッシュテーブルを引き、見つかれば記憶しておいた実行ファイルをすぐに実行します。見つからないときに限り、コマンドサーチパスを探します。つまり、bashにはコマンドを高速に見つけ出して実行する仕組み(メカニズム)が組み込まれているのです。組み込みコマンドhashに-rオプションをつけて実行すると、当該のキャッシュテーブルをチャラに(クリア)してくれます。すなわち、必ずコマンドサーチパスを引いて、最新の実行ファイルを見つけ出すことを強制します。
バージョンアップしたときは、下図に示すように、以前の実行ファイル(old)と最新の実行ファイル(new)の2つがあるわけで、bashのキャッシュテーブルには以前の実行ファイルが記憶されており、コマンドサーチパスを引けば最新の実行ファイルが見つかる、という状況は困るわけですよね。ですから、バージョンを確かめる直前に、bashのキャッシュテーブルをhash -rでチャラすることは、とても理にかなっていますでしょ。
ちなみに、キャッシュテーブルはbash毎に用意されますので、新しいターミナルのウィンドウを開ければ、新たなbashが動き出し、当該のキャッシュテーブルは空の状態であり、必ずコマンドサーチパスを引きます。ゆえに、バージョンアップの際に、別のターミナルを開いて、バージョンを確かめることも、たいへん理にかなっていますよね。