20211123のMacに関する記事は6件です。

M1MacのRosettaとARM環境にpyenv + pipenvの環境構築を行う

はじめに M1macパソコンが出始めて1年とちょっと?くらい経ちまして、待望の14inchと8GB以上のメモリが付けられる新型macbookproが発売されました。僕は今までintel製のmacbookを持っていたのですが、電池消費量や性能などの観点から買い替えを決意。一ヶ月経ってパソコンが届いたのですが、待っていたのは周りの人たちがたちが苦しんでいたM1macのpython環境構築でした。 さて、このM1macパソコン。pyenvが対応していなかったことからcondaを選択する人も多かったとお思います。しかし、調べてみるとpyenvって3.9系以上は対応しているのですね。でも3.9系ではなくそれより前のバージョンを使用したい人も多いはずです。機械学習を目的としてる人は特に。 この記事はたくさんあるサイトを確認して、それをまとめたものになります。 注意 ARM環境ではPythonは 3.9系以上 を入れることができます。 Rosetta環境では3.9系未満も入れることができます。 ARM環境で3.9系未満を入れる記事ではありません。ご了承ください この記事は Rosetta環境では3.9系やそれ未満をを、ARM系では3.9系を入れる記事です。 動作環境 & 使用するシステム チップ:M1 Pro メモリ:16GB バージョン:macOS Monterey 12.0.1 使用するシステム パッケージ管理:Homebrew pythonバージョン管理:pyenv ライブラリ管理:pipenv テキストエディタ:好きなものをお使いください。 Homebrewのインストール まずはHomebrewをインストールします。 Homebrewとは、パッケージ管理システムです。インストールからアンインストール・バージョンアップやバージョンダウンまで一元管理してくれるシステムです。 また、RosettaとARMでインストールするとき保存場所が違うのでARM版とRosetta版で二つインストールしてください。 インストールするときは下のコードをコピペしてください。 ARM64(Rosettaを使用していない)にインストール $ uname -m arm64 $ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ---- $ which brew opt/homebrew/bin/brew Rosettaにインストール 1. ターミナルを右クリック→ 1. ロゼッタを使用して開くのチェックボックスにチェックを入れる。(初めての時はインストールが始まる)→ 1. ターミナルを開く。  $ uname -m x86_64 $ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ---- $ which brew /usr/local/bin/brew PATHを通すため、.zshrcを編集 この時点で、このパソコンにはHomebrewが二つ存在している状態です。 この状態では、PATHが混乱して、ARMなのにRosetta版のHomebrewを用いたり逆が行われたりする可能性があるので しっかりと対策をしていかないといけません。そのために.zshrcを編集します。 以下を張り付けてください if [ "$(uname -m)" = "arm64" ]; then eval "$(/opt/homebrew/bin/brew shellenv)" export PATH="/opt/homebrew/bin:$PATH" else eval "$(/usr/local/bin/brew shellenv)" fi pyenvをインストール 続いてpyenvをインストールします。 $ brew install pyenv こちらもARMとRosetta両方インストールしてください。 PATHを通すため、.zshrcを編集 通常PyenvでPATHを通すときは3行くらい書けば問題ないのですが、Homebrewと同様ARMとRosettaでは保存場所が違うので、条件式を用いてインタラクティブに変更する必要があります。 以下を.zshrcに張り付けてください。 if [ "$(uname -m)" = "arm64" ]; then # arm64 export PYENV_ROOT="$HOME/.pyenv_arm64" export PATH="$HOME/.pyenv_arm64/bin:$PATH" eval "$(pyenv init -)" else # x86_64 export PYENV_ROOT="$HOME/.pyenv_x64" export PATH="$HOME/.pyenv_x64/bin:$PATH" eval "$(pyenv init -)" fi Pythonをインストールする ここまでくればあと少しです。 RosettaもARMも3.9系以上を入れる場合は、 $ pyenv install 3.9.1 この一行で済んでしまいます。(3.9.1の部分を変えればそのバージョンをインストールできます。) しかし、Rosettaで3.8系などをインストールするとき、先ほどのコードを入れると、 BUILD FAILED (OS X 12.0.1 using python-build 20180424) Inspect or clean up the working tree at /var/folders/63/b9w9wr5d1j1_00j80p_047jc0000gn/T/python-build.20211123225241.27371 Results logged to /var/folders/63/b9w9wr5d1j1_00j80p_047jc0000gn/T/python-build.20211123225241.27371.log Last 10 log lines: ret = sendfile(in, out, offset, &sbytes, &sf, flags); ^ ./Modules/posixmodule.c:10432:5: warning: code will never be executed [-Wunreachable-code] Py_FatalError("abort() called from Python code didn't abort!"); このようになってしまいます。そこで色々調べてみると、下のコマンドを発見しました。このコードでインストールすることができました。 3.8.2をインストール $ CFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix bzip2)/include -I$(brew --prefix readline)/include -I$(xcrun --show-sdk-path)/usr/include" LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix zlib)/lib -L$(brew --prefix bzip2)/lib" pyenv install --patch 3.8.2 < <(curl -sSL https://github.com/python/cpython/commit/8ea6353.patch\?full_index\=1) 上記コードに pyenv install --patch 3.8.2 があるのですが、ここの3.8.2を入れたいバージョンに変えてください。 これで python-build: use openssl@1.1 from homebrew python-build: use readline from homebrew Downloading Python-3.8.2.tar.xz... -> https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tar.xz Installing Python-3.8.2... patching file Misc/NEWS.d/next/macOS/2020-06-24-13-51-57.bpo-41100.mcHdc5.rst patching file configure Hunk #1 succeeded at 3382 (offset -44 lines). patching file configure.ac Hunk #1 succeeded at 498 (offset -12 lines). python-build: use readline from homebrew python-build: use zlib from xcode sdk Installed Python-3.8.2 to /Users/username/.pyenv_x64/versions/3.8.2 と出ていれば成功です! pipenvでディレクトリごとに環境を作成 ここからはarm環境でもRosetta環境でも好きな方をお使いください pipenvを使ってディレクトリごとに環境を作っていきます。これを行うことによって、Pythonのバージョンに合わせたライブラリを入れることができます。 3.8.2用の環境を作成 #Rosettaで開き、環境構築(ARMでもpipenvはinstallしてください) $ uname -m x86_64 $ brew install pipenv #新しくディレクトリを作成し、その中に環境を作成 $ mkdir test $ cd test $ pipenv --python 3.8.2 --- #仮想環境に入る $ pipenv shell --- # ライブラリをインストール $ pipenv install numpy pandas matplotlib --- これで仮想環境作成完了です。あとはvsCodeを使うなり、jupyterを使うなり好きなようにPythonを楽しんでください! RosettaとARMをコマンドで変更する。 毎度毎度閉じてロゼッタを使用して開くのチェックボックスを付けて起動したり、外して起動したり・・・面倒じゃないですか? これをコマンドで解決してしまいましょう。 .zshrcを編集します。 下のコードを書いてください。 alias x86='arch -x86_64 zsh' alias arm='arch -arm64e zsh' これで終了です。 $ x86 $ uname -m x86_64 $ pyenv versions *system 3.9.1 $ arm $ uname -m arm $ pyenv versions system 3.9.1 3.8.2 ・・・ このようにarmやx86と打つだけでシステムを切り替えることができます。 まとめ この記事では、RosettaとARM環境の両方にpythonを使えるように環境構築を施しました。 少々面倒な場所も多かったと思いますが、次開くときはとても楽にpythonを楽しめると思います。 良きPythonライフを~ノシ 参考にさせていただいたサイト
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Podmanの環境構築メモ【Mac】

はじめに 仕事でPodmanを触る機会があったので、このページを参考に環境構築をしたところ、 podman machine init で permission denied が発生して詰まったのでメモに残します。 同じ様に詰まった方の助けになれば幸いです。 環境 macOS : Monterey 12.0.1(Big Surでも同じ現象が起きていたので、アップグレードしました) Homebrew : 3.3.5 podman : 3.4.2 事象 $ brew install podman # 特にエラーもなくインストール完了 $ podman machine init Downloading VM image: fedora-coreos-35.20211029.2.0-qemu.x86_64.qcow2.xz: done Extracting compressed file Error: open /Users/XXX/.config/containers/containers.conf: permission denied permission denied?アクセス権見てみるか…と containersフォルダ の中を見てみると そもそも containers.conf がいらっしゃらない。 対処 とりあえず空のファイルを作ってみるも、特に改善の兆しが見えない。 /Users/XXX/.config/containers/containers.conf [containers] [engine] [machine] [network] [secrets] $ podman machine init Extracting compressed file Error: open /Users/XXX/.config/containers/containers.conf: permission denied ナンデ??ファイルツクッタノニ!! 冷静にアクセス権をじっくりと確認すると、 /Users/XXX/.config に自分のユーザー(XXX)がいない 事に気づき そのままFinderで .configフォルダに読み/書きの権限を付与 し さらに念の為containersフォルダをリネームして退避した後、再度initを実行すると… $ podman machine init Extracting compressed file お!?エラーにならない!! containers.confもinitコマンドでしっかり作成されている! さらに $ podman machine start INFO[0000] waiting for clients... INFO[0000] listening tcp://0.0.0.0:7777 INFO[0000] new connection from to /var/folders/81/1zq3g5b54zq2yycgpn8z398r0000gn/T/podman/qemu_podman-machine-default.sock Waiting for VM ... Machine "podman-machine-default" started successfully $ podman machine stop start も stop もできた!とこれで無事にスタートラインに立つことができました。 アクセス権がなかった原因は何だったのか? 心当たりと言えば、以前Macのユーザ名・ホームフォルダ名を変更したのでその弊害だったのか? 明確な原因がわからず少しモヤモヤしますが、私の場合は .configフォルダのアクセス権がなくpodman machine initが実行できなかった ので、もし同じ状況の方がいらっしゃいましたらお試しください。 ぼやき < 時間のない時に限って構築に躓く気がします…
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【環境構築】rbenvで指定バージョンのRubyにダウングレード【mac】

