Ink

Contents related to tech, hobby, etc

Dfinity SDKのインストールスクリプトを読んでみたメモ

|

Dfinity SDKのインストールスクリプトを読んでみたメモ

Internet Computerを使うためのSDKはDfinityからインストールスクリプトが公開されていますが、 インターネットに転がっているスクリプトを何も考えずに実行してはいけない のでとりあえず読んでみたメモです。

一応書いておくと、別にDfinityが何か悪事をしているとかそういうことではなく、 単純にネットに置いてあるものは自己責任で使用するものなので確認しているだけです。

又、コード自体は転記するとTerm of Useに引っかかるかもわからなかったので載せていません。 (日本の法律上は引用なら大丈夫だと思うけどそもそも日本の会社ではないので...)

全体の所感

特に変な部分はなく安全そうだなと個人的には判断しました。 あとスクリプトの書き方的な意味で「こういう方法があるのか...」となっています。

流石きちんと書かれている...(尚rustupのスクリプトを借りてきていることが明記されています)

main 関数にメインの処理を入れ、あとはユーティリティ関数が定義されている作りになっています。 コメントのつけ方的に元は別ファイルで管理してそう。

プログラムの流れ

main関数内部での流れについて

  1. ANSIエスケープが可能かどうかの判定

  2. フラグの読み込み

  3. 必要なコマンドの有無を確認

  4. LICENSEの同意確認

    1. 同意しないならば終了

  5. アーキテクチャの確認

    1. 非対応アーキテクチャなら終了

  6. アンインストールスクリプトのインストール

  7. SDKのダウンロード、展開、権限設定

  8. インストール(mv)

インストール先ディレクトリの選定

インストール先は以下の順番で選ばれます。

  1. DFX_INSTALL_ROOT の値

  2. /usr/local/bin

  3. (macの場合) /usr/local/bin

  4. /usr/bin

  5. $HOME/bin

3番、普通2番と同じなのでちょっとよくわかんないですね...

カスタマイズに使える環境変数

SDK installerの中では、いくつかの環境変数が使われています。

変数名利用方法
DFX_VERSIONDFX のバージョンを指定する
DFX_INSTALL_ROOTインストール先のディレクトリ

ちなみにアンインストーラーは $HOME/.cache/dfinity/uninstall.sh で固定らしいです。 (ハードコードされているのでスクリプトを弄らない限り変えることができない。)