|
|
|
|
|
|
|
# Clojure-Installation und Kompilieren der Messprogramme
|
|
# Clojure-Installation und Kompilieren der Messprogramme
|
|
|
|
|
|
|
|
## Vorbereitung
|
|
## Vorbereitung
|
|
|
|
|
|
|
|
Die folgenden Schritte sind als Vorbereitung des Kompilierens und zur Ausführung der Messprogramme notwendig.
|
|
Die folgenden Schritte sind als Vorbereitung des Kompilierens und zur Ausführung der Messprogramme notwendig.
|
|
|
|
|
|
|
|
### Notwendige System-Pakete
|
|
### Notwendige System-Pakete
|
|
|
|
|
|
|
|
```
|
|
```
|
|
|
sudo apt install default-jre curl rlwrap ant jq
|
|
sudo apt install default-jre curl rlwrap ant jq
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
### Umgebungsvariablen
|
|
### Umgebungsvariablen
|
|
|
|
|
|
|
|
In der Datei `/etc/environment` müssen, ggf. abhängig von der Kalibriereinrichtung, folgende Umgebungsvariablen definiert werden:
|
|
In der Datei `/etc/environment` müssen, ggf. abhängig von der Kalibriereinrichtung, folgende Umgebungsvariablen definiert werden:
|
|
|
|
|
|
|
|
**CE3-spezifisch:**
|
|
**CE3-spezifisch:**
|
|
|
|
|
|
|
|
```
|
|
```
|
|
|
DEVHUB_FACILITY=CE3
|
|
DEVHUB_FACILITY=CE3
|
|
|
METIS_FACILITY=CE3
|
|
METIS_FACILITY=CE3
|
|
|
METIS_BUILD_ON_START='mpd-ce3-sputter,mpd-ce3-calib,mpd-ce3-bake_out,mpd-ce3-srg_vg'
|
|
METIS_BUILD_ON_START='mpd-ce3-sputter,mpd-ce3-calib,mpd-ce3-bake_out,mpd-ce3-srg_vg'
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
**SE3-spezifisch:**
|
|
**SE3-spezifisch:**
|
|
|
|
|
|
|
|
```
|
|
```
|
|
|
DEVHUB_FACILITY=SE3
|
|
DEVHUB_FACILITY=SE3
|
|
|
METIS_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'
|
|
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:**
|
|
**Allgemein notwendig:**
|
|
|
|
|
|
|
|
```
|
|
```
|
|
|
METIS_DEVHUB_URL='http://localhost:9009'
|
|
METIS_DEVHUB_URL='http://localhost:9009'
|
|
|
METIS_DEVPROXY_URL='http://localhost:8009'
|
|
METIS_DEVPROXY_URL='http://localhost:8009'
|
|
|
METIS_LTMEM_HOST='localhost'
|
|
METIS_LTMEM_HOST='localhost'
|
|
|
CAL_USR='cal'
|
|
CAL_USR='cal'
|
|
|
CAL_PWD='<password>'
|
|
CAL_PWD='<password>'
|
|
|
ADMIN_USR='admin'
|
|
ADMIN_USR='admin'
|
|
|
ADMIN_PWD='<password>'
|
|
ADMIN_PWD='<password>'
|
|
|
JAVA_TOOL_OPTIONS='-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2'
|
|
JAVA_TOOL_OPTIONS='-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2'
|
|
|
PYTHONWARNINGS='ignore:Unverified HTTPS request'
|
|
PYTHONWARNINGS='ignore:Unverified HTTPS request'
|
|
|
ELAB_TOKEN='???????????????????????????????????????????'
|
|
ELAB_TOKEN='???????????????????????????????????????????'
|
|
|
ELAB_HOST='elabftw.ptb.de'
|
|
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.
|
|
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
|
|
## Clojure-Installation
|
|
|
|
|
|
|
|
```
|
|
```
|
|
|
curl -L -O https://github.com/clojure/brew-install/releases/latest/download/linux-install.sh
|
|
curl -L -O https://github.com/clojure/brew-install/releases/latest/download/linux-install.sh
|
|
|
chmod +x linux-install.sh
|
|
chmod +x linux-install.sh
|
|
|
sudo ./linux-install.sh
|
|
sudo ./linux-install.sh
|
|
|
rm linux-install.sh
|
|
rm linux-install.sh
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
Anmerkung: Dieser Ablauf führt zur Installation der Clojure-Skripte
|
|
Anmerkung: Dieser Ablauf führt zur Installation der Clojure-Skripte
|
|
|
und -Bibliotheken (siehe [»Install Clojure«](https://clojure.org/guides/install_clojure)):
|
|
und -Bibliotheken (siehe [»Install Clojure«](https://clojure.org/guides/install_clojure)):
|
|
|
|
|
|
|
|
```
|
|
```
|
|
|
/usr/local/bin/clj
|
|
/usr/local/bin/clj
|
|
|
/usr/local/bin/clojure
|
|
/usr/local/bin/clojure
|
|
|
/usr/local/lib/clojure
|
|
/usr/local/lib/clojure
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
## Kompilieren der jar-Dateien für die Messprogramme »devhub«, »devproxy« und »metis«
|
|
## Kompilieren der jar-Dateien für die Messprogramme »devhub«, »devproxy« und »metis«
|
|
|
|
|
|
|
|
### Angaben zum Proxy-Server
|
|
### 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:
|
|
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
|
|
mkdir -p ~/.m2
|
|
|
|
|
|
|
|
cat <<EOF >> ~/.m2/settings.xml
|
|
cat <<EOF >> ~/.m2/settings.xml
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
<settings>
|
|
<settings>
|
|
|
<proxies>
|
|
<proxies>
|
|
|
<proxy>
|
|
<proxy>
|
|
|
<id>ptb-proxy</id>
|
|
<id>ptb-proxy</id>
|
|
|
<active>true</active>
|
|
<active>true</active>
|
|
|
<protocol>http</protocol>
|
|
<protocol>http</protocol>
|
|
|
<host>webproxy.berlin.ptb.de</host>
|
|
<host>webproxy.berlin.ptb.de</host>
|
|
|
<port>8080</port>
|
|
<port>8080</port>
|
|
|
<nonProxyHosts>localhost|127.0.0.1|*.ptb.de|*.berlin.ptb.de</nonProxyHosts>
|
|
<nonProxyHosts>localhost|127.0.0.1|*.ptb.de|*.berlin.ptb.de</nonProxyHosts>
|
|
|
</proxy>
|
|
</proxy>
|
|
|
</proxies>
|
|
</proxies>
|
|
|
</settings>
|
|
</settings>
|
|
|
|
|
|
|
|
EOF
|
|
EOF
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
Anmerkung: Die während des Build-Prozess heruntergeladenen Dateien werden typischerweise unterhalb von `~/.m2/` gepeichert.
|
|
Anmerkung: Die während des Build-Prozess heruntergeladenen Dateien werden typischerweise unterhalb von `~/.m2/` gepeichert.
|
|
|
|
|
|
|
|
### Klonen des Programmcodes
|
|
### Klonen des Programmcodes
|
|
|
|
|
|
|
|
Wegen der Übersichtlichkeit sollten die folgenden Git-Repositorien unterhalb eines Verzeichnisses (z.B. `~/myapps`) angelegt werden.
|
|
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/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/devhub.git
|
|
|
git clone https://$(printf %s 'USERNAME'|jq -Rr @uri):$(printf %s 'PASSWORD'|jq -Rr @uri)@gitlab1.ptb.de/vaclab/metis.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.
|
|
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:
|
|
Installation einer für »devhub« benötigten Java-Bibliothek:
|
|
|
|
|
|
|
|
```
|
|
```
|
|
|
git clone https://github.com/mikef5410/jvxi11.git
|
|
git clone https://github.com/mikef5410/jvxi11.git
|
|
|
|
|
|
|
|
cd jvxi11
|
|
cd jvxi11
|
|
|
ant
|
|
ant
|
|
|
# Der Fehler beim Erzeugen der Dokumentation wegen fehlendem Programm
|
|
# Der Fehler beim Erzeugen der Dokumentation wegen fehlendem Programm
|
|
|
# »javadoc« kann ignoriert werden.
|
|
# »javadoc« kann ignoriert werden.
|
|
|
cd ..
|
|
cd ..
|
|
|
cp -pvr --parents jvxi11/external jvxi11/dist devhub/resources/
|
|
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.
|
|
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
|
|
### Erzeugen der jar-Dateien für die Messprogramme
|
|
|
|
|
|
|
|
```
|
|
```
|
|
|
cd devhub
|
|
cd devhub
|
|
|
git pull
|
|
git pull
|
|
|
./make_jar
|
|
./make_jar
|
|
|
|
|
|
|
|
cd ..
|
|
cd ../devproxy
|
|
|
|
|
git pull
|
|
|
cd devproxy
|
|
./make_jar
|
|
|
git pull
|
|
|
|
|
./make_jar
|
|
cd ../metis
|
|
|
|
|
git pull
|
|
|
cd ..
|
|
./make_jar
|
|
|
|
|
```
|
|
|
cd metis
|
|
|
|
|
git pull
|
|
Die gewünschten jar-Dateien befinden sich nach erfolgreichem Kompilieren jeweils im Verzeichnis `target/`.
|
|
|
./make_jar
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Die gewünschten jar-Dateien befinden sich nach erfolgreichem Kompilieren jeweils im Verzeichnis `target/`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|