Macでrbenvを使用して指定バージョンのrubyにダウングレードしようと思ったのでメモ ちなみにHomebrewでrbenvは既にインストール済み。 チュートリアルのバージョンと自分の開発環境のバージョンを一致させたくて今回のダウングレードを実施することにしました。 (キャッチアップの際、色々エラーが出てきて、本来の主目的以外のところで時間をとられるのが面倒だなと思ってたので、「もうチュートリアルと一緒のバージョンに下げちゃえ」と思ったので、やむをえずダウングレードすることに)最善策ではないと思うので、良い子はマネしないでね 実行環境 Homebrew 3.3.2 ruby 2.6.8 → 2.5.0 にダウングレード 現在のRubyバージョンを確認 $ ruby -v ruby 2.6.8p205 (2021-07-07 revision 67951) [universal.x86_64-darwin21] 指定バージョンをインストール $ rbenv install 2.5.0 インストールされたか確認 $ rbenv versions * system 2.5.0 (set by /Users/user/.rbenv/version) とりあえずインストールは、されたっぽい。 切り替え可能にする $ rbenv rehash 環境によっては、要らないかもです。 私の環境だと必要でした! Rubyバージョンを切り替える $ rbenv global 2.5.0 Rubyバージョン切り替わったか確認 $ rbenv versions system * 2.5.0 (set by /Users/user/.rbenv/version) 設定できた 参考記事 rbenvでバージョンがうまく切り替わらなかった時にやったこと
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Intel Mac で HomeBrew のインストール先を変更したらエラーになった件

経緯 しばらく Mac を使っていなかったので、久しぶりに引っ張り出して環境を再構築してみました。ついでなので、Big Sur にしたのですが、今まで使っていた fink が未だに Big Sur に対応していなかったので、HomeBrew を試してみようかと思いました。 fink の時は /opt/sw 配下にインストールされていたので、試しに使って不要になったら/opt/swごと消せばよかったのですが、brew のデフォルトのインストール先は /usr/local です。/usr/local は OS のコマンドがインストールされている場所なので、汚したくありません。そこでこちらの記事を参考にインストール先を変更してみることにしました。 何が起きた? ところが、実際にインストールしてみると下記のエラーが発生してしまい、正常に動作しませんでした。 Error: Cannot install on Intel processor in ARM default prefix (/opt/homebrew)! どうやら、Apple Silicon が発売されたために、/opt/homebrewが Apple Silicon 用のデフォルトインストール先になってしまったようです。このディレクトリは ARM アーキテクチャ用に予約されてしまい、Intel アーキテクチャの Mac では使用できなくなってしまったようです。 この問題はこちらの issue でも報告されていました。 別のディレクトリにインストールしてみる インストール先のディレクトリを変えるだけなので、特に難しいところはありませんが、備忘録代わりにに作業メモを残しておきます。 まずは、インストール先のディレクトリを下記のように作成します。 mkdir -p /opt/homebrew/x86_64 cd /opt/homebrew あとは、インストールガイドに書いてあるコマンドを、ディレクトリを読み替えて実行していくだけです。インストール先を変えたので、インストールコマンドは下記のように変わります。 curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C x86_64 インストールできたら、後処理コマンドを順に実行します。 eval "$(x86_64/bin/brew shellenv)" brew update --force --quiet chmod -R go-w "$(brew --prefix)/share/zsh" これで正常にコマンドをインストールできる環境が整ったはずです。 最後に、毎回パスを通すのは面倒なので .bash_profile に下記を追記しておくと便利です。(書き込み先ファイルは使用しているシェルに合わせて読み替えてください。) echo 'eval "$(/opt/homebrew/x86_64/bin/brew shellenv)"' >> ~/.bash_profile コマンドをビルドできない場合 参考元の記事にも書いてありますが、コマンドインストール時にソースからビルドが必要になることがあります。コマンドラインツールをインストールしていない場合は、先にインストールしておいた方が無難だと思います。(XCodeをインストールしている人はもしかするといらないかも) sudo xcode-select --install ビルド時間について やはり、ソースからビルドが走るので時間がかかってしまいますね。マシンスペックにも依ると思いますが、依存関係が多いと一晩くらいかかることもあります。 fink の時も apt を使用しないでインストールする際はビルドが走るので、同じくらい時間がかかっていました。本格的に brew に乗り換える際は、/usr/local にインストールし直そうかと思います。 逆に、Apple Silicon に買い替えてしまえば、/usr/local を汚してしまう問題はパフォーマンスを犠牲にせずに解決しそうなので、その点は嬉しいですね。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

DockerをMultipassで構築[Mac]

Docker Desktopの代替案を探していたところMultipassがかなり良い感じだったので構築方法を記載しておきます。 Multipassとは Multipassは手軽・高速にUbuntu環境を作成する仮想環境で、Linux, Windows, Macで動作します。 ホスト環境 この内容を実施するとホストのMacには以下の影響があります。 Docker Desktopを使わない。 Mac上でdockerコマンドを使うとMultipass上のdockerが使用されます。 Ubuntu構築用にCPU,メモリ,ストレージ等のリソースが必要です。 Homebrewでmultipass, docker, docker-composeをインストールします。 ~/.sshディレクトリのconfigファイルに必要な記述を追記します。 ~/.sshディレクトリにsshファイルを作成します。 Ubuntuにホームディレクトリをマウントします(任意)。 Docker Desktopのように各種アクセス先はlocalhostではなく任意の名前.localでアクセスが出来るようになります。localhostと切り分けができるので個人的にはこちらの方が好みです。 MultipassがHypreKitを利用しているので他の仮想化アプリケーションは無くても構いません。(任意で別の仮想化アプリケーションを利用する方法もあるようです) 参考 https://medium.com/@gourneau_38759/docker-engine-with-multipass-on-macos-dc44ff09ffb2 必要なパッケージをインストール # もし、homebrewでdocker desktop及びdockerがインストールしてある場合は以下を実行で一旦削除 # brew uninstall --force docker docker-machine docker-compose brew install multipass docker docker-compose SSHファイル作成 multipass_dockerという任意の名前でSSHファイルを作成します。 your_email@example.comの箇所は必ず書き換えてください。メールアドレスである必要はありません。 ssh key gen https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/.ssh/multipass_docker # your_email@example.comは以下のようにuuidgenを使ってランダムな文字列を使っても良い # ssh-keygen -t rsa -b 4096 -C "$(uuidgen)" -f ~/.ssh/multipass_docker chmod 600 ~/.ssh/multipass_docker chmod 600 ~/.ssh/multipass_docker.pub yamlファイル作成 Ubuntu構成用に以下のコマンドをターミナルで入力してファイルを作成する。 # 作成した.pubファイルを変数に読み込む AUTHORIZED_KEYS=$(cat ~/.ssh/multipass_docker.pub ) # ヒアドキュメントでファイルを作成する cat > ./multipass_docker.yaml << _EOF_ --- locale: en_US.UTF8 timezone: Asia/Tokyo package_upgrade: true users: - name: ubuntu sudo: ALL=(ALL) NOPASSWD:ALL ssh-authorized-keys: - ${AUTHORIZED_KEYS} packages: - docker - avahi-daemon - apt-transport-https - ca-certificates - curl - gnupg - lsb-release runcmd: - sudo curl -fsSL https://get.docker.com | sudo bash - sudo systemctl enable docker - sudo systemctl enable -s HUP ssh - sudo groupadd docker - sudo usermod -aG docker ubuntu _EOF_ 構築 以下の様式でMultipassを使ったUbuntuを構築します。 multipass launch -c CPU -m メモリ量 -d ストレージ容量 -n 任意の名前 20.04 --cloud-init ./multipass_docker.yaml 以下のコマンドでUbuntuを構築します。今回はdockerという名前のマシンで作成しており、これ以降docker.localで直接アクセス出来るようになります。 dockerという名前は任意ですので、他の名前でもかまいません。その際はアクセス先が任意の名前.localになります。 multipass launch -c 2 -m 4G -d 40G -n docker 20.04 --cloud-init ./multipass_docker.yaml 構築できたか確認 # SSH接続をする。 # 念の為、以下を実行してログイン記録を削除。 ssh-keygen -R docker.local # sshファイルを使用してMultipassのインスタンスにログイン ssh -i ~/.ssh/multipass_docker ubuntu@docker.local # Multipassのインスタンスにログイン出来たら以下を実行してdockerがインストールされているか確認 docker info # 確認出来たらインスタンスから出る exit # SSH接続が出来ることが確認出来たら構成用に使用したyamlファイルは不要になるので削除する。 rm ./multipass_docker.yaml # 設定内容の確認 multipass info docker # 一覧表 multipass ls ~/.ssh/configファイルに追記 ssh ubuntu@docker.localコマンドでログイン出来るように~/.ssh/configファイルに以下を追記します。無い場合は新しく作成しましょう。 Host docker.local HostName docker.local IdentityFile ~/.ssh/multipass_docker User ubuntu Port 22 ログイン出来るか確認 multipass shell multipassコマンドで以下を実行することでログイン出来ます。 multipass shell docker # 確認出来たらインスタンスから出る exit sshでログイン # 念の為、以下を実行してログイン記録を削除。 ssh-keygen -R docker.local # ubuntuにログイン ssh ubuntu@docker.local # ログイン出来ることを確認出来たらインスタンスから出る。 exit .zshrcに追記 環境変数DOCKER_HOSTにUbuntuのアクセス先を記述することで、ホスト側でのdockerコマンドはUbuntuのものを使うように設定できます。.zshrcの末尾にでも追記しておくことで、ログイン時に設定されるようにしておきましょう。 # multipass docker export DOCKER_HOST="ssh://ubuntu@docker.local" [任意]ホームディレクトリをMultipass上にマウントする 作業しやすいようにホームディレクトリをUbuntu上にマウントします。 1回マウントしたらホストを再起動してもマウントし続けます。 # ホームをUbuntu上の同じ名前の階層(/Users/ユーザ名)にマウントする multipass mount ${HOME} docker:${HOME} # アンマウント # multipass unmount docker:${HOME} この作業は任意ですが、していない場合、docker上でDockerfileやdocker-compose.yamlと同階層のファイルをマウントしようとしてもMultipassの内部しか見えていない状態なので以下のようなエラーになります。 user@mac docker % docker-compose up [+] Running 1/0 ⠿ Container docker-xxxx-1 Created 0.0s Attaching to docker-xxxx-1 Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /Users/*** テスト nginxを使ってみる docker run --name nginx_test -d -p 8080:80 nginx # 以下で削除 # docker stop $(docker ps -aqf "name=nginx_test") # docker rm $(docker ps -aqf "name=nginx_test") アクセス この場合URLはhttp://docker.local:8080です。 外部からのアクセス 外部からアクセスするにはmultipass lsもしくはmultipass info dockerでIPv4項目を参照しましょう。 削除 multipassの削除は、deleteで一次削除、purgeで完全削除の2段階です。 deleteでゴミ箱に入れて、purgeでゴミ箱を空にする感じです。 # 削除は以下 multipass delete docker multipass purge
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

macOSでsudoをTouch IDで許可するためのスクリプトをGistからワンライナーで動かす

概要 MacBook AirやMacBook Proで、Touch IDが搭載されたモデルにおいて、ターミナルでsudoコマンドを使うときにTouch IDで許可できるようにするためのスクリプトです。 Qiitaの他の記事でも、いくつかあることを見たのですが自分のケースに合わなかったことと、複数回実行するケースもありそう(複数のmac、アップデート後、など)なのでスクリプトにしました。 書いたものとできること 書いたもの Gistに置いてあるものをこちらにもコピペしておきます。 #!/bin/sh # A shell script to enable sudo by "Touch ID" on macOS # tested on macOS 11.6 Big Sur TARGET_FILE=/etc/pam.d/sudo # skip if it is not run on macOS if [ 'Darwin' != `uname` ]; then echo "not on macOS platform. exit." exit 0 fi # check target file grep "auth sufficient pam_tid.so" $TARGET_FILE > /dev/null if [ $? -ne 1 ]; then echo "already has pam_tid.so line in ${TARGET_FILE}. do nothing." exit 0 fi # edit file with sed command. # with -i option, sed creates backup file on the same directory. sudo chmod +w ${TARGET_FILE} sudo sed -i '.bak' -e '2 i\ auth sufficient pam_tid.so' ${TARGET_FILE} if [ $? -ne 0 ]; then echo "an error occured. exit." exit 0 fi sudo chmod -w ${TARGET_FILE} echo "succeeds. see ${TARGET_FILE}." cat ${TARGET_FILE} できること /etc/pam.d/sudo ファイルの2行目に、Touch IDで認証するため、「auth sufficient pam_tid.so」という行を追加します。 動作前提 /etc/pam.d/sudo ファイルが、以下のような構成になっていることを前提としています。 # sudo: auth account password session auth sufficient pam_smartcard.so auth required pam_opendirectory.so account required pam_permit.so password required pam_deny.so session required pam_permit.so 試した環境 macOS Big Sur で書きました。 (2021/11/25追記: macOS Monmtereyでも動作することを確認しました。) uname -a Darwin MacBook-Air.local 20.6.0 Darwin Kernel Version 20.6.0: Mon Aug 30 06:12:20 PDT 2021; root:xnu-7195.141.6~3/RELEASE_ARM64_T8101 arm64 動かし方 方法1:上記スクリプトを手元に保存して実行 上記ファイルをご自身のmacOSで好みのファイル名をつけて保存します。 ファイルに実行権限をつけるか、"sh ファイル名" で実行します。 方法2:Gistからスクリプトをダウンロードして実行 まず、下記のワンライナーで指定されているGistファイルの内容を確かめ、実行してもよいか考える。 実行して良いと判断した場合、下記のワンライナーを実行する。(sudoコマンドを内部で使っているので、パスワードなりで許可してあげる) curl https://gist.githubusercontent.com/hrkt/1bbac50c84d99fdb07375d713587f864/raw/658ffd698a0d7552d160c9c5651757a96e874bc1/enable_sudo_by_touch_id.sh | sh 追記 2021/11/25 自分のMacをBig SurからMontereyにアップグレードで/etc/pam.d/sudoのからpam_tid.soの行がなくなっていたケースで、上記方法2.の実行でまたsudoにてTouch IDが使えるようになることを確認しました。 他の記事 検索して出てきた順にいくつか。~(を自分で書いちゃったあとに調べました)~ Touch ID搭載のMacでsudo実行時のパスワード入力をTouch ID化 ... 手動での手順が丁寧に示されています。 [Tips] MacのTouchIDでsudoコマンド認証を行う macOSの sudo で TouchID が使えるようにする(tmux内の利用も対応) ... スクリプトになっている例。tmuxを使われる方はこちらが参考になりそうです。 ターミナルでSudoのパスワード入力をTouchIDで実行する。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む