macOSでswiftlyのインストール場所を変更する
swiftlyはSwiftのtoolchainを簡単にインストール・管理するための公式ツールです。
このswiftlyを、ホームディレクトリではなく~/.local/share以下に配置する方法を紹介します。
swiftlyはswift.org/install/macosのスクリプトを実行するだけで簡単にインストールできますが、通常~/.swiftlyにインストールされます。
私は普段.local/shareをなるべく使うようにしており、.local/share/swiftlyにインストールしたいと思いました。ただ、swiftlyのインストール先を変更するのにちょっとしたコツが必要でしたので、こちらに記録しておきます。
1. swiftly.pkgを取得する
まず、swiftly.pkgから~/.swiftlyにインストールします。
curl -O https://download.swift.org/swiftly/darwin/swiftly.pkg && \
installer -pkg swiftly.pkg -target CurrentUserHomeDirectory
2. swiftlyを初期化する
ここがポイントです。インストール場所をSWIFTLY_HOME_DIRとSWIFTLY_BIN_DIRで指定した上でswiftly initを実行します。
set -x SWIFTLY_HOME_DIR "$HOME"/.local/share/swiftly
set -x SWIFTLY_BIN_DIR "$HOME"/.local/share/swiftly/bin
~/.swiftly/bin/swiftly init
source "$SWIFTLY_HOME_DIR/env.fish"
なお、SWIFTLY_TOOLCHAINS_DIRでtoolchainsの場所も変えられます。
...
set -x SWIFTLY_TOOLCHAINS_DIR "$HOME"/.local/share/swiftly/toolchains
~/.swiftly/bin/swiftly init
3. ~/.swiftlyを削除する
rm -fr ~/.swiftly
4. 動作確認
which swiftly
# /your/home/.local/share/swiftly/bin/swiftly
swiftly list
# Installed release toolchains
# ...
5. bash/zshのために設定する
Swift SDK for AndroidのためにAndroid Studioを使う場合、swiftlyへのパスを示すSWIFTLY_HOME_DIRをbash/zsh向けに設定する必要があるので気をつけましょう。そうしないと、~/.swiftly/config.jsonを読もうとしてエラーになります。
以上です!これでswiftlyをホームディレクトリ直下に置かずに利用できるようになりました。
swiftly initは繰り返し実行できるので、pkgをインストールせずとも、同じようにSWIFTLY_HOME_DIRとSWIFTLY_BIN_DIRで指定し直してインストール場所を再度変更することもできます。(Toolchainはすでにインストール済みでも再インストールが必要になるようです)
.local/shareを活用して環境を整理したい方の参考になれば幸いです。
Discussion