今回の課題
$ brew install snowflake-snowsql --cask
コマンドでSnowSQLをインストールし、
$ snowsql -v
コマンドを実行したところ、以下のエラーが発生してしまったので解決する。
エラー1
$ snowsql -v
zsh: command not found
エラー2
$ snowsql -v
We were unable to create or write to the ../snowsql_rt.log_bootstrap. Make sure you have permission to write to the log file's parent folder or to modify the location of the log file specified in the SnowSQL log_file configuration option. See docs: https://docs.snowflake.com/en/user-guide/snowsql-config.html#log-file
Observed error: [Errno 13] Permission denied: '/Users/snowsql_rt.log_bootstrap'
エラーメッセージは、以下の不具合をお知らせしてくれていた。
./snowsql_rt.log_bootstrap を作成または書き込むことができませんでした。
ログファイルの親フォルダに書き込む権限があるか、
SnowSQL log_file 設定オプションで指定されたログファイルの場所を変更する権限があることを確認してください。
解決した方法
エラー1の解決方法
エイリアスを設定する
zshを使用するにあたって、パスが通っていないため、
.zshrc
にエイリアスを設定してパスを通す必要があるようだった。
vi
コマンドを実行して.zshrc
ファイルに以下を追記した。
$ vi ~/.zshrc
alias snowsql=/Applications/SnowSQL.app/Contents/MacOS/snowsql # ファイルにこちらを追記
.zshrc
ファイルのalias
は、コマンドの別名(エイリアス)を定義するための設定のこと。
以上のように.zshrc
ファイルを設定して、CLIにて以下のコマンドを実行すると、
$ snowsql -v
以下のコマンドが実行されるようになるというイメージ。
$ /Applications/SnowSQL.app/Contents/MacOS/snowsql -v
これがエイリアスを設定するということ。
以上のように進めたうえで、
改めてsnowsqlのバージョンを確認すると、バージョンが表示されるようになった。
$ snowsql -v
Version: 1.2.10
これで、エラー1は解決できた!
エラー2の解決方法
デフォルトのログファイルの保存場所を変更する
デフォルトのファイルのログファイルの保存先が../snowsql_rt.log
になっているが、
~/.snowsql/snowsql_rt.log
にする必要がある様子。
以下の記事を参考にvi
コマンドを実行して、
.snowsql
ディレクトリのconfig
ファイルのlog_file部分を変更して、
~/.snowsql/snowsql_rt.log
にログファイルが保存されるように設定をした。
$ vi ~/.snowsql/config
# main log file location. The file includes the log from SnowSQL main
# executable. #log_file = ../snowsql_rt.log # ここをコメントアウトし、
log_file = ~/.snowsql/snowsql_rt.log # こちらの行を追加する
※参考記事
おまけ
.zshrc
とは
zshの設定ファイルのこと。
このファイルを編集することで、zshの動作をカスタマイズすることができる。
具体的には.zshrc
ファイルには、以下のような内容が含まれる。
- シェルのエイリアスやショートカットコマンドの定義
- 環境変数の設定
- PATHの設定
- プロンプトの設定
- 起動時に自動実行されるコマンドやスクリプトの設定
これらの設定でzshシェルの動作や環境をカスタマイズすることで、
作業の効率を向上させたり、使いやすさを向上させたりすることができる。
まとめ
以上のように、発生したエラーを解決することができた。
snowsqlのパスを通すにあたって、自分のmacではzshを使用していたので、.zshrc
ファイルでエイリアスを設定する必要があった。
bashを使用している場合は、.bash_profile
ファイルで設定をする必要があり、使用しているシェルによって設定ファイルが異なるということを学ぶことができた。