some improvements
This commit is contained in:
parent
98057ae340
commit
d4c169aaa6
3 changed files with 66 additions and 59 deletions
65
build-go.sh
65
build-go.sh
|
|
@ -1,56 +1,62 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
if [ ${EUID} -ne 0 ]; then
|
set -x
|
||||||
echo "error: this script must be run as root" 1>&2
|
if [ $(id -u) -ne 0 ]; then
|
||||||
|
echo "error: this script must be run as root">&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
INSTALL="/usr/local"
|
install_dir="/usr/local"
|
||||||
GITHUB="https://github.com/golang/go/archive"
|
go_dir="${install_dir}/go"
|
||||||
|
url="https://github.com/golang/go/archive"
|
||||||
|
|
||||||
V14="go1.4.3"
|
v14="go1.4.3"
|
||||||
bootstrap="${INSTALL}/bootstrap-${V14}"
|
v14_sum="65e8d2ea08447f02f8b6ab63778e4d98586ac4fd676401dae0eda494c7829965"
|
||||||
TGZ14="${V14}.tar.gz"
|
bootstrap="${install_dir}/bootstrap-${v14}"
|
||||||
|
tgz14="${v14}.tar.gz"
|
||||||
|
path_v14="${install_dir}/${tgz14}"
|
||||||
|
|
||||||
Vnew="go1.12.4"
|
new="go1.12.9"
|
||||||
TGZnew="${Vnew}.tar.gz"
|
new_sum="c31433aa0bb01856c812d40a91336e25cbce2e50800eb9fe88a7adf0305f1a5b"
|
||||||
|
tgznew="${new}.tar.gz"
|
||||||
|
path_new="${install_dir}/${tgznew}"
|
||||||
|
|
||||||
rm -rf ${INSTALL}/go*
|
rm -rf ${go_dir}
|
||||||
|
|
||||||
if [ ! -d "${bootstrap}" ]; then
|
if [[ ! -d "${bootstrap}" ]]; then
|
||||||
wget -q ${GITHUB}/${TGZ14} -O ${INSTALL}/${TGZ14}
|
wget -q ${url}/${tgz14} -O ${path_v14}
|
||||||
tar xfz ${INSTALL}/${TGZ14} -C ${INSTALL}
|
if [[ "$(sha256sum ${path_v14}|cut -d" " -f1)" != "${v14_sum}" ]]; then
|
||||||
mv ${INSTALL}/go-${V14} ${bootstrap}
|
echo "error: wrong checksum: ${path_v14}">&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
tar xfz ${path_v14} -C ${install_dir}
|
||||||
|
mv ${install_dir}/go-${v14} ${bootstrap}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
wget -q ${GITHUB}/${TGZnew} -O ${INSTALL}/${TGZnew}
|
wget -q ${url}/${tgznew} -O ${path_new}
|
||||||
tar xfz ${INSTALL}/${TGZnew} -C ${INSTALL}
|
if [[ "$(sha256sum ${path_new}|cut -d" " -f1)" != "${new_sum}" ]]; then
|
||||||
mv ${INSTALL}/go-${Vnew} ${INSTALL}/${Vnew}
|
echo "error: wrong checksum: ${path_new}">&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
tar xfz ${path_new} -C ${install_dir}
|
||||||
|
mv ${install_dir}/go-${new} ${go_dir}
|
||||||
|
|
||||||
export CGO_ENABLED=0
|
export CGO_ENABLED=0
|
||||||
|
|
||||||
if [ ! -x "${bootstrap}/bin/go" ]; then
|
if [[ ! -x "${bootstrap}/bin/go" ]]; then
|
||||||
cd ${bootstrap}/src
|
cd ${bootstrap}/src
|
||||||
./make.bash &> /dev/null
|
./make.bash &> /dev/null
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export GOROOT_BOOTSTRAP=${bootstrap}
|
export GOROOT_BOOTSTRAP=${bootstrap}
|
||||||
|
|
||||||
if [ "$(uname -m)" == "x86_64" ]; then
|
[[ "$(uname -m)" == "x86_64" ]] && export GOARCH=amd64 || export GOARCH=386
|
||||||
export GOARCH=amd64
|
|
||||||
else
|
|
||||||
export GOARCH=386
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd ${INSTALL}/${Vnew}/src
|
cd ${go_dir}/src
|
||||||
./make.bash &> /dev/null
|
./make.bash &> /dev/null
|
||||||
|
|
||||||
rm -rf ${INSTALL}/go
|
export GOROOT=${go_dir}
|
||||||
mv ${INSTALL}/${Vnew} ${INSTALL}/go
|
|
||||||
#ln -s ${INSTALL}/go ${INSTALL}/${Vnew}
|
|
||||||
|
|
||||||
export GOROOT=${INSTALL}/go
|
|
||||||
export PATH=${PATH}:${GOROOT}/bin:~/go/bin
|
export PATH=${PATH}:${GOROOT}/bin:~/go/bin
|
||||||
|
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
|
|
@ -59,6 +65,7 @@ add this to your .bashrc/.profile:
|
||||||
export CGO_ENABLED=${CGO_ENABLED}
|
export CGO_ENABLED=${CGO_ENABLED}
|
||||||
export GOPATH=~/go
|
export GOPATH=~/go
|
||||||
export GOROOT=${GOROOT}
|
export GOROOT=${GOROOT}
|
||||||
|
export GO111MODULE=on
|
||||||
export PATH=\${PATH}:${GOROOT}:~/go/bin
|
export PATH=\${PATH}:${GOROOT}:~/go/bin
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
|
||||||
12
mk_chroot.sh
12
mk_chroot.sh
|
|
@ -84,8 +84,8 @@ userinfo ${user} || useradd -L ${user} -g ${user} -d /var/empty -s /sbin/nologin
|
||||||
|
|
||||||
rsync -aR $(ldd ${bin}|tail -n+4|awk '{print $7}') ${chr}
|
rsync -aR $(ldd ${bin}|tail -n+4|awk '{print $7}') ${chr}
|
||||||
|
|
||||||
daemon=$(basename ${bin})
|
base=$(basename ${bin})
|
||||||
cat <<EOF> /etc/rc.d/${daemon}
|
cat <<EOF> /etc/rc.d/${base}
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
daemon="/usr/bin/env -i /usr/sbin/chroot -u ${user} -g ${group} ${chr}"
|
daemon="/usr/bin/env -i /usr/sbin/chroot -u ${user} -g ${group} ${chr}"
|
||||||
|
|
@ -97,8 +97,8 @@ pexp="\${daemon_flags}"
|
||||||
rc_cmd \$1
|
rc_cmd \$1
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
chmod 0555 /etc/rc.d/${daemon}
|
chmod 0555 /etc/rc.d/${base}
|
||||||
|
|
||||||
rcctl enable ${daemon}
|
rcctl enable ${base}
|
||||||
rcctl set ${daemon} flags "/bin/${daemon}"
|
rcctl set ${base} flags "/bin/${base}"
|
||||||
rcctl start ${daemon}
|
rcctl start ${base}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
UNAME=$(uname)
|
UNAME=$(uname)
|
||||||
[ $(id -u) -ne 0 ] && { echo "error: this script must be run as root" 1>&2; exit 1; }
|
[ $(id -u) -ne 0 ] && { echo "error: this script must be run as root">&2; exit 1; }
|
||||||
|
|
||||||
echo "warning: this script will disable ssh password authentication"
|
echo "warning: this script will disable ssh password authentication"
|
||||||
echo -n "continue? [y/N] "
|
echo -n "continue? [y/N] "
|
||||||
|
|
@ -64,7 +64,7 @@ echo -n "enter your username "
|
||||||
read user
|
read user
|
||||||
|
|
||||||
if [ -z "${user}" ]; then
|
if [ -z "${user}" ]; then
|
||||||
echo "error: no user submitted" 1>&2
|
echo "error: no user submitted">&2
|
||||||
mv ${ssh_config}.bak ${ssh_config}
|
mv ${ssh_config}.bak ${ssh_config}
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
@ -79,7 +79,7 @@ echo "paste your full ssh public key "
|
||||||
read sshkey
|
read sshkey
|
||||||
|
|
||||||
if [ -z "${sshkey}" ]; then
|
if [ -z "${sshkey}" ]; then
|
||||||
echo "error: no ssh key submitted" 1>&2
|
echo "error: no ssh key submitted">&2
|
||||||
mv ${ssh_config}.bak ${ssh_config}
|
mv ${ssh_config}.bak ${ssh_config}
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
@ -101,7 +101,7 @@ case ${UNAME} in
|
||||||
esac
|
esac
|
||||||
|
|
||||||
if [ -z "$(ps aux -w | awk '/\/usr\/s?bin\/sshd/')" ]; then
|
if [ -z "$(ps aux -w | awk '/\/usr\/s?bin\/sshd/')" ]; then
|
||||||
echo "error: ssh service failed to restart" 1>&2
|
echo "error: ssh service failed to restart">&2
|
||||||
echo "please check for sshd config errors manually" 1>&2
|
echo "please check for sshd config errors manually">&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue