dtinstall - daemontools install script
0.76.3
# curl -L http://is.gd/_dtinstall | bashytnobody <[email protected]>
This script is free software. You can redistribute it and/or modify it under the same terms.
dtinstall - daemontools install script
0.76.3
# curl -L http://is.gd/_dtinstall | bashytnobody <[email protected]>
This script is free software. You can redistribute it and/or modify it under the same terms.
| #!/bin/sh | |
| # | |
| # dtinstall | |
| # version 0.76.3 by ytnobody <[email protected]> | |
| # | |
| # 2015/12/24 0.76.3 | |
| # - Modified to work under docker | |
| # 2014/09/03 0.76.2 | |
| # - Added a patch logic for compat to 64bit system | |
| # 2011/06/20 0.76.1 | |
| # - Added a logic that searches libc.so.6 | |
| # | |
| VERSION=0.76.3 | |
| die () | |
| { | |
| echo ERROR: $* > /dev/stderr | |
| exit | |
| } | |
| if [ -z "$(which patch)" ] ; then | |
| die "patch is not installed!" | |
| fi | |
| echo PROBING GLIBC | |
| if [ -z "$GLIBC_PATH" ] ; then | |
| GLIBC_PATH=$( find / -name libc.so.6 | sed -n 1p ) | |
| fi | |
| echo 'GLIBC_PATH = '$GLIBC_PATH | |
| echo VERSION CHECK | |
| GLIBC_VERSION=$( $GLIBC_PATH | perl -le ' | |
| my $line = <STDIN>; | |
| my ( $version ) = $line =~ /release version (.*?),/; | |
| my ( $major, $miner, $revision ) = split /\./, $version; | |
| print $major. sprintf( "%03d", $miner ). sprintf( "%03d", $revision ); | |
| ' ) | |
| echo "\t" glibc : $GLIBC_VERSION | |
| if [ $( whoami ) != "root" ] ; then | |
| die It can only root; | |
| fi | |
| mkdir -v /package | |
| cd /package/ | |
| wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz | |
| tar zxvf daemontools-0.76.tar.gz | |
| cd admin/daemontools-0.76/ | |
| if [ $GLIBC_VERSION -ge 2003002 ] ; then | |
| wget http://qmail.org/moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch | |
| patch -p1 < daemontools-0.76.errno.patch | |
| fi | |
| # patch for 64bit os (or under docker) | |
| rootproc=$(ps 1 | sed 1d | awk '{print($5)}') | |
| is_docker=1 | |
| if [ "$rootproc" == "/bin/init" ] || [ "$rootproc" == "/sbin/launchd" ] ; then | |
| is_docker=0 | |
| fi | |
| if [ ! -z $(uname -i | grep 64) ] || [ $is_docker == 1 ] ; then | |
| cat << EOF > ./compile/conf-cc | |
| gcc -O2 --include /usr/include/errno.h/ | |
| This will be used to compile .c files. | |
| EOF | |
| fi | |
| # install | |
| ./package/install |