As requested. Any comments or feedback appreciated.
# The packages I had installed at the time
(Linux From Scratch 6.6)
----------------------
Installed packages:
man-pages 3.23
GNU C Library 2.11.1
zlib 1.2.3
Binutils 2.20
gmp-5.0.0
mpfr-2.4.2
file 5.04
gcc 4.4.3
sed 4.2.1
pkg-config 0.23
ncurses 5.7.20081102
util-linux-ng 2.17
e2fsprogs 1.41.10
coreutils 8.4
iana-etc 2.30
m4 1.4.13
bison 2.4.1
procps 3.2.8
grep 2.5.4
readline 6.1
bash 4.1.0(1)-release
libtool 2.2.6b
gdbm 1.8.3
inetutils 1.7
perl 5.10.1
autoconf 2.65
automake 1.11.1
bzip2 1.0.5
diffutils 2.8.1
GNU Awk 3.1.7
findutils 4.4.2
flex 2.5.35
gettext 0.17
groff 1.20.1
gzip 1.4
iproute2 ss091226
kbd 1.15.1
less 436
make 3.81
man 2.5.6
module-init-tools 3.11.1
patch 2.6.1
psmisc 22.10
cracklib 2.8.15
shadow 4.1.4.2
sysklogd 1.5
sysVinit 2.86
tar 1.22
info (GNU texinfo) 4.13
udev 151
vim 7.2
LFS-Bootscripts-20100124
wget 1.12
bc 1.06
OpenSSL 0.9.8n
OpenSSH 5.3p1
which 2.20
Berkeley DB 4.8.26
tcp wrappers 7.6
portmap 6.0
nfs-utils 1.1.4
ntp 4.2.4p7
nasm 2.09.10 # This is available at www.nasm.us
# All of this must be done as root
# add new music group
Code:
--------------------
groupadd -g 90 music
--------------------
# add slimserver user
Code:
--------------------
useradd -c squeezeboxserver -d /usr/share/squeezeboxserver \
-g music -s /bin/false -u 115 squeezeboxserver
--------------------
# create some variables for the version and download locations.
Code:
--------------------
version=7.7
version_minor=1
nightly='http://downloads.slimdevices.com/nightly/'$version'/sc'
--------------------
# substitute latest build available at $nightly for build below
# 31084 was latest as of 7/21/2010
# 31555 was latest as of 11/28/2010
# 33757 was latest as of 12/16/2011
Code:
--------------------
build=33753
newdir=logitechmediaserver-$version.$version_minor-$build
tarfile=$newdir.tgz
--------------------
# Download squeezeboxserver (here, to /sources/other)
Code:
--------------------
cd /sources/other
wget $nightly/$build/$tarfile
--------------------
# We will install to /usr/share
Code:
--------------------
cd /usr/share/
tar xf /sources/other/$tarfile
--------------------
# Change ownership of files to the new user and group we set up
Code:
--------------------
chown -R squeezeboxserver:music $newdir
--------------------
# Create a soft link to squeezeboxserver to make updates easier,
# and make the new user and group own it
# (first remove any existing link for "squeezeboxserver")
Code:
--------------------
rm -f squeezeboxserver
ln -sv $newdir squeezeboxserver
chown squeezeboxserver:music -vh squeezeboxserver
--------------------
# First, ensure that perl has been compiled with thread support.
# Note that default compilation (under Linux From Scratch) is
# _without_ thread support. Enter the following to determine if
# perl was compiled with thread support. If perl does not have
# thread support built in, then re-compile perl with thread support
# before continuing.
Code:
--------------------
if ( perl --version | grep -iq multi )
then echo "perl has thread support - OK to continue" >&2
else echo "no thread support in perl - please re-compile" >&2
fi
--------------------
# make a directory to do our work ...
Code:
--------------------
cd squeezeboxserver/CPAN
mkdir repos
cd repos/
--------------------
# Get the sources for the software we are about to compile ...
Code:
--------------------
wget -r -nd -l1
http://svn.slimdevices.com/repos/slim/$version/trunk/vendor/CPAN
--------------------
# create a missing directory to avoid some warnings later...
Code:
--------------------
mkdir hints
--------------------
# build the software - go have a beer while you're waiting ...
Code:
--------------------
sh buildme.sh
cd ../..
--------------------
# Change the ownership of the files again ...
Code:
--------------------
chown -R squeezeboxserver:music .
--------------------
# make needed subdirectories and files
Code:
--------------------
NAME=slimserver
mkdir -pv /var/lib/$NAME/{playlist,plugin}
mkdir -pv /var/cache/$NAME
touch /var/log/$NAME.log
chown -Rv squeezeboxserver:music /var/{lib,cache}/$NAME /var/log/$NAME.log
--------------------
# modify bootscripts:
# /etc/rc.d/init.d/slimserver (new)
# /etc/rc.d/init.d/functions (revised)
# Here is my bootscript:
Code:
--------------------
#!/bin/sh
# on my system, rc_base=/etc/rc.d
# Begin $rc_base/init.d/slimserver
# Based on LFS fcron bootscript
#$LastChangedBy:
#$Date: 2011-12-17
. /etc/sysconfig/rc
# Above file available at:
# http://www.linuxfromscratch.org/lfs/view/development/scripts/apds01.html
. $rc_functions
# Above file available at:
# http://www.linuxfromscratch.org/lfs/view/development/scripts/apds02.html
PATH=/sbin:/bin:/usr/sbin:/usr/bin
NAME=slimserver
USER=squeezeboxserver
APPDIR=/usr/share/$USER
DAEMON=${APPDIR}/${NAME}.pl
GROUP=music
# substitute your music location below
AUDIODIR=/mnt/media/music
PLAYLISTDIR=/var/lib/$NAME/playlist
CACHEDIR=/var/cache/$NAME
LOGFILE=/var/log/$NAME.log
PREFSDIR=/var/lib/$NAME
PIDFILE=/var/run/$NAME.pid
PRIORITY="-12"
SLIMOPTS="--daemon"
DATEFORMAT="+%F %H:%M:%S"
CHARSET='en_US.ISO-8859-1'
case "$1" in
start)
boot_mesg "Starting $NAME..."
echo `date "$DATEFORMAT"` "$NAME starting." >> $LOGFILE
LANG="$CHARSET" $DAEMON \
--user $USER \
--group $GROUP \
--audiodir $AUDIODIR \
--playlistdir $PLAYLISTDIR \
--cachedir $CACHEDIR \
--logfile $LOGFILE \
--prefsdir $PREFSDIR \
--pidfile $PIDFILE \
--priority $PRIORITY \
--charset "$CHARSET" \
$SLIMOPTS >> $LOGFILE 2>&1
evaluate_retval
;;
stop)
boot_mesg "Stopping $NAME..."
killproc -p $PIDFILE $DAEMON
echo `date "$DATEFORMAT"` "$NAME stopped." >> $LOGFILE
;;
restart)
$0 stop
sleep 1
$0 start
;;
status)
statusproc -p $PIDFILE $DAEMON
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
# End $rc_base/init.d/slimserver
--------------------
# create links:
Code:
--------------------
ln -sv ../init.d/slimserver $rc_base/rc0.d/K20slimserver
ln -sv ../init.d/slimserver $rc_base/rc1.d/K20slimserver
ln -sv ../init.d/slimserver $rc_base/rc2.d/K20slimserver
ln -sv ../init.d/slimserver $rc_base/rc3.d/S50slimserver
ln -sv ../init.d/slimserver $rc_base/rc4.d/S50slimserver
ln -sv ../init.d/slimserver $rc_base/rc5.d/S50slimserver
ln -sv ../init.d/slimserver $rc_base/rc6.d/K20slimserver
--------------------
# Now you can start slimserver ...
Code:
--------------------
/etc/rc.d/init.d/slimserver start
--------------------
--
Thomas8675309
------------------------------------------------------------------------
Thomas8675309's Profile: http://forums.slimdevices.com/member.php?userid=23271
View this thread: http://forums.slimdevices.com/showthread.php?t=82583
_______________________________________________
unix mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/unix