macOSでAUTO
2023/06/07
2023/06/07
このページでは、macOSにAUTO-07pを手作業でインストールする方法を紹介している。その後、AUTO-07pのインストール、動作確認、分岐計算、分岐図の表示までを、Codexとの対話によって進めるためのスキルを作成した。
スキルとソースコードは、次のGitHubリポジトリで公開している。
https://github.com/dueyama/auto-07p-codex
Codexで空の新規プロジェクトを開き、まず次のように依頼する。
このリポジトリを読み、提供されているCodexスキルをインストールして:
https://github.com/dueyama/auto-07p-codex
インストールが終わったら、次のメッセージでAUTO-07pの導入を依頼する。
analyze-bifurcations-with-auto スキルを使って、このプロジェクトにAUTO-07pをインストールし、動作を検証して。
まず試してみる場合は、
AUTO-07pのabデモを実行して、分岐図を見せて。
と依頼すればよい。独自の方程式についても、方程式と変化させたいパラメータをCodexに伝えることで、AUTOの入力作成、数値計算、分岐点の検出、結果の説明、分岐図の表示までを対話的に進められる。
AUTO本体は各プロジェクト内の .auto にインストールされ、シェルの設定ファイルは変更しない。現時点ではApple Silicon搭載macOSで検証している。LinuxやWindows上のWSLでも動作する可能性は高いが、まだ実機検証はしていない。
以下の本文は、従来の手動インストール方法の記録として残しておく。
AUTO を比較的最新の macOS に導入する場合の手順を書く。
実は、AUTOのマニュアル(後述)にインストールの仕方はあるのだけれども、結果として現在は不要と思われる 古いインターフェースを動かすために、色々インストールしないといけない風に書かれていて、泥沼にはまりそう。というか、はまった。結果として、それらは不要だとわかったので、そういう意味で価値があるかもしれない。
現状、私が Apple Silicon の mac を持っていないので、Intel ベースとなる。わからないが、恐らく Apple Silicon でも同様だと思う。(ネイティブで動くかどうかは別問題で、とりあえず動くという意味では動くのでは無いかということ。)mac に Xcode がインストールされていることを前提とする。なお、Xcode はインストール後に一度は起動しておくこと。そうしないと、コマンドラインから使う gcc 等のツールがインストールされない、というか、初回起動時にインストールされる。
AUTOのHPは恐らくここが本家なのだと思う。
http://indy.cs.concordia.ca/auto/
AUTOのソースコードは、 GitHub に置かれているようだ。上記ページからリンクがあるが、
である。最新は上記で、auto-07p をクリックし出てくるページの右上に Code という緑色ボタンがあり、その中の Download ZIP でソースコード全体がダウンロードされる。一方で、リリース版は、
https://github.com/auto-07p/auto-07p/releases/tag/v0.9.3
からダウンロードできる。2021/09/14現在、上記が最新リリースのようだ。
auto-0.9.3.tar.gz
をダウンロードし展開する。ファイルをダブルクリックで良いだろう。その後、Terminal を開き、先の展開したファイルのフォルダ内に移動する。そこで、
./configure
とする。私の場合、次の様なエラーが最後に出た。
checking for Fortran flag to compile .f90 files... unknown
configure: error: Fortran could not compile .f90 files
Fortran90 が入っていないということだ。AUTO本家のHPに GNU Fortran 95 へのリンクがある。これを入れてみる。
http://gcc.gnu.org/wiki/GFortran
わかりにくいページだが、Downloadとあり、 Binaries から macOS 用をダウンロードする。結局、次のリンクに移動することになる。
https://github.com/fxcoudert/gfortran-for-macOS/releases
ここに、 dmg ファイルがあるので、それをダウンロードする。ここにはARM版、すなわち Apple Silicon 用の物もある。これを使えば、Apple Silicon mac でもネイティブで動くのかも知れない。
この dmg ファイル(2021/09/13現在、gfortran-Intel-11.1-BigSur.dmg)をダブルクリックすると、gfortran.pkg があり、これでインストールする。セキュリティの関係で通常のダブルクリックでは警告が出てインストールできない。自己責任になるが、右クリックして出てくるポップアップの開くから開くことができる。するとインストールされる。
改めて、Terminal で
./configure
とすると、今回は成功するが、最後に次のメッセージがでる。
***************************************************
It was requested that the plotting utility PLAUT04
be compiled but the proper libraries (Coin3D and
SoQt or SoXt or Open Inventor and Open Inventor Xt)
and perhaps Motif libraries (libXm) could not be
found. The compilation of PLAUT04 is disabled.
***************************************************
これは、分岐図を描くPLAUT04 というソフトウェアが他のライブラリーに依存していることを示している。ただ、PLAUT04を使わなければ動く。PLAUT04は無くてもよい。最新のAUTOはPythonインターフェースを使ったものになっていて、分岐図も matplotlib を利用するようになっている。Terminal で、
make
とするとコンパイルされる。但し、次の様なエラーで停止する場合がある。
gfortran -g -O autlab.f90 utility.o -o ../bin/autlab
ld: library not found for -lSystem
collect2: エラー: ld はステータス 1 で終了しました
make[1]: *** [../bin/autlab] Error 1
make: *** [util] Error 2
その場合には、同じく Terminal 上で、
xcode-select --install
として、何らかの追加ソフトウェアをインストールする。この作業は、良く指摘されているのだが実際何が起こっているのかよくわからない。先のエラーメッセージからすると、Systemという名前のライブラリが少なくともインストールされているようだ。結構な時間がかかるような表示が出るが、放っておくと終了する。終了後改めて make とし最終的に、コンパイルが終わる。
さて、これで AUTO のマニュアルの Turorial の一つをやってみる。先のソースコードをダウンロードした次の場所から、0.9.3 のマニュアル auto.pdf をダウンロードする。
https://github.com/auto-07p/auto-07p/releases/tag/v0.9.3
12章の AUTO Demos : Tutorial の 12.2 cusp をその通りにやってみる。今、コンパイルした場所に居るとして、そこに新たにフォルダを作成する。
mkdir tmp
cd tmp
そして、AUTOを起動する。Pythonインターフェースだ。(この起動コマンドは、自分がフォルダのどこに居るかによる)
../bin/auto
すると次の画面になる。
daishin@mac tmp % ../bin/auto
Python 2.7.16 (default, Jun 18 2021, 03:23:53)
[GCC Apple LLVM 12.0.5 (clang-1205.0.19.59.6) [+internal-os, ptrauth-isa=deploy on darwin
Type "help", "copyright", "credits" or "license" for more information.
(AUTOInteractiveConsole)
AUTO>
その後、マニュアルに従うと、次の画面のように分岐図も含めてでた。Python は mac に標準で入っているもので問題ないようだ。気になる場合には、anaconda 等で最新の Python を入れると良いかもしれない。
後は、AUTOの使い方であるが、それはマニュアルを見て欲しい。簡単なチュートリアルを今後載せるかも知れないが、いつになるかはわからない。
追記:2023/06/07
先に ../bin/auto として auto を起動した。他の場所からどうやって起動するか?
起動のコマンドは、AUTO をどこにインストールしたかで起動の仕方が異なる。たとえば、私の場合には、
~/AUTO/auto/07p/bin/auto
で起動できる。あとは、マニュアルの指示に従えば良い。
ちなみに、この度 Apple Silicon のマシンで上記の手順を辿ったが、無事動いた。ただし、Python は最新のものを anaconda でインストールしてある。最新の macOS では Python が入っていないという話があった様な気がする。