Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
14
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

@YAMADA_Masahiro

macOSをCatalinaにアップグレードしたら、Emacsが使えなくなった時の対処法

macOS を Catalina にアップグレードしたら、Emacs の dired で ~/Documents の中身を開こうとした時に、

Listing directory failed but `access-file' worked

なるエラーが出て、「書類」フォルダにアクセスできなくなっていました。

この度、この問題を解決する方法が分かったため、共有します。

環境

私の環境は次のとおりです。

  • macOS Catalina (Ver. 10.15.2)
  • GNU Emacs 26.3 (build 1, x86_64-apple-darwin18.2.0, NS appkit-1671.20 Version 10.14.3 (Build 18D109)) of 2019-09-02

問題解決の手順

  1. 画面左上のリンゴマークから「システム環境設定」を開く。
  2. 「セキュリティとプライバシー」を開く。
  3. 「プライバシー」タブを開く。
  4. ウィンドウの左半分の一覧から「フルディスクアクセス」を開く。
  5. ウィンドウの左下にある錠前をクリックして、ログインパスワードを入力する。
  6. これでウィンドウの右半分の一覧にアクセスできるようになるので、その一覧の下の「+」ボタンをクリックする。
  7. ファイル選択ダイアログが開くので、内蔵ドライブのルート(「Macintosh HD」など)を開く。
  8. ここで、⌘+⇧+[.](コマンド+シフト+ピリオド)を押して、隠しファイルも表示させる。
  9. 「/usr/bin」フォルダを選ぶ。(「usr」フォルダ→「bin」フォルダを選ぶということです。)
  10. 一番右の一覧から「ruby」を選ぶ。(ファイルがたくさんあるかもしれませんが、落ち着いて。アルファベット順に並んでいます。)
  11. 「プライバシー」タブに戻った時に一覧に「ruby」が追加されていることを確認する。
  12. ウィンドウの左下にある錠前をクリックして、再びセキュリティロックを有効にする。環境設定を終了する。

これで Emacs の dired から「書類」フォルダにアクセスできるようになっているはずです。

なぜこの方法で問題が解決するのか

Stack Exchange の記事によると、

Emacs.app actually launches using a ruby script. As a result, MacOS Catalina uses the permissions set for ruby, not the permissions for Emacs.app.

Emacs.app は Ruby のスクリプトを使って起動するため、OS は Ruby のパーミッションに基づいて Emacs のアクセス権を管理している、ということでしょうか?
ですので、Ruby への設定が効いてくる、と。

参考文献

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
14
Help us understand the problem. What are the problem?