spamd: still running as root: user not specified with -u, not found, or set to root, falling back to nobody
plugin: eval failed: bayes: (in learn) locker: safe_lock: cannot create tmp lockfile /nonexistent/.spamassassin/bayes.lock.my.domain.6304 for /nonexistent/.spamassassin/bayes.lock: No such file or directory

This is because spamassassin is not being run as a particular user, or is being run as root. According to /usr/share/doc/spamassassin/README.spamd this is technically OK, but it's easier just to create a new user for spamd to run as. Create a new user with adduser --system, and then modify /etc/default/spamassassin (designed to be edited on Ubuntu):

Installing an X server to startup at boot

I tried installing a basic X server (called a "client") using sudo apt-get install xauth and sudo apt-get install xorg (as recommended by Ubuntu). However I couldn't get the X server to start at boot. I even tried creating a file /etc/init.d/xserver with the single command exec startx, but this didn't do anything unless I executed the script as a user (no, I don't know enough about init.d yet).

The solution was to install a display manager such as Gnome's. sudo apt-get install gdm followed by a sudo shutdown -r now, and now an X server was running at startup so I can do things like this: