2020年6月28日日曜日

macのemacsでSDカードにアクセスする方法


背景

macのemacsは、標準の設定でアイコンのダブルクリックやランチャーなどを通して起動した状態では、SDカードにアクセスできません。

SDカードにアクセスできるように権限を付与するのに苦労したので、備忘録を兼ねて方法を共有します。

使ったもの

mac 10.15.3 Catalina
emacs 26.3

方法1: ターミナルでemacsを起動する

ターミナルでコマンドを入力して起動したemacsは、ターミナル内で呼び出されているzshのアクセス権限を引き継ぐようで、SDカードにアクセスできます。

ターミナルは「command + スペース」で出てくるspotlightでterminalと入力すると起動できます。


ターミナルでemacsと入力してemacsを起動します。


そうして起動したemacsはSDカードにアクセスできます。


方法2: rubyにフルアクセス権限を付与する

アイコンのダブルクリックやspotlightで起動するmacのemacsは、rubyのスクリプトから呼び出されるようなので、rubyのアクセス権限を引き継ぎます。
そのため、rubyにフルアクセス権限を付与すると、上記の方法で起動したemacsもSDカードにアクセス出来るようになります。

参考: How to Restore File System Access in macOS Catalina

rubyの実行ファイルの場所は、ターミナルでwhichコマンドを利用することで特定できます。


/usr/bin/rubyにあると分かりました。

フルアクセス権限を付与するには、まず システム環境設定 -> セキュリティとプライバシー で設定画面を開きます。



セキュリティとプライバシー設定画面で プライバシー -> フルディスクアクセス を選び、編集できるように鍵マークを押してロックを解除し、追加のために+ボタンを押します。


/usr/bin/rubyを選ぶために、ファイル選択画面でMacintosh HDを選び / のファイル一覧を表示します。


/usrフォルダを選びたいのですが、何もしてないと出ません。


隠しファイルを表示するために command + shift + . を入力してください。
そうすると隠れていたファイルが表示され、/usrフォルタが見れるようになります。


/usr/bin/rubyを選び、開くを押してください。


セキュリティとプライバシーのフルディスクアクセス設定でrubyがチェックされている状態になれば設定完了です。


emacsを起動してSDカードにアクセスするとファイルを読めるようになっていると思います。


まとめ

ターミナルで起動するか、rubyにフルアクセス権限を付与することで、emacsでSDカードの情報を読み込めるようになりました。

0 件のコメント :