How-To Install The KSUID Command Line Tool On A Mac
TODO: Add note that scripts in things like Expans likely won't see the go/bin path, the way around that is to copy the binary to the /usr/local/bin path
I'm using KSUIDs (K-Sortable Unique IDentifiers) instead of UUIDs for my globally unique identifier needs these days. They're shorter than UUIDs and they sort naturally by creation time which is handy for using them as blog post ids.
The directions for installing the command line tool didn't quite get me there. This is the process I used to get up and running.
First thing: you have to have Go installed. Directions for that are here: go.dev/doc/install
Once you've got Go, run the commands from the install section. At the time of writing this (early 2022), they are:
go get -u github.com/segmentio/ksuid
go install github.com/segmentio/ksuid/cmd/ksuid@latest
(Note: I had to add @latest
to get the install to work. I got an error without it.)
Those commands install the tool on your $GOPATH
which is not a regular environmental variable. It also wasn't on my path by default so the ksuid
command didn't work when I tried to run it.
I fixed this by looking up the $GOPATH with:
go env GOPATH
That pointed me to a newly created go
directory in my home directory (i.e. /Users/alan/go
). The ksuid
executable was in a bin
subdirectory (i.e. `/Users/alan/go/bin/ksuid).
I added that path to my PATH by adding this line to the bottom of my ~/.zshrc
file (which would be ~/.bash_profile
or ~/.bashrc
if you're using bash
instead of zsh
)
export PATH="/Users/alan/go/bin:$PATH"
After that, running ksuid
from the command line worked like a champ.
References:
go install github.com/segmentio/ksuid/cmd/ksuid@latest
cp "" "/usr/local/bin/ksuid"