Clojure-Installation und Kompilieren der Messprogramme
Vorbereitung
Die folgenden Schritte sind als Vorbereitung des Kompilierens und zur Ausführung der Messprogramme notwendig.
Notwendige System-Pakete
sudo apt install default-jre curl rlwrap ant jq
Umgebungsvariablen
In der Datei /etc/environment
müssen, ggf. abhängig von der Kalibriereinrichtung, folgende Umgebungsvariablen definiert werden:
CE3-spezifisch:
DEVHUB_FACILITY=CE3
METIS_FACILITY=CE3
METIS_BUILD_ON_START='mpd-ce3-sputter,mpd-ce3-calib,mpd-ce3-bake_out,mpd-ce3-srg_vg'
SE3-spezifisch:
DEVHUB_FACILITY=SE3
METIS_FACILITY=SE3
METIS_BUILD_ON_START='mpd-se3-servo,mpd-se3-valves,mpd-se3-state,mpd-se3-expansion,mpd-se3-direct,mpd-se3-expansion_fm_fs,mpd-frs5-cmp_calib,mpd-srg,mpd-dkm_ppc4_calib'
Allgemein notwendig:
METIS_DEVHUB_URL='http://localhost:9009'
METIS_DEVPROXY_URL='http://localhost:8009'
METIS_LTMEM_HOST='localhost'
CAL_USR='cal'
CAL_PWD='<password>'
ADMIN_USR='admin'
ADMIN_PWD='<password>'
JAVA_TOOL_OPTIONS='-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2'
PYTHONWARNINGS='ignore:Unverified HTTPS request'
ELAB_TOKEN='???????????????????????????????????????????'
ELAB_HOST='elabftw.ptb.de'
Anmerkung: Die in /etc/environment
definierten Umgebungsvariablen gelten systemweit, können aber z.B. durch Einträge in der nutzereigenen Datei ~/.bashrc
überschrieben werden. Eine Kontrolle, um Widersprüche auszuschließen, ist empfehlenswert.
Clojure-Installation
curl -L -O https://github.com/clojure/brew-install/releases/latest/download/linux-install.sh
chmod +x linux-install.sh
sudo ./linux-install.sh
rm linux-install.sh
Anmerkung: Dieser Ablauf führt zur Installation der Clojure-Skripte und -Bibliotheken (siehe »Install Clojure«):
/usr/local/bin/clj
/usr/local/bin/clojure
/usr/local/lib/clojure
Kompilieren der jar-Dateien für die Messprogramme »devhub«, »devproxy« und »metis«
Angaben zum Proxy-Server
Der spätere Build-Prozess benutzt nicht oder nicht immer die übliche Umgebungsvariable https_proxy
beim Herunterladen externer Dateien unter Verwendung des Proxy-Servers. Um trotzdem erfolgreich zu sein, muss zusätzlich die folgende Konfigurationsdatei angelegt werden und die Angaben zum Proxy-Server enthalten:
mkdir -p ~/.m2
cat <<EOF >> ~/.m2/settings.xml
<?xml version="1.0" encoding="UTF-8"?>
<settings>
<proxies>
<proxy>
<id>ptb-proxy</id>
<active>true</active>
<protocol>http</protocol>
<host>webproxy.berlin.ptb.de</host>
<port>8080</port>
<nonProxyHosts>localhost|127.0.0.1|*.ptb.de|*.berlin.ptb.de</nonProxyHosts>
</proxy>
</proxies>
</settings>
EOF
Anmerkung: Die während des Build-Prozess heruntergeladenen Dateien werden typischerweise unterhalb von ~/.m2/
gepeichert.
Klonen des Programmcodes
Wegen der Übersichtlichkeit sollten die folgenden Git-Repositorien unterhalb eines Verzeichnisses (z.B. ~/myapps
) angelegt werden.
git clone https://$(printf %s 'USERNAME'|jq -Rr @uri):$(printf %s 'PASSWORD'|jq -Rr @uri)@gitlab1.ptb.de/vaclab/devproxy.git
git clone https://$(printf %s 'USERNAME'|jq -Rr @uri):$(printf %s 'PASSWORD'|jq -Rr @uri)@gitlab1.ptb.de/vaclab/devhub.git
git clone https://$(printf %s 'USERNAME'|jq -Rr @uri):$(printf %s 'PASSWORD'|jq -Rr @uri)@gitlab1.ptb.de/vaclab/metis.git
Anmerkung: Mithilfe der Konstrukte $(printf %s '????????'|jq -Rr @uri)
werden Nutzername und Password URL-encoded zu Bestandteilen der jeweiligen URL (siehe resultierender Eintrag in .git/config
). Damit erübrigt sich jetzt und später deren manuelle Eingabe.
Installation einer für »devhub« benötigten Java-Bibliothek:
git clone https://github.com/mikef5410/jvxi11.git
cd jvxi11
ant
# Der Fehler beim Erzeugen der Dokumentation wegen fehlendem Programm
# »javadoc« kann ignoriert werden.
cd ..
cp -pvr --parents jvxi11/external jvxi11/dist devhub/resources/
Anmerkung: Es ist nicht ausgeschlossen, dass sich die Erzeugung dieser Bibliothek auch automatisieren ließe, wenn man die Angaben in devhub/deps.edn
geeignet anpassen könnte/würde.
Erzeugen der jar-Dateien für die Messprogramme
cd devhub
git pull
./make_jar
cd ../devproxy
git pull
./make_jar
cd ../metis
git pull
./make_jar
Die gewünschten jar-Dateien befinden sich nach erfolgreichem Kompilieren jeweils im Verzeichnis target/
.