20200527のMacに関する記事は5件です。

[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 restart

IPアドレスを固定する

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 については使ってないので設定しない

おまけ

公開鍵認証による接続を行うクライアントを増やしたい場合

やることは上でやったことと同じ。以下の作業を行うことで実現できる。

  1. クライアント側で公開鍵と秘密鍵を生成する
  2. 生成した公開鍵をホスト( RaspberryPi4 に登録する )

クライアント側で公開鍵と秘密鍵を生成する

秘密鍵と公開鍵を生成する で実施したコマンドを実行し、公開鍵と秘密鍵を生成する。

生成した公開鍵をホスト( RaspberryPi4 )に登録する

生成した公開鍵を RaspberryPi4 に登録する。
ただし、このとき、RaspberryPi4 で パスワード認証を無効にする をやっていると、scp で送ることもできない。
そういうときは、すでに公開鍵認証で接続可能なクライアントに公開鍵ファイルを送って、そこで登録してもらえば良い。

登録の際は以下の様に authorized_keys に対して追記する。

$ cat id_rsa.pub >> ~/.ssh/authorized_keys

※念の為、作業前に authorized_keys はバックアップを取っておくと安心。

参考

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[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 restart

IPアドレスを固定する

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 については使ってないので設定しない

おまけ

公開鍵認証による接続を行うクライアントを増やしたい場合

やることは上でやったことと同じ。以下の作業を行うことで実現できる。

  1. クライアント側で公開鍵と秘密鍵を生成する
  2. 生成した公開鍵をホスト( RaspberryPi4 に登録する )

クライアント側で公開鍵と秘密鍵を生成する

秘密鍵と公開鍵を生成する で実施したコマンドを実行し、公開鍵と秘密鍵を生成する。

生成した公開鍵をホスト( RaspberryPi4 )に登録する

生成した公開鍵を RaspberryPi4 に登録する。
ただし、このとき、RaspberryPi4 で パスワード認証を無効にする をやっていると、scp で送ることもできない。
そういうときは、すでに公開鍵認証で接続可能なクライアントに公開鍵ファイルを送って、そこで登録してもらえば良い。

登録の際は以下の様に authorized_keys に対して追記する。

$ cat id_rsa.pub >> ~/.ssh/authorized_keys

※念の為、作業前に authorized_keys はバックアップを取っておくと安心。

参考

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[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 restart

IPアドレスを固定する

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 については使ってないので設定しない

おまけ

認証鍵による接続を行うクライアントを増やしたい場合

やることは上でやったことと同じ。以下の作業を行うことで実現できる。

  1. クライアント側で公開鍵と秘密鍵を生成する
  2. 生成した公開鍵をホスト( RaspberryPi4 に登録する )

クライアント側で公開鍵と秘密鍵を生成する

認証鍵を生成する で実施したコマンドを実行し、公開鍵と秘密鍵を生成する。

生成した公開鍵をホスト( RaspberryPi4 )に登録する

生成した公開鍵を RaspberryPi4 に登録する。
ただし、このとき、RaspberryPi4 で パスワード認証を無効にする をやっていると、scp で送ることもできない。
そういうときは、すでに認証鍵で接続可能なクライアントに公開鍵ファイルを送って、そこで登録してもらえば良い。

登録の際は以下の様に authorized_keys に対して追記する。

$ cat id_rsa.pub >> ~/.ssh/authorized_keys

※念の為、作業前に authorized_keys はバックアップを取っておくと安心。

参考

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Macで出力される音も一緒に画面収録する方法。

Macで出力される音も一緒に画面収録する方法をご紹介します。
※この記事は以前noteに掲載したものです。

Macで画面収録するときに、スピーカーから出力された音も一緒に画面収録したい、っていうことありませんか?

そんなときにはBackgroundMusicを使うと便利です。
このアプリでは、画面収録するときに音も一緒に収録する、以外にも、
MacにはないWindowsのミキサー機能のようなものがあります。

alt

このように、アプリごとに音量を調整できたりもします。

インストールの方法

音楽を再生しながら作業してる方は、インストールの時だけ一旦中断することをおすすめします。

ここからは、優雅に作業していきましょう。

GitHubのページを開きます。

②「BackgroundMusic-0.3.2.pkg」をクリックして、ダウンロードを開始します。

alt

③ダウンロードしたファイルを開いて、画面の指示に従ってインストールを進めていきます。

alt

インストール中にこのような表示が出たら「OK」をノックノック(クリック)しましょう。

alt

インストールが完了したらもう使わないので、ゴミ箱へ入れてしまいましょう。もちろんYES or YES

alt

上部のメニューバー を見てみましょう。
変なアイコン(左から3つ目)が出てるはずです。

alt

④システム環境設定>サウンド>出力を開くと自動的に「backgroundMusic」が選択されているはずです。
もし、選択されていたら、「内蔵スピーカー」を選択しましょう。
*すでに「内蔵スピーカー」が選択されていればOKです。

⑤入力も同じように設定しましょう。
システム環境設定>サウンド>入力を開くと自動的に「backgroundMusic」が選択されているはずです。
もし、選択されていたら、「内蔵マイク」を選択しましょう。
*すでに「内蔵マイク」が選択されていればOKです。

インストールはこれで終わりです!お疲れ様でした!

画面収録する時

では、画面収録する時の手順をご説明します。

①「Background Music」Appが起動していることを確認しましょう。

②メニューバー に表示されている?アイコンを、⌥(Option)キーを押しながらクリックします。

すると・・・

alt

普段は表示されない、「入力装置」が表示されるではありませんか....!!

③出力装置/入力装置ともに「Background Music」を選択しましょう。

alt

④メニューバー に見える「Background Music」をもう一回クリックして、
下の方に見える「Output Device」の項目内の「Internal Speakers」
(または、「Headphone」)を選択しましょう。

*「Output Device」が表示されない時は、曲をちょっと流してみると出てくると思います...(多分)

alt

⑤いよいよ画面収録です。Shift+⌘+5で画面収録を呼び出し、「オプション」をクリックして、「マイク」の項目を「Background Music」を選択するだけ!

⑥収録を開始しましょう!

これで解決!HAPPY HAPPYですね!

⑦収録を終えたら設定を戻しましょう...!③の画面で、「内蔵スピーカー」と「内蔵マイク」を選択するのをお忘れなく!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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

image.png

ターミナルで、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」を再確認。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む