TL;DR: TOPdesk is geschreven in Java, en daardoor kun je TOPdesk prima op Linux draaien. In drie posts laat ik zien hoe je zelf een TOPdesk Virtual Appliance maakt en in een Linux-sandbox draait, gebruikmakend van gratis software.

In de vorige post (zie hier) heb ik de grote lijnen van het knutselproject DIY TOPdesk Virtual Appliance uitgelegd. In deze post laat ik zien hoe je een VM optuigt in Oracle VirtualBox, hoe je Oracle XE daarin installeert, en hoe je een kale TOPdesk erbij installeert. Deze handleiding is niet uitputtend; voldoende Linux-kennis is dus heel belangrijk.

Oracle Virtualbox installeren en VM aanmaken

Er zijn heel veel filmpjes en handleidingen over hoe je Oracle VirtualBox installeert en een VM aanmaakt. Het volgende filmpje is zowel duidelijk als vrij recent, en is daarom een prima beginpunt. Wel trekt ons project meer resources, dus let op de volgende details als je aan de slag gaat:

  • Om 04.40 : Omvang geheugen: kies 4096 MB
  • Om 05:43 : Vorm harde schijf: kies Fixed size
  • Om 05:55 : Omvang harde schijf: kies 30 GB
  • Om 08:12 : Shared folders: kun je overslaan
  • Om 11:08 : Linux is geïnstalleerd. Stop maar met kijken 😉

Java installeren

TOPdesk draait op java; installeer daarom de Oracle Java Development Kit in je nieuwe VM. Op Extranet (linkje hier) staat welke versie van Oracle Java precies ondersteund wordt door TOPdesk, en welke je dus moet installeren. Voor de versie van juni 2018 is dat 8u181. Let op! OpenJDK is de open source implementatie van Java, maar daarmee werkt (of in ieder geval werkte) TOPdesk niet. Zorg dus dat je de Oracle-implementatie van Java JDK installeert.

Verschillende Linux-distributies hebben verschillende installatiemethodes. Deze post is niet bedoeld om alles uit te leggen, en daarom geef ik twee links met uitleg: voor Ubuntu en voor CentOS. Gebruik je een andere Linux-distributie en kom je er niet uit? Google is your friend.

TOPdesk installeren

Op Extranet van TOPdesk, onder Downloads, kun je altijd de laatste versie van TOPdesk downloaden. Dit is nu nog een zip-file van 966MB, die binnenkort de legacy-installer wordt. In 2019 wordt deze installer uitgefaseerd, en dan moet iedereen de TOPdesk Virtual Appliance gaan gebruiken. Voor nu werken we nog wel met de zip-file.

  • Pak de zip-file uit in een tijdelijke directory.
  • Start de command line als root, en browse naar de tijdelijke directory.
  • Trap de installatie af met het volgende commando:
    java -jar "TOPdesk - June 2018.jar"
  • Installeer in /opt/TOPdesk/.
Over Oracle XE en Linux

We komen nu bij het moeilijke gedeelte. Oracle XE is de ontwikkelversie van de Oracle database. Het is voor het laatst geüpdatet in 2014 en het heeft allerlei beperkingen, maar voor projectjes zoals deze werkt het prima. Het is alleen jammer dat het installeren zo ingewikkeld is. Stappenplan in grote lijnen is als volgt:

  • Download het installatiebestand van Oracle XE
  • Maak een installeerbaar pakketje en installeer de software
  • Configureer de database-listener
  • Zet permissies en environment variables goed

In de praktijk zijn er enorme verschillen tussen de Linux-distributies. Voor Ubuntu is er deze handleiding, die wellicht niet meer actueel is. Voor Ubuntu is er ook een tweede handleiding; is wat recenter dan de eerste. Voor CentOS heb ik deze handleiding gevonden. Voor al deze drie handleidingen geldt: ik heb het niet getest, dus je bent op jezelf (en op Google) aangewezen. Zelf gebruik ik Arch Linux, met pacman als package manager. Dit is daarom de methode die ik hieronder in detail ga uitleggen.

Oracle XE pakketje maken (Arch Linux)
  • Zorg dat je een gratis Oracle-account hebt.
  • Download Oracle XE (vanaf hier); kies versie Oracle Database Express Edition 11g Release 2 for Linux x64, en sla op in een tijdelijke folder.
  • Op de Arch Linux User Repository (link) zijn installatiescripts oracle-xe.tar.gz (link) te vinden; sla deze op in dezelfde folder.
  • Pak het archiefje oracle-xe.tar.gz uit
    tar zxvf oracle.tar.gz
  • Bewerk het bestand PKGBUILD . Verander de zin
    source=('manual://download/file/from/oracle/page/oracle-xe-11.2.0-1.0.x86_64.rpm.zip' naar
    source=('oracle-xe-11.2.0-1.0.x86_64.rpm.zip'
  • Maak het installatiepakketje
    makepkg

Is alles goed gegaan? Dan heb je een bestand oracle-xe-11.2.0_1.0-4-x86_64.pkg.tar.xz van 264MB in je folder. Sla deze ergens goed op!

Installeer nu de software, als root, met het volgende commando
pacman -U oracle-xe-11.2.0_1.0-4-x86_64.pkg.tar.xz

Oracle XE configureren (Arch Linux)

Is de software eenmaal geïnstalleerd, dan moet je –eenmalig– de database-listener en andere instellingen van Oracle XE configureren. Hiervoor is een script, dat settings goed zet. Start de command line als root, en voer het volgende commando uit.
/etc/rc.d/oracle-xe configure

  • Kies bij Specify the HTTP port: 8080.
  • Kies bij Specify database listener port: 1521.
  • Kies bij Password een wachtwoord, en zorg dat je dat dat onthoudt of vastlegt. Dit wachtwoord heb je namelijk weer nodig wanneer je een nieuwe database voor TOPdesk aanmaakt.
  • Kies bij Start at boot: No.

Zet tenslotte een paar permissies en environment variables voor de user oracle goed. Dat doe je door de volgende commandos als root uit te voeren. Dit kun je uiteraard ook gescript doen.

mkdir -p /home/oracle
usermod -d /home/oracle oracle
chsh -s /bin/bash oracle
cd /home/oracle
cp /etc/skel/.bash_profile .
cp /etc/skel/.bashrc .
chown -R oracle.dba .
chmod -R go=u,go-w .
chmod go= .
echo 'export ORACLE_HOME=/usr/lib/oracle/product/11.2.0/xe' >> .bashrc
echo 'export ORACLE_SID=XE' >> .bashrc
echo 'export PATH=$ORACLE_HOME/bin:$PATH' >> .bashrc

De installatie is hiermee voltooid.
systemctl start oracle-xe start Oracle XE eenmalig
systemctl enable oracle-xe zorgt ervoor dat Oracle XE automatisch bij het opstarten van de VM start.

Gefeliciteerd!

Het Monster cq De Draak is nu geïnstalleerd. Je kunt nu je streekroman verder lezen. Volgende week laat ik zien hoe je een TOPdesk-database aanmaakt in Oracle XE, en hoe je die correct in TOPdesk laadt.


Rogier Visser

Rogier is zelfstandig TOPdesk-consultant en oprichter van Laansloot IT