意外と参考記事がなかったのでメモを残します。 インストールまではスムーズですがその後のセキュリティ絡みのところが面倒でした。
前提
手順
1. Macfuseのインストール
$ brew install --cask macfuse
過去記事では macfuse ではなくosxfuse をインストールするものもありますが osxfuse has been succeeded by macfuse as of version 4.0.0.
ということのようなので macfuseをインストールします
2. Goのインストール
$ brew install gcsfuse
では、
gcsfuse: Linux is required for this software. libfuse: Linux is required for this software. Error: gcsfuse: Unsatisfied requirements failed this build.
となり、Apple SiliconのMacへは直接インストールできないのでGoをインストールしてビルドします。
$ brew install go
インストールできたらバージョン確認できるはずです
$ go version go version go1.22.0 darwin/arm64
3. gcsfuseのインストール
$ go install github.com/googlecloudplatform/gcsfuse@master
でインストールはすんなり完了
インストールできたら .zshrc でパスを追加します
export PATH=$HOME/go/bin:$PATH
参考記事に書かれている
GO111MODULE=auto go get -u github.com/googlecloudplatform/gcsfuse
だと、
go: go.mod file not found in current directory or any parent directory. 'go get' is no longer supported outside a module. To build and install a command, use 'go install' with a version, like 'go install example.com/cmd@latest'
となっちゃいます。古い情報になってしまっています
ちなみに、Go関連の環境変数は以下で確認できます。インストール後のデフォルト設定を変更する必要はありませんでした
$ go env GOPATH='/Users/xxx/go' GOROOT='/opt/homebrew/Cellar/go/1.22.0/libexec' GOTOOLDIR='/opt/homebrew/Cellar/go/1.22.0/libexec/pkg/tool/darwin_arm64'
4. Cloud Storage への Cloud Storage FUSE リクエストを認証する
Cloud Storage FUSE を使用して Cloud Storage バケットをマウントする | Google Cloud に書かれている通り、
$ gcloud auth application-default login $ gcloud auth login
でok
5. Macのシステム機能拡張を有効にする
ここがかなり面倒です。
この状態で 次の6.のステップでマウントしようとすると
となり、機能拡張を有効にする必要があることがわかります。
システム設定 > プライバシーとセキュリティ
から システム機能拡張を有効にする…
をクリックします
すると、
となり、起動セキュリティユーティリティを起動することになります。
起動セキュリティユーティリティの起動
メッセージの通り、システム終了させて電源ボタン押したままで起動させます。
手順はオフィシャルのページに書かれています
Appleシリコンを搭載したMacの起動ディスクのセキュリティ設定を変更する - Apple サポート (日本)
「起動オプションを読み込み中..」と表示されるまで電源ボタンを押し続けます。表示されたら電源ボタンは離してokです
- 「オプション」をクリック
- 「続ける」をクリック
- パスワードが分かっているユーザーを選択
- 選択して、「次へ」をクリック
- 上部メニューの 「ユーティリティ」から 「起動セキュリティユーティリティを起動」 をクリック
- 「セキュリティポリシーの設定に使用したいシステムを選択してください」と出るので ディスクを選択して 「ロック解除」をクリック
- セキュリティポリシー で 「低セキュリティ」を選択し、「確認済みの開発元から提供されたカーネル機能拡張のユーザ管理を強化」 をチェック
- OKをクリック
- 起動ディスクのメニューから「システム終了」をクリック
再起動後、
再び、システム設定 > プライバシーとセキュリティ を開き、
「App Storeと確認済みの開発元からのアプリケーションを許可」を選び、「開発元”Benjamin Fleischer”のシステムソフトウェアの読み込みがブロックされました」 を 「許可」します
新しいシステム機能拡張を使用するには再起動が必要です となるので 再度、Mac再起動させます。
6. バケットのマウント
お疲れさまでした。ここまでできたらあとはバケットをマウントするだけです
# マウント $ gcsfuse バケット名 マウント先ディレクトリ # アンマウント $ umount マウント先ディレクトリ
参考記事
- Cloud Storage FUSE をインストールする | Google Cloud
- Cloud Storage FUSE を使用して Cloud Storage バケットをマウントする | Google Cloud
- カメラワークによるクラウドストレージ(その1) – システム開発-写真撮影 | k.works®
- https://support.terra.bio/hc/en-us/community/posts/4404590323483-Mount-Google-bucket-to-Mac
- Appleシリコンを搭載したMacの起動ディスクのセキュリティ設定を変更する - Apple サポート (日本)
- GCS FUSEを使いローカルディレクトリとGCSを同期させる ~Mac~ #googlecloud - Qiita