The following are a record of how i installed a Squeezebox (slimserver software) under Gentoo Linux.

Download the slimserver source tarball somewhere and then "su -" and:
  1. Unpack the source tarball into /usr/local, and rename it so you have a directory /usr/local/slimserver
  2. Change into the /usr/local/slimserver/Bin directory and run "./build-perl-modules.pl"
  3. Copy the startup script on this page and put it in /etc/init.d
  4. Copy the conf.d script on this page and put it in /etc/conf.d. Edit it and delete the "--d_scan" option (it generates too many messages for me)
  5. Make a user slim and a group slimserver.
  6. Make a directory /var/log/slimserver and make it owned by slim:slimserver ("chown slim:slimserver /var/log/slimserver"). Touch the file /var/log/slimserver/messages (and fix the ownership).
  7. Make a directory /var/cache/slimserver. Make it owned by slim:slimserver.
  8. Make a directory /var/run/slimserver. Make it owned by slim:slimserver.
  9. Touch the file /etc/slimserver.pref and change the ownership to slim:slimserver
  10. Test the startup script, "/etc/init.d/slimserver start" Check that your server runs. Note that you may need to use http://yourhostname:9000 or http://127.0.0.1:9000.
  11. If everything is ok add it to startup: "rc-update add slimserver default"
Upgrading is similar:
  1. Stop the current server: "/etc/init.d/slimserver stop"
  2. Move the directory /usr/local/slimserver to /usr/local/slimserver.old as a backup
  3. Unpack the source tarball into /usr/local and move or link it so you have a directory /usr/local/slimserver
  4. Change into the /usr/local/slimserver/Bin directory and run ./build-perl-modules.pl
  5. Restart the server, "/etc/init.d/slimserver start" Check that your server runs as above.
  6. Once you're certain it works delete the backup /usr/local/slimserver.old



FAQ

  1. Why does running /etc/init.d/slimserver stop produce a message "Failed to stop Slimserver"?
    Your slimserver is not creating the /var/run/slimserver.pid file when it is started. This results in the call to stop the daemon failing, because start-stop-daemon doesn't find the expected pidfile, and subsequent calls to restart the server failing since the file used to indicate which init.d processes are running wasn't deleted.
    If you're in that situation you can easily fix it and get to a cleanly stopped slimserver state by (as root of course):
    1. kill the actual slimserver process, if it's really still running: killall -QUIT slimserver.pl
    2. clean up the init.d state: rm /var/lib/init.d/started/slimserver
  2. Any permanent solutions to the above problem?
    The steps above create a /var/run/slimserver directory so it can be owned by the slimserver process, and thus it will not encounter permission problems trying to create the pidfile. The solution is thus to do exactly that, or change the pidfile definition in the /etc/init.d/slimserver file to use a directory the slimserver can write to.