Sun

Installing GNOME desktop environment & VNC server

  1. Home
  2. Knowledge Base
  3. Hosting
  4. VPS Hosting
  5. Tutorials
  6. Installing GNOME desktop environment & VNC server

Installing GNOME desktop environment & VNC server

This guide uses Ubuntu version 12.04 LTS so there may be extra steps for different versions. Recommended VPS specifications: Our “Minimal” plan.  Our VPS hosting prices start at $2.99 a month →

Update your repository source file

This is a very simple action. Just edit the sources.list file:

nano /etc/apt/sources.list

Delete everything inside and paste this:

deb http://ubuntu-archive.mirror.serveriai.lt/ precise main restricted universe
deb http://ubuntu-archive.mirror.serveriai.lt/ precise-updates main restricted universe
deb http://ubuntu-archive.mirror.serveriai.lt/ precise-security main restricted universe multiverse
deb http://archive.canonical.com/ubuntu precise partner

Save and proceed to next step.

Installing the GNOME environment

Using apt-get, first update your system packages to the latest versions before we proceed:

apt-get update
apt-get upgrade

Use apt-get to install GNOME and necessary font packages:

apt-get install gnome-core xfonts-100dpi xfonts-100dpi-transcoded xfonts-75dpi xfonts-75dpi-transcoded xfonts-base

Remove NetworkManager as this will overwrite our local name server settings and cause you to be unable to resolve domains:

apt-get remove network-manager

Installing and Configuring vnc4server

Using apt-get install vnc4server:

apt-get install vnc4server

Now we need to add a user that the desktop will be running under as well as create a password for that user. Please choose a strong password of minimum 8 characters in length using uppercase, lowercase, numbers and symbols:

adduser vncuser

After adding the user, we will need to create and edit the VNC server configuration to specify which user will be able to connect as well as what screen resolution they will use. You can change the screen resolution to any value. Common values are 1024×768, 1680×1050 and 1920×1080. You may want to reduce these values slightly less than your local PC’s screen resolution (Example: if using 1920×1080 at home, try setting your VNC resolution to 1900×960):

mkdir -p /etc/vncserver
touch /etc/vncserver/vncservers.conf
nano /etc/vncserver/vncservers.conf

Add the following lines to the file:

VNCSERVERS="1:vncuser"
VNCSERVERARGS[1]="-geometry 1024x768"

Since we’ll want the VNC server to start on boot, we’ll need to create a service for it. In the next steps, we’ll be creating a service script for this purpose. Simply copy and paste the code below into the file:

touch /etc/init.d/vncserver
chmod +x /etc/init.d/vncserver
nano /etc/init.d/vncserver

Contents of /etc/init.d/vncserver:

#!/bin/bash
### BEGIN INIT INFO
# Provides: vncserver
# Required-Start: $syslog
# Required-Stop: $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: vnc server
# Description:
#
### END INIT INFO

unset VNCSERVERARGS
VNCSERVERS=""
[ -f /etc/vncserver/vncservers.conf ] && . /etc/vncserver/vncservers.conf
prog=$"VNC server"

start() {
. /lib/lsb/init-functions
REQ_USER=$2
echo -n $"Starting $prog: "
ulimit -S -c 0 >/dev/null 2>&1
RETVAL=0
for display in ${VNCSERVERS}
do
export USER="${display##*:}"
if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
echo -n "${display} "
unset BASH_ENV ENV
DISP="${display%%:*}"
export VNCUSERARGS="${VNCSERVERARGS[${DISP}]}"
su ${USER} -c "cd ~${USER} && [ -f .vnc/passwd ] && vncserver :${DISP} ${VNCUSERARGS}"
fi
done
}

stop() {
. /lib/lsb/init-functions
REQ_USER=$2
echo -n $"Shutting down VNCServer: "
for display in ${VNCSERVERS}
do
export USER="${display##*:}"
if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
echo -n "${display} "
unset BASH_ENV ENV
export USER="${display##*:}"
su ${USER} -c "vncserver -kill :${display%%:*}" >/dev/null 2>&1
fi
done
echo -e "\n"
echo "VNCServer Stopped"
}

case "$1" in
start)
start $@
;;
stop)
stop $@
;;
restart|reload)
stop $@
sleep 3
start $@
;;
condrestart)
if [ -f /var/lock/subsys/vncserver ]; then
stop $@
sleep 3
start $@
fi
;;
status)
status Xvnc
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
exit 1
esac

Register the service:

update-rc.d vncserver defaults 99

Now we must create a VNC connection password for our user. First, we will use the su command to login to the user’s shell and use the vncpasswd to set the password:

su vncuser
vncpasswd

We need to start then stop the server to generate a configuration file:

vncserver :1; vncserver -kill :1

After we’ve generated the configuration file, we must edit it so that GNOME is loaded when we connect:

nano ~/.vnc/xstartup

Edit the file or replace its contents so that they look like the code below and save:

#!/bin/sh

# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
gnome-session --session=gnome-classic &

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
# x-window-manager &

Drop back to root shell:

exit

Start the VNC service:

service vncserver start

Connecting to your VNC server from your local PC

To connect to your newly operational server, you will need a VNC client. We recommend TigerVNC:

TigerVNC Client for Windows: http://sourceforge.net/projects/tigervnc/files/latest/download

When connecting using this software, you will need to specify the port for connecting. If using the configuration above, this port will be 1. In the server field of the client, you can enter the port like this Your_server_IP:1

Was this article helpful?

Related Articles