So after playing with a Macbook Pro I decided to start doing something useful with it. The excellent MacPorts project has a lot of useful bits of software for doing unix-y development on. Things like RabbitMQ, PostgreSQL etc.
However, upon trying to install PostgreSQL 9.1 server, it ran into a fairly inexplicable error:
---< Staging postgresql91-server into destroot
Error: Target org.macports.destroot returned: shell command failed (see log for details)
The log revealed that it was failing on a chown
step, while trying to set the ownership of a directory to the postgres
user.
Taking a quick stroll through /etc/passwd
revealed no such user. However, there was a _postgres
user. Somewhere, something changed, and no-one updated the script.
I found the solution in this Apple listserver thread. If you can’t be bothered to read it, just do the following:
sudo dscl . -append /Users/_postgres RecordName postgres
sudo dscl . -append /Groups/_postgres RecordName postgres
sudo dscl . -change /Users/_postgres UserShell /usr/bin/false /bin/bash
And all will be well. Hopefully.