Skip to content

Instantly share code, notes, and snippets.

@xtman
Last active December 24, 2015 01:19
Show Gist options
  • Save xtman/6722514 to your computer and use it in GitHub Desktop.
Save xtman/6722514 to your computer and use it in GitHub Desktop.
#!/bin/bash
ARC=`uname -m`
if [[ `echo $ARC | egrep 'i[3456]86'` ]]; then
ARC=i386
else
ARC=x86_64
fi
# NOMACHINE NX binary packages
URL_NX_ROOT=http://web04.nomachine.com/download/3.5.0/Linux
PKG_NXCLIENT=nxclient-3.5.0-7.${ARC}.tar.gz
URL_NXCLIENT=${URL_NX_ROOT}/${PKG_NXCLIENT}
PKG_NXNODE=nxnode-3.5.0-9.${ARC}.tar.gz
URL_NXNODE=${URL_NX_ROOT}/${PKG_NXNODE}
PKG_NXSERVER=nxserver-3.5.0-11.${ARC}.tar.gz
URL_NXSERVER=${URL_NX_ROOT}/EDS/${PKG_NXSERVER}
# FREENX-SERVER source package
DIR_FREENX=freenx-server-0.7.3
PKG_FREENX=freenx-server-0.7.3.tar.gz
URL_FREENX=http://aarnet.dl.sourceforge.net/project/freenx.berlios/${PKG_FREENX}
# FREENX debian patch
FREENX_PATCH=debian7-nomachine.diff
URL_FREENX_PATCH=https://www.dropbox.com/s/ycexfq2u1mysxva/debian7-nomachine.diff
# Install required packages
echo -n "Installing required packages: ssh patch expect cifs-utils xutils-dev rdesktop vncviewer..."
sudo apt-get update 1>/dev/null || exit 1
sudo apt-get install -y ssh patch expect cifs-utils xutils-dev rdesktop 1>/dev/null || exit 1
echo "done"
# Create a temp working directory
CUR_DIR=$(pwd)
TMP_DIR=$(mktemp -d)
# Install nomachine nxclient package
echo -n "Downloading ${URL_NXCLIENT}..."
cd $TMP_DIR
wget -q $URL_NXCLIENT 1>/dev/null || exit 1
echo "done"
echo -n "Extracting ${PKG_NXCLIENT} to /usr/NX..."
cd /usr
sudo tar -zxvf ${TMP_DIR}/${PKG_NXCLIENT} 1>/dev/null || exit 1
cd $TMP_DIR
echo "done"
# Install nomachine nxnode package
echo -n "Downloading ${URL_NXNODE}..."
cd $TMP_DIR
wget -q $URL_NXNODE 1>/dev/null || exit 1
echo "done"
echo -n "Extracting ${PKG_NXNODE} to /usr/NX..."
cd /usr
sudo tar -zxvf ${TMP_DIR}/${PKG_NXNODE} 1>/dev/null || exit 1
cd $TMP_DIR
echo "done"
# Install nomachine nxserver package
echo -n "Downloading ${URL_NXSERVER}..."
cd $TMP_DIR
wget -q $URL_NXSERVER 1>/dev/null || exit 1
echo "done"
echo -n "Extracting ${PKG_NXSERVER} to /usr/NX..."
cd /usr
sudo tar -zxvf ${TMP_DIR}/${PKG_NXSERVER} 1>/dev/null || exit 1
cd $TMP_DIR
echo "done"
# Install freenx-server
echo -n "Downloading ${URL_FREENX}..."
cd $TMP_DIR
wget -q ${URL_FREENX} 1>/dev/null || exit 1
echo "done"
echo -n "Extracting ${PKG_FREENX}..."
cd ${TMP_DIR}
tar zxvf ${TMP_DIR}/${PKG_FREENX} 1>/dev/null || exit 1
echo "done"
echo -n "Downloading patch for FreeNX..."
cd ${TMP_DIR}
wget -q ${URL_FREENX_PATCH} 1>/dev/null || exit 1
echo "done"
# Patch the source files: nxloadconfig Makefile node.conf.sample
echo -n "Patching FreeNX..."
cd ${TMP_DIR}/${DIR_FREENX}
patch -p1 < ../${FREENX_PATCH} 1>/dev/null || exit 1
echo "done"
# Compile and install
echo -n "Compiling FreeNX..."
make 1>/dev/null || exit 1
echo "done"
echo -n "Installing FreeNX..."
sudo make install 1>/dev/null || exit 1
echo "done"
[[ ! -e /usr/NX/bin/nxdesktop ]] && sudo ln -s /usr/bin/rdesktop /usr/NX/bin/nxdesktop
[[ ! -e /usr/NX/bin/nxviewer ]] && sudo ln -s /usr/bin/vncviewer /usr/NX/bin/nxviewer
# Run nxsetup
sudo /usr/NX/bin/nxsetup --install --setup-nomachine-key
# Install starup script
cd /etc/init.d
#if [[ -e /etc/init.d/nxserver ]]; then
# sudo insserv -r nxserver
#fi
echo -n "Installing startup script /etc/init.d/nxserver..."
sudo wget -q -O nxserver http://computingplugs.com/files/nxserver 1>/dev/null || exit 1
sudo chmod +x nxserver 1>/dev/null || exit 1
sudo insserv nxserver 1>/dev/null || exit 1
echo "done"
# Clean up
echo -n "Cleaning up..."
cd $CUR_DIR
rm -fr $TMP_DIR
echo "done"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment