- 投稿日:2020-05-27T20:49:47+09:00
[ssh] 公開鍵認証を使ってにRaspberryPi4に接続する
はじめに
mac -> rasbperrypi4 に ssh 接続を行うのに毎回アカウント情報入力するのも面倒なので、公開鍵認証を使って接続することにした。
今後、環境が変わるたびに調べるのもどうかと思ったので、備忘録として残す。環境
バージョン 備考 macOS 10.14.6 Mojave raspbian 10.3 Raspberry Pi4 ssh OpenSSH_7.9p1 Raspbian-10+deb10u2, OpenSSL 1.1.1d 10 Sep 2019 mac 側でやったこと
秘密鍵と公開鍵を生成する
使用するコマンド:
ssh-keygen
実行する内容:
RSA
方式の秘密鍵と公開鍵を作成する$ ssh-keygen -t rsa -b 2048
- オプション説明
オプション 概要 説明 -t 方式 作成する鍵の暗号化形式を「rsa」(デフォルト)、「dsa」「ecdsa」「ed25519」から指定する -b ビット数 作成する鍵のビット数を指定する(RSA形式の場合、デフォルトは2048bit) これで作業を行ったユーザのホームディレクトリ直下の
.ssh/
に次の構成で秘密鍵と公開鍵が作成された秘密鍵と公開鍵の配置先~/.ssh ├ id_rsa # 秘密鍵 └ id_rsa.pub # 公開鍵公開鍵を接続先に送りつつ authorized_keys に登録する
使用するコマンド:
ssh-copy-id
実行する内容:
- 接続先( RaspberryPi4 )のユーザIDとIPアドレスを指定して公開鍵ファイルを送る
$ ssh-copy-id -i ~/.ssh/id_rsa.pub pi@XXX.XXX.XXX.XXX # IP アドレスは RaspberryPi のもの
- オプション説明
オプション 概要 説明 -i 方式 コピーする鍵ファイルを指定する つないでみる
ここまでの作業で
- RaspberryPi4 に公開鍵が登録された
ので、実際に接続できるかを以下のコマンドで確認する。
使用するコマンド:
ssh
実行する内容:
- 接続先( RaspberryPi4 )のユーザIDとIPアドレスを指定して接続する
$ ssh -i id_rsa pi@XXX.XXX.XXX.XXX
- オプション説明
オプション 概要 説明 -i IDファイル 接続に使用する秘密鍵ファイルを指定する エイリアスを作って接続を簡単に
上記の方法でも問題なく接続できるが、これだと毎回
- 秘密鍵ファイル
- 接続先情報(ユーザID + IPアドレス)
を指定しなければならず面倒くさい。
というわけで、エイリアス を作って接続を簡便化する。エイリアスの作り方は以下のとおり。
config
ファイルの作成と編集$ vi ~/.ssh/config
- 編集内容
configファイルの中身Host pi # エイリアス名 HostName XXX.XXX.XXX.XXX # 接続先( IP アドレス ) User pi # 接続先のユーザ名 IdentityFile /Users/hogehoge/.ssh/id_rsa # 接続元の秘密鍵ファイルのフルパスつないでみる( エイリアス作成後 )
使用するコマンド:
ssh
実行する内容:
~/.ssh/config
で指定してエイリアスを指定して接続する$ ssh pi
パーミッション の変更
config ファイルのパーミッションが
666
とかだった場合、接続に失敗する。$ ls -l total 40 -rw-rw-rw- 1 hogehoge staff 87 5 19 23:05 config -rw------- 1 hogehoge staff 1856 5 19 22:40 id_rsa -rw-r--r-- 1 hogehoge staff 418 5 19 22:40 id_rsa.pub -rw-r--r-- 1 hogehoge staff 351 5 19 22:38 known_hosts $ ssh pi Bad owner or permissions on /Users/hogehoge/.ssh/configこういうときは、パーミッションを
644
もしくは600
に変えれば接続に成功する。$ chmod 600 config $ ls -l total 40 -rw------- 1 hogehoge staff 87 5 19 23:05 config -rw------- 1 hogehoge staff 1856 5 19 22:40 id_rsa -rw-r--r-- 1 hogehoge staff 418 5 19 22:40 id_rsa.pub -rw-r--r-- 1 hogehoge staff 351 5 19 22:38 known_hosts $ ssh pi Linux raspberrypi 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Wed May 27 20:32:51 2020 from XXX.XXX.XXX.NNN pi@raspberrypi:~ $RaspberryPi4 でやったこと
authorized_keys の登録を確認
以下に
authorized_keys
が登録されていることを確認する。~/.ssh └ authorized_keysパスワード認証を無効にする
せっかく公開鍵認証による接続ができるようになったので、従来行っていた
パスワード認証
を無効にしておく。
やることはsshd_config
の編集とsshd
の再起動。
sshd_config
の編集$ sudo vi /etc/ssh/sshd_config
- 編集内容
sshd_configの編集# 次の内容を追記する、もしくは yes -> no に変更する PasswordAuthentication no
ssh
の再起動$ sudo service ssh restartIPアドレスを固定する
IP アドレスが固定されていないと、RaspberryPi4 が起動するたびに IP アドレが変わってしまう可能性がある。
それだとクライアント( mac ) から接続できなくなるので、IP アドレスを固定しておく。やることは
dhcpd.conf
の編集。
dhcpd.conf
の編集$ vi /etc/dhcpcd.conf
- 編集内容
dhcpd.confの編集interface wlan0 static ip_address=XXX.XXX.XXX.XXX/24 # 固定値としたいIPアドレス static routers=XXX.XXX.XXX.NNN # ルーターのIPアドレス static domain_name_servers=XXX.XXX.XXX.NNN # DNS のIPアドレス # ipv6 については使ってないので設定しないおまけ
公開鍵認証による接続を行うクライアントを増やしたい場合
やることは上でやったことと同じ。以下の作業を行うことで実現できる。
- クライアント側で公開鍵と秘密鍵を生成する
- 生成した公開鍵をホスト( RaspberryPi4 に登録する )
クライアント側で公開鍵と秘密鍵を生成する
秘密鍵と公開鍵を生成する で実施したコマンドを実行し、公開鍵と秘密鍵を生成する。
生成した公開鍵をホスト( RaspberryPi4 )に登録する
生成した公開鍵を RaspberryPi4 に登録する。
ただし、このとき、RaspberryPi4 で パスワード認証を無効にする をやっていると、scp
で送ることもできない。
そういうときは、すでに公開鍵認証で接続可能なクライアントに公開鍵ファイルを送って、そこで登録してもらえば良い。登録の際は以下の様に
authorized_keys
に対して追記する。$ cat id_rsa.pub >> ~/.ssh/authorized_keys※念の為、作業前に
authorized_keys
はバックアップを取っておくと安心。参考
- 投稿日:2020-05-27T20:49:47+09:00
[ssh] 公開鍵認証を使ってRaspberryPi4に接続する
はじめに
mac -> rasbperrypi4 に ssh 接続を行うのに毎回アカウント情報入力するのも面倒なので、公開鍵認証を使って接続することにした。
今後、環境が変わるたびに調べるのもどうかと思ったので、備忘録として残す。環境
バージョン 備考 macOS 10.14.6 Mojave raspbian 10.3 Raspberry Pi4 ssh OpenSSH_7.9p1 Raspbian-10+deb10u2, OpenSSL 1.1.1d 10 Sep 2019 mac 側でやったこと
秘密鍵と公開鍵を生成する
使用するコマンド:
ssh-keygen
実行する内容:
RSA
方式の秘密鍵と公開鍵を作成する$ ssh-keygen -t rsa -b 2048
- オプション説明
オプション 概要 説明 -t 方式 作成する鍵の暗号化形式を「rsa」(デフォルト)、「dsa」「ecdsa」「ed25519」から指定する -b ビット数 作成する鍵のビット数を指定する(RSA形式の場合、デフォルトは2048bit) これで作業を行ったユーザのホームディレクトリ直下の
.ssh/
に次の構成で秘密鍵と公開鍵が作成された秘密鍵と公開鍵の配置先~/.ssh ├ id_rsa # 秘密鍵 └ id_rsa.pub # 公開鍵公開鍵を接続先に送りつつ authorized_keys に登録する
使用するコマンド:
ssh-copy-id
実行する内容:
- 接続先( RaspberryPi4 )のユーザIDとIPアドレスを指定して公開鍵ファイルを送る
$ ssh-copy-id -i ~/.ssh/id_rsa.pub pi@XXX.XXX.XXX.XXX # IP アドレスは RaspberryPi のもの
- オプション説明
オプション 概要 説明 -i 方式 コピーする鍵ファイルを指定する つないでみる
ここまでの作業で
- RaspberryPi4 に公開鍵が登録された
ので、実際に接続できるかを以下のコマンドで確認する。
使用するコマンド:
ssh
実行する内容:
- 接続先( RaspberryPi4 )のユーザIDとIPアドレスを指定して接続する
$ ssh -i id_rsa pi@XXX.XXX.XXX.XXX
- オプション説明
オプション 概要 説明 -i IDファイル 接続に使用する秘密鍵ファイルを指定する エイリアスを作って接続を簡単に
上記の方法でも問題なく接続できるが、これだと毎回
- 秘密鍵ファイル
- 接続先情報(ユーザID + IPアドレス)
を指定しなければならず面倒くさい。
というわけで、エイリアス を作って接続を簡便化する。エイリアスの作り方は以下のとおり。
config
ファイルの作成と編集$ vi ~/.ssh/config
- 編集内容
configファイルの中身Host pi # エイリアス名 HostName XXX.XXX.XXX.XXX # 接続先( IP アドレス ) User pi # 接続先のユーザ名 IdentityFile /Users/hogehoge/.ssh/id_rsa # 接続元の秘密鍵ファイルのフルパスつないでみる( エイリアス作成後 )
使用するコマンド:
ssh
実行する内容:
~/.ssh/config
で指定してエイリアスを指定して接続する$ ssh pi
パーミッション の変更
config ファイルのパーミッションが
666
とかだった場合、接続に失敗する。$ ls -l total 40 -rw-rw-rw- 1 hogehoge staff 87 5 19 23:05 config -rw------- 1 hogehoge staff 1856 5 19 22:40 id_rsa -rw-r--r-- 1 hogehoge staff 418 5 19 22:40 id_rsa.pub -rw-r--r-- 1 hogehoge staff 351 5 19 22:38 known_hosts $ ssh pi Bad owner or permissions on /Users/hogehoge/.ssh/configこういうときは、パーミッションを
644
もしくは600
に変えれば接続に成功する。$ chmod 600 config $ ls -l total 40 -rw------- 1 hogehoge staff 87 5 19 23:05 config -rw------- 1 hogehoge staff 1856 5 19 22:40 id_rsa -rw-r--r-- 1 hogehoge staff 418 5 19 22:40 id_rsa.pub -rw-r--r-- 1 hogehoge staff 351 5 19 22:38 known_hosts $ ssh pi Linux raspberrypi 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Wed May 27 20:32:51 2020 from XXX.XXX.XXX.NNN pi@raspberrypi:~ $RaspberryPi4 でやったこと
authorized_keys の登録を確認
以下に
authorized_keys
が登録されていることを確認する。~/.ssh └ authorized_keysパスワード認証を無効にする
せっかく公開鍵認証による接続ができるようになったので、従来行っていた
パスワード認証
を無効にしておく。
やることはsshd_config
の編集とsshd
の再起動。
sshd_config
の編集$ sudo vi /etc/ssh/sshd_config
- 編集内容
sshd_configの編集# 次の内容を追記する、もしくは yes -> no に変更する PasswordAuthentication no
ssh
の再起動$ sudo service ssh restartIPアドレスを固定する
IP アドレスが固定されていないと、RaspberryPi4 が起動するたびに IP アドレが変わってしまう可能性がある。
それだとクライアント( mac ) から接続できなくなるので、IP アドレスを固定しておく。やることは
dhcpd.conf
の編集。
dhcpd.conf
の編集$ vi /etc/dhcpcd.conf
- 編集内容
dhcpd.confの編集interface wlan0 static ip_address=XXX.XXX.XXX.XXX/24 # 固定値としたいIPアドレス static routers=XXX.XXX.XXX.NNN # ルーターのIPアドレス static domain_name_servers=XXX.XXX.XXX.NNN # DNS のIPアドレス # ipv6 については使ってないので設定しないおまけ
公開鍵認証による接続を行うクライアントを増やしたい場合
やることは上でやったことと同じ。以下の作業を行うことで実現できる。
- クライアント側で公開鍵と秘密鍵を生成する
- 生成した公開鍵をホスト( RaspberryPi4 に登録する )
クライアント側で公開鍵と秘密鍵を生成する
秘密鍵と公開鍵を生成する で実施したコマンドを実行し、公開鍵と秘密鍵を生成する。
生成した公開鍵をホスト( RaspberryPi4 )に登録する
生成した公開鍵を RaspberryPi4 に登録する。
ただし、このとき、RaspberryPi4 で パスワード認証を無効にする をやっていると、scp
で送ることもできない。
そういうときは、すでに公開鍵認証で接続可能なクライアントに公開鍵ファイルを送って、そこで登録してもらえば良い。登録の際は以下の様に
authorized_keys
に対して追記する。$ cat id_rsa.pub >> ~/.ssh/authorized_keys※念の為、作業前に
authorized_keys
はバックアップを取っておくと安心。参考
- 投稿日:2020-05-27T20:49:47+09:00
[RaspberryPi] 認証鍵による ssh 接続を行う
はじめに
mac -> rasbperrypi4 に ssh 接続を行うのに毎回アカウント情報入力するのも面倒なので、公開鍵認証を使って接続することにした。
今後、環境が変わるたびに調べるのもどうかと思ったので、備忘録として残す。環境
バージョン 備考 macOS 10.14.6 Mojave raspbian 10.3 Raspberry Pi4 ssh OpenSSH_7.9p1 Raspbian-10+deb10u2, OpenSSL 1.1.1d 10 Sep 2019 mac 側でやったこと
認証鍵を生成する
使用するコマンド:
ssh-keygen
実行する内容:
RSA
方式の秘密鍵と公開鍵を作成する$ ssh-keygen -t rsa -b 2048
- オプション説明
オプション 概要 説明 -t 方式 作成する鍵の暗号化形式を「rsa」(デフォルト)、「dsa」「ecdsa」「ed25519」から指定する -b ビット数 作成する鍵のビット数を指定する(RSA形式の場合、デフォルトは2048bit) これで作業を行ったユーザのホームディレクトリ直下の
.ssh/
に次の構成で秘密鍵と公開鍵が作成された秘密鍵と公開鍵の配置先~/.ssh ├ id_rsa # 秘密鍵 └ id_rsa.pub # 公開鍵公開鍵を接続先に送りつつ authorized_keys に登録する
使用するコマンド:
ssh-copy-id
実行する内容:
- 接続先( RaspberryPi4 )のユーザIDとIPアドレスを指定して公開鍵ファイルを送る
$ ssh-copy-id -i ~/.ssh/id_rsa.pub pi@XXX.XXX.XXX.XXX # IP アドレスは RaspberryPi のもの
- オプション説明
オプション 概要 説明 -i 方式 コピーする鍵ファイルを指定する つないでみる
ここまでの作業で
- RaspberryPi4 に公開鍵が登録された
ので、実際に接続できるかを以下のコマンドで確認する。
使用するコマンド:
ssh
実行する内容:
- 接続先( RaspberryPi4 )のユーザIDとIPアドレスを指定して接続する
$ ssh -i id_rsa pi@XXX.XXX.XXX.XXX
- オプション説明
オプション 概要 説明 -i IDファイル 接続に使用する秘密鍵ファイルを指定する エイリアスを作って接続を簡単に
上記の方法でも問題なく接続できるが、これだと毎回
- 秘密鍵ファイル
- 接続先情報(ユーザID + IPアドレス)
を指定しなければならず面倒くさい。
というわけで、エイリアス を作って接続を簡便化する。エイリアスの作り方は以下のとおり。
config
ファイルの作成と編集$ vi ~/.ssh/config
- 編集内容
configファイルの中身Host pi # エイリアス名 HostName XXX.XXX.XXX.XXX # 接続先( IP アドレス ) User pi # 接続先のユーザ名 IdentityFile /Users/hogehoge/.ssh/id_rsa # 接続元の秘密鍵ファイルのフルパスつないでみる( エイリアス作成後 )
使用するコマンド:
ssh
実行する内容:
~/.ssh/config
で指定してエイリアスを指定して接続する$ ssh pi
パーミッション の変更
config ファイルのパーミッションが
666
とかだった場合、接続に失敗する。$ ls -l total 40 -rw-rw-rw- 1 hogehoge staff 87 5 19 23:05 config -rw------- 1 hogehoge staff 1856 5 19 22:40 id_rsa -rw-r--r-- 1 hogehoge staff 418 5 19 22:40 id_rsa.pub -rw-r--r-- 1 hogehoge staff 351 5 19 22:38 known_hosts $ ssh pi Bad owner or permissions on /Users/hogehoge/.ssh/configこういうときは、パーミッションを
644
もしくは600
に変えれば接続に成功する。$ chmod 600 config $ ls -l total 40 -rw------- 1 hogehoge staff 87 5 19 23:05 config -rw------- 1 hogehoge staff 1856 5 19 22:40 id_rsa -rw-r--r-- 1 hogehoge staff 418 5 19 22:40 id_rsa.pub -rw-r--r-- 1 hogehoge staff 351 5 19 22:38 known_hosts $ ssh pi Linux raspberrypi 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Wed May 27 20:32:51 2020 from XXX.XXX.XXX.NNN pi@raspberrypi:~ $RaspberryPi4 でやったこと
authorized_keys の登録を確認
以下に
authorized_keys
が登録されていることを確認する。~/.ssh └ authorized_keysパスワード認証を無効にする
せっかく認証鍵による接続ができるようになったので、従来行っていた
パスワード認証
を無効にしておく。
やることはsshd_config
の編集とsshd
の再起動。
sshd_config
の編集$ sudo vi /etc/ssh/sshd_config
- 編集内容
sshd_configの編集# 次の内容を追記する、もしくは yes -> no に変更する PasswordAuthentication no
ssh
の再起動$ sudo service ssh restartIPアドレスを固定する
IP アドレスが固定されていないと、RaspberryPi4 が起動するたびに IP アドレが変わってしまう可能性がある。
それだとクライアント( mac ) から接続できなくなるので、IP アドレスを固定しておく。やることは
dhcpd.conf
の編集。
dhcpd.conf
の編集$ vi /etc/dhcpcd.conf
- 編集内容
dhcpd.confの編集interface wlan0 static ip_address=XXX.XXX.XXX.XXX/24 # 固定値としたいIPアドレス static routers=XXX.XXX.XXX.NNN # ルーターのIPアドレス static domain_name_servers=XXX.XXX.XXX.NNN # DNS のIPアドレス # ipv6 については使ってないので設定しないおまけ
認証鍵による接続を行うクライアントを増やしたい場合
やることは上でやったことと同じ。以下の作業を行うことで実現できる。
- クライアント側で公開鍵と秘密鍵を生成する
- 生成した公開鍵をホスト( RaspberryPi4 に登録する )
クライアント側で公開鍵と秘密鍵を生成する
認証鍵を生成する で実施したコマンドを実行し、公開鍵と秘密鍵を生成する。
生成した公開鍵をホスト( RaspberryPi4 )に登録する
生成した公開鍵を RaspberryPi4 に登録する。
ただし、このとき、RaspberryPi4 で パスワード認証を無効にする をやっていると、scp
で送ることもできない。
そういうときは、すでに認証鍵で接続可能なクライアントに公開鍵ファイルを送って、そこで登録してもらえば良い。登録の際は以下の様に
authorized_keys
に対して追記する。$ cat id_rsa.pub >> ~/.ssh/authorized_keys※念の為、作業前に
authorized_keys
はバックアップを取っておくと安心。参考
- 投稿日:2020-05-27T17:30:22+09:00
Macで出力される音も一緒に画面収録する方法。
Macで出力される音も一緒に画面収録する方法をご紹介します。
※この記事は以前noteに掲載したものです。Macで画面収録するときに、スピーカーから出力された音も一緒に画面収録したい、っていうことありませんか?
そんなときにはBackgroundMusicを使うと便利です。
このアプリでは、画面収録するときに音も一緒に収録する、以外にも、
MacにはないWindowsのミキサー機能のようなものがあります。このように、アプリごとに音量を調整できたりもします。
インストールの方法
音楽を再生しながら作業してる方は、インストールの時だけ一旦中断することをおすすめします。
ここからは、優雅に作業していきましょう。
①GitHubのページを開きます。
②「BackgroundMusic-0.3.2.pkg」をクリックして、ダウンロードを開始します。
③ダウンロードしたファイルを開いて、画面の指示に従ってインストールを進めていきます。
インストール中にこのような表示が出たら「OK」をノックノック(クリック)しましょう。
インストールが完了したらもう使わないので、ゴミ箱へ入れてしまいましょう。もちろんYES or YES!
上部のメニューバー を見てみましょう。
変なアイコン(左から3つ目)が出てるはずです。④システム環境設定>サウンド>出力を開くと自動的に「backgroundMusic」が選択されているはずです。
もし、選択されていたら、「内蔵スピーカー」を選択しましょう。
*すでに「内蔵スピーカー」が選択されていればOKです。⑤入力も同じように設定しましょう。
システム環境設定>サウンド>入力を開くと自動的に「backgroundMusic」が選択されているはずです。
もし、選択されていたら、「内蔵マイク」を選択しましょう。
*すでに「内蔵マイク」が選択されていればOKです。インストールはこれで終わりです!お疲れ様でした!
画面収録する時
では、画面収録する時の手順をご説明します。
①「Background Music」Appが起動していることを確認しましょう。
②メニューバー に表示されている?アイコンを、⌥(Option)キーを押しながらクリックします。
すると・・・
普段は表示されない、「入力装置」が表示されるではありませんか....!!
③出力装置/入力装置ともに「Background Music」を選択しましょう。
④メニューバー に見える「Background Music」をもう一回クリックして、
下の方に見える「Output Device」の項目内の「Internal Speakers」
(または、「Headphone」)を選択しましょう。*「Output Device」が表示されない時は、曲をちょっと流してみると出てくると思います...(多分)
⑤いよいよ画面収録です。Shift+⌘+5で画面収録を呼び出し、「オプション」をクリックして、「マイク」の項目を「Background Music」を選択するだけ!
⑥収録を開始しましょう!
これで解決!HAPPY HAPPYですね!
⑦収録を終えたら設定を戻しましょう...!③の画面で、「内蔵スピーカー」と「内蔵マイク」を選択するのをお忘れなく!
- 投稿日:2020-05-27T15:08:43+09:00
MacでFlexible Atomic Code(FAC)を使う
はじめに
Flexible Atomic Code(FAC)は相対論的なHartree-Fock法によってプラズマ中の原子過程や発光スペクトル等を計算してくれるソフトウェアパッケージ。
gfortranを使ってインストールする方法をメモ。bashでもzshでもどちらでもOK。以前にインストールしたg77が残っているとハマので注意。
2020/5/28 内容に間違いがあったので更新(configureのオプション)
参考
・FAC website(基本的に全ての情報はここにある。)
https://www-amdis.iaea.org/FAC/・他の原子コードとの比較についての解説
http://www.atomiccollision.jp/collision/syoutotsu/10_0701s.pdf環境
・macOS Catalina 10.15.4
準備
・App StoreからXcodeをダウンロードしてインストールしておく。
・Fortranコンパイラ(gfortran)が動作することを確認。ターミナルで$ gfortran -vと打ってgcc version 9.3.0 のように返ってくればok。
gfortran: command not found
と返ってくる場合は、gfortranをinstallする必要がある。gfortranのインストール(必要な場合のみ)
gfortranが入っていない場合は、以下の方法でインストールする。既にHomebrewが入っているひとは方法2がおすすめ。
方法1:バイナリパッケージでインストール(とりあえずの人向け)
https://github.com/fxcoudert/gfortran-for-macOS/releases
にアクセスして、gfortran 8.2 for Mojaveから、fortran-8.2-Mojave.dmgをダウンロード。gfortran.pkgを開いてインストールする。(for Catalinaはないが、for Mojaveで動くのでOK。2020/5/30)方法2:Homebrewでgccをインストールする(これからプログラミングの環境構築していきたい人向け)
Mac OS (Catalina) にHomebrewでgnuplot5をインストールを参考にして、まずHomebrewをインストールし、$ brew update $ brew install gccとすればgfortranがインストールされる。エラーが出る場合は参考ページの後半を参照のこと。
FACのインストール
Githubからソース(ZIPファイル)をダウンロードして解凍するとfac-masterフォルダができるので、適当な場所に保存。
https://github.com/flexible-atomic-code/facターミナルで、fac-masterディレクトリに移動し、
$ ./configure $ make $ sudo make installを順番に実行。
makeではたくさんwarningが出るがとりあえず無視して大丈夫そう。
$ which sfac /usr/local/bin/sfacとなれば成功。
さっそく計算してみよう。makeでエラーが出る場合(g77関連)
g77: Bad CPU type in executableが出る場合はfortranコンパイラとしてg77が呼ばれている。Catalinaでg77は動かないので、g77を削除する。まずwhichコマンドでg77の場所を調べる。
$ which g77 /usr/local/bin/であれば、
$ sudo rm /usr/local/bin/g77として削除。/usr/local/bin/の部分は環境によって異なるのでwhichで返ってきたPATHを入力する。
makeでエラーが出る場合(gfortran関係)
Undefined symbols for architecture x86_64: "__gfortran_concat_string", referenced from: _dhseqr_ in libmlapack.a(dhseqr.o) _dormbr_ in libmlapack.a(dormbr.o) _xermsg_ in libfac.a(xermsg.o) _dormlq_ in libmlapack.a(dormlq.o) _dormqr_ in libmlapack.a(dormqr.o) : : # いろいろ : clang: error: linker command failed with exit code 1が出る場合は、gfortranが正しくインストールされていない可能性が高い。
「gfortranのinstall」を再確認。