🙃
go installしたがcommand not found。
凡ミス備忘録
go製マイグレーションツールをインストールしたが、コマンドが呼び出せなかったので備忘録として残す。恥ずかしながら、ただの凡ミスです。
ちなみに使いたかったのは、以下のツールのmysqldef
コマンドです。名前の通りMySQL用のコマンドですが、PostgreSQLも提供されていてそちらはpsqldef
。
まず状況を確認。
console
$ go install github.com/k0kubun/sqldef/cmd/mysqldef@latest
$ mysqldef --help
zsh: command not found: mysqldef
え?となり、すぐにググったが冷静に考えたらパスが通ってないか確認すれば調べる必要もなかった。。。
パスを確認して、パスを通す。
パスの確認の前に、ちゃんとインストールされているかどうかを確認しておく。
console
$ go env GOPATH
/Users/xxx/go
$ ls /Users/xxx/go/bin
go1.18 mysqldef <-いた!
GOBIN
を定義している場合はそのディレクトリにインストールされ、定義していなければ~/go/bin
にインストールされる。自分は定義していないので空で表示される。
$ go env GOBIN
インストールは完了している模様。
嫌な予感がしつつ、パスを確認。(grepで探すのが楽。)
console
$ echo $PATH
/Users/xxx/.nodebrew/current/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/Library/Apple/usr/bin:/usr/local/go/bin
あ、やべ。。。ない。
ということでパス追加。
console
$ export PATH="$HOME/go/bin:$PATH"
$ mysqldef --help
Usage:
mysqldef [options] db_name
Application Options:
-u, --user=user_name MySQL user name (default: root)
-p, --password=password MySQL user password, overridden by $MYSQL_PWD
-h, --host=host_name Host to connect to the MySQL server (default: 127.0.0.1)
-P, --port=port_num Port used for the connection (default: 3306)
-S, --socket=socket The socket file to use for connection
--password-prompt Force MySQL user password prompt
--enable-cleartext-plugin Enable/disable the clear text authentication plugin
--file=sql_file Read schema SQL from the file, rather than stdin (default: -)
--dry-run Don't run DDLs but just show them
--export Just dump the current schema to stdout
--skip-drop Skip destructive changes such as DROP
--skip-view Skip managing views (temporary feature, to be removed later)
--before-apply= Execute the given string before applying the regular DDLs
--config= YAML file to specify: target_tables
--help Show this help
--version Show this version
このままだとコンソール再起動した時にリセットされちゃうので、.zshrc
など各自環境のログインシェルの設定ファイルにexport PATH="$HOME/go/bin:$PATH"
を突っ込んでおく。
仕上げに読ませて、完了。
console
$ source ~/.zshrc
go製ツールをインストールするのは初だったので、焦った。
参考ページ
go install
について(※利用バージョンで仕様が違う可能性あるので注意)
Discussion