Linux.wine: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Root (Diskussion | Beiträge) |
Root (Diskussion | Beiträge) (→Update) |
||
(49 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
cOrgaMon | cOrgaMon.exe, lOrgaMon.exe kann mit Hilfe von wine unter Linux ausgeführt werden. Der Betrieb ist identisch problemlos wie unter Windows, mit dem Vorteil dass man sich so manch Windows-VM sparen kann. | ||
== Wine Installation == | == Wine Installation == | ||
=== OpenSuse === | |||
* <code>zypper install p11-kit-32bit wine</code> | * <code>zypper install p11-kit-32bit wine</code> | ||
=== Debian === | |||
* dpkg --add-architecture i386 | |||
* apt update | |||
* apt install wine32 | |||
=== Option 1: Grafische Benutzeroberfläche vorhanden === | |||
* In einer grafischen Oberfläche einmalig <code>-> System -> Configure Wine</code> starten | * In einer grafischen Oberfläche einmalig <code>-> System -> Configure Wine</code> starten | ||
** dies installiert Mono ... | ** dies installiert Mono (ist für den cOrgaMon aber nicht nötig) ... | ||
** dies legt das .wine Verzeichnis an ... | ** dies legt das .wine Verzeichnis an ... | ||
** Ein Umkonfiguration abseits der Defaults ist nicht nötig. | ** Ein Umkonfiguration abseits der Defaults ist nicht nötig. | ||
== | === Option 2: Nur Terminal === | ||
* In der reinen Console für folgender Befehl zum Anlegen der Verzeichnisse und setzen der Defaults | |||
** <code>winecfg</code> | |||
** <code>wineconsole</code> | |||
** <code>wine cmd</code> | |||
== cOrgaMon (Win32) installieren == | |||
* die 32 Bit Umgebung von Wine muss installiert werden, dazu kann es sein dass die ganze Distribution um die 32 Bit Architektur erweitern muss (das ist nicht mehr default) | |||
# | |||
# Install 7zip | |||
# | |||
cd ~/.wine/drive_c | cd ~/.wine/drive_c | ||
wget https://www.7-zip.org/a/ | wget https://www.7-zip.org/a/7z2201-x64.exe | ||
wine | wine 7z2201-x64.exe /S | ||
# | |||
# Install cOrgaMon | |||
# | |||
mkdir "/root/.wine/drive_c/Program Files (x86)/OrgaMon/" | mkdir "/root/.wine/drive_c/Program Files (x86)/OrgaMon/" | ||
cd "/root/.wine/drive_c/Program Files (x86)/OrgaMon/" | cd "/root/.wine/drive_c/Program Files (x86)/OrgaMon/" | ||
wget https://cargobay.orgamon.org/cOrgaMon- | wget https://cargobay.orgamon.org/cOrgaMon-Wine-8695.zip | ||
unzip cOrgaMon- | unzip -o cOrgaMon-Wine-8695.zip | ||
mv systemd/* / | |||
# | |||
# Install SystemD-Services | |||
# | |||
mv .service /etc/systemd/system | |||
# | |||
# Install OrgaMon.ini | |||
# | |||
mkdir ~/Documents/OrgaMon/ | |||
cd ~/Documents/OrgaMon/ | |||
joe OrgaMon.ini | |||
# | |||
# OrgaMon.ini | |||
# Bei der ~Id~ wird der Mandant angegeben, der gestartet werden soll. Dieser Id | |||
# wird auch dem cOrgaMon.exe als Kommandozeilenparameter --Id=~Id~ mitgegeben. | |||
# | |||
# via systemctl lässt sicher der ~Id~ nach dem "@" angeben | |||
# | |||
[~Id~] | |||
DataBaseName=N:\Mandanten\Huber\dat\ | |||
== lOrgaMon (Win64) installieren == | |||
* lOrgaMon.exe läuft in einer wine-7.0 Win64 Umgebung | |||
* Verwenden Sie die aktuelle Version von https://cargobay.orgamon.org/lOrgaMon-Wine.html | |||
# | |||
# Install 7zip | |||
# | |||
cd ~/.wine/drive_c | |||
wget https://www.7-zip.org/a/7z2201-x64.exe | |||
wine 7z2201-x64.exe /S | |||
# | |||
# Install lOrgaMon | |||
# | |||
mkdir "/root/.wine/drive_c/Program Files/OrgaMon/" | |||
cd "/root/.wine/drive_c/Program Files/OrgaMon/" | |||
wget https://cargobay.orgamon.org/lOrgaMon-Wine-8xxx.zip | |||
unzip -o lOrgaMon-Wine-8xxx.zip | |||
wine vccrt8_x64.msi /S | |||
# | |||
# Install OrgaMon.ini | |||
# | |||
mkdir ~/Documents/OrgaMon/ | |||
cd ~/Documents/OrgaMon/ | |||
joe OrgaMon.ini | |||
# | |||
# OrgaMon.ini | |||
# Bei der ~Id~ wird der Mandant angegeben, der gestartet werden soll. Dieser Id | |||
# wird auch dem cOrgaMon.exe als Kommandozeilenparameter --Id=~Id~ mitgegeben. | |||
# | |||
# via systemctl lässt sicher der ~Id~ nach dem "@" angeben | |||
# | |||
[~Id~] | |||
DataBaseName=N:\Mandanten\Huber\dat\ | |||
== | == Laufwerke == | ||
* | * Zum Betrieb der XLMRPC-Server cOrgaMon/lOrgaMon ist immer ein Windows-Laufwerk nötig | ||
* Dieses muss man wine bekannt machen, dazu werden Verzeichnisse mit mount oder bind mount zur Verfügung gestellt | |||
* wine | |||
== | === H:\ (Beispiel) === | ||
cd ~/.wine | cd ~/.wine | ||
Zeile 45: | Zeile 119: | ||
ln -s ../drive_h h: | ln -s ../drive_h h: | ||
== | === \\host\share (Beispiel) === | ||
=== | * UNC Pfade funktionieren nicht einfach so, hier muss man unter <code>dosdevices/unc</code> den <b>host</b> UND den <b>share</b>-Namen als Unterverzeichnisse erstellen | ||
cd ~/.wine | |||
cd dosdevices | |||
mkdir unc | |||
cd unc | |||
mkdir host | |||
cd host | |||
ln -s /srv/firebird firebird | |||
=== systemd.mount === | |||
==== Beispiel 1 ==== | ==== Beispiel 1 ==== | ||
Zeile 55: | Zeile 139: | ||
[Unit] | [Unit] | ||
Description=root-.wine-drive_i | Description=root-.wine-drive_i | ||
Requires=network-online.target | Requires=network-online.target | ||
After=network-online.target | After=network-online.target | ||
[Mount] | [Mount] | ||
Zeile 85: | Zeile 169: | ||
WantedBy=remote-fs.target | WantedBy=remote-fs.target | ||
=== | ==== Beispiel 3 ==== | ||
* Wenn obige Methode nicht funktioniert muss man mit einem Bind-Mount arbeiten | * Wenn obige Methode nicht funktioniert muss man mit einem Bind-Mount arbeiten | ||
* locales Verzeichnis mit "bind" | |||
* Geht aber auch, Beispiel <code>root-.wine-drive_i.mount</code> | * Geht aber auch, Beispiel <code>root-.wine-drive_i.mount</code> | ||
Zeile 104: | Zeile 189: | ||
WantedBy=remote-fs.target | WantedBy=remote-fs.target | ||
== | == cOrgaMon.exe Start als systemd.service == | ||
systemd bietet die Möglichkeit für beliebig viele Instanzen nur eine Konfigurations-Datei zu führen. Die ganze Infrastruktur mit Start und Stop und Enable kann benutzt werden. Also mit | systemd bietet die Möglichkeit für beliebig viele Instanzen nur eine Konfigurations-Datei zu führen. Die ganze Infrastruktur mit Start und Stop und Enable kann benutzt werden. Also mit | ||
Zeile 137: | Zeile 210: | ||
[Service] | [Service] | ||
SyslogIdentifier=cOrgaMon | |||
UMask=000 | UMask=000 | ||
Environment="WINEDEBUG=-all" "LANG=de_DE.UTF-8" | Environment="WINEDEBUG=-all" "LANG=de_DE.UTF-8" | ||
ExecStart=/usr/bin/wine "C:\\Program Files (x86)\\OrgaMon\\cOrgaMon.exe" "--app" "--Id=%i" | ExecStart=/usr/bin/wine "C:\\Program Files (x86)\\OrgaMon\\cOrgaMon.exe" "--app" "--Id=%i" | ||
KillSignal=SIGKILL | |||
TimeoutStopSec=5 | |||
[Install] | [Install] | ||
Zeile 149: | Zeile 225: | ||
** systemctl start cOrgaMon@3002 | ** systemctl start cOrgaMon@3002 | ||
** systemctl start cOrgaMon@3003 | ** systemctl start cOrgaMon@3003 | ||
== lOrgaMon/cOrgaMon für Tagwache/Tagesabschluss == | |||
* In <code>System</code> kann definiert werden "was" einzelne Hosts im Rahmen eines Tagesabschlusses/Tagwache tun sollen, es lassen sich einzelne Aktionen ausschließen | |||
# | |||
# Host EDORAS soll z.B. nur den Artikelindex neu erstellen | |||
# | |||
TagesabschlussAusschluss@EDORAS=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,21,22,23,24,25,26,27,28 | |||
# | |||
# ein Cron-Job auf EDORAS kann nun Artikelindex neu erstellen, Alle anderes Hosts | |||
# die einen Tagesabschluss machen sollten um diesen Punkt entlastet werden | |||
# (auch durch Ausschluss-Option) | |||
# | |||
wine lOrgaMon.exe --tagesabschluss --Id=~Id~ | |||
== Update == | == Update == | ||
* Per AutoUp, das Projekt "cOrgaMon-Wine" wird auf https://cargobay.orgamon.org/ das neueste cOrgaMon zur Verfügung gestellt | |||
* Ein Update wird durchgeführt durch | |||
** Stop der Dienste | |||
** Download der neuesten Version | |||
** Überschreiben aller alten Dateien im Ausführungsverzeichnis | |||
** Start der Dienste | |||
systemctl stop cOrgaMonApp@... | systemctl stop cOrgaMonApp@... | ||
systemctl stop cOrgaMonFoto@... | systemctl stop cOrgaMonFoto@... | ||
cd .wine/drive_c | cd "~/.wine/drive_c/Program Files (x86)/OrgaMon" | ||
wget | wget https://cargobay.orgamon.org/cOrgaMon-Wine-8644.zip | ||
unzip -o cOrgaMon-Wine-8644.zip | |||
systemctl start cOrgaMonApp@... | systemctl start cOrgaMonApp@... | ||
systemctl start cOrgaMonFoto@... | systemctl start cOrgaMonFoto@... | ||
Zeile 163: | Zeile 262: | ||
# | # | ||
# | # Welche Ports werden verwendet? | ||
# | # | ||
lsof -P | grep cOrgaMon | grep TCP | lsof -P | grep cOrgaMon | grep TCP | ||
# | # | ||
# Welche Dienste laufen | # Welche Dienste laufen? | ||
# | # | ||
systemctl status | grep cOrgaMon.exe | systemctl status | grep cOrgaMon.exe |
Aktuelle Version vom 7. Oktober 2024, 14:36 Uhr
cOrgaMon.exe, lOrgaMon.exe kann mit Hilfe von wine unter Linux ausgeführt werden. Der Betrieb ist identisch problemlos wie unter Windows, mit dem Vorteil dass man sich so manch Windows-VM sparen kann.
Wine Installation
OpenSuse
zypper install p11-kit-32bit wine
Debian
- dpkg --add-architecture i386
- apt update
- apt install wine32
Option 1: Grafische Benutzeroberfläche vorhanden
- In einer grafischen Oberfläche einmalig
-> System -> Configure Wine
starten- dies installiert Mono (ist für den cOrgaMon aber nicht nötig) ...
- dies legt das .wine Verzeichnis an ...
- Ein Umkonfiguration abseits der Defaults ist nicht nötig.
Option 2: Nur Terminal
- In der reinen Console für folgender Befehl zum Anlegen der Verzeichnisse und setzen der Defaults
winecfg
wineconsole
wine cmd
cOrgaMon (Win32) installieren
- die 32 Bit Umgebung von Wine muss installiert werden, dazu kann es sein dass die ganze Distribution um die 32 Bit Architektur erweitern muss (das ist nicht mehr default)
# # Install 7zip # cd ~/.wine/drive_c wget https://www.7-zip.org/a/7z2201-x64.exe wine 7z2201-x64.exe /S # # Install cOrgaMon # mkdir "/root/.wine/drive_c/Program Files (x86)/OrgaMon/" cd "/root/.wine/drive_c/Program Files (x86)/OrgaMon/" wget https://cargobay.orgamon.org/cOrgaMon-Wine-8695.zip unzip -o cOrgaMon-Wine-8695.zip # # Install SystemD-Services # mv .service /etc/systemd/system # # Install OrgaMon.ini # mkdir ~/Documents/OrgaMon/ cd ~/Documents/OrgaMon/ joe OrgaMon.ini
# # OrgaMon.ini # Bei der ~Id~ wird der Mandant angegeben, der gestartet werden soll. Dieser Id # wird auch dem cOrgaMon.exe als Kommandozeilenparameter --Id=~Id~ mitgegeben. # # via systemctl lässt sicher der ~Id~ nach dem "@" angeben # [~Id~] DataBaseName=N:\Mandanten\Huber\dat\
lOrgaMon (Win64) installieren
- lOrgaMon.exe läuft in einer wine-7.0 Win64 Umgebung
- Verwenden Sie die aktuelle Version von https://cargobay.orgamon.org/lOrgaMon-Wine.html
# # Install 7zip # cd ~/.wine/drive_c wget https://www.7-zip.org/a/7z2201-x64.exe wine 7z2201-x64.exe /S # # Install lOrgaMon # mkdir "/root/.wine/drive_c/Program Files/OrgaMon/" cd "/root/.wine/drive_c/Program Files/OrgaMon/" wget https://cargobay.orgamon.org/lOrgaMon-Wine-8xxx.zip unzip -o lOrgaMon-Wine-8xxx.zip wine vccrt8_x64.msi /S # # Install OrgaMon.ini # mkdir ~/Documents/OrgaMon/ cd ~/Documents/OrgaMon/ joe OrgaMon.ini # # OrgaMon.ini # Bei der ~Id~ wird der Mandant angegeben, der gestartet werden soll. Dieser Id # wird auch dem cOrgaMon.exe als Kommandozeilenparameter --Id=~Id~ mitgegeben. # # via systemctl lässt sicher der ~Id~ nach dem "@" angeben # [~Id~] DataBaseName=N:\Mandanten\Huber\dat\
Laufwerke
- Zum Betrieb der XLMRPC-Server cOrgaMon/lOrgaMon ist immer ein Windows-Laufwerk nötig
- Dieses muss man wine bekannt machen, dazu werden Verzeichnisse mit mount oder bind mount zur Verfügung gestellt
H:\ (Beispiel)
cd ~/.wine md drive_h # Nur wenn man gleich mal mounten will: # mount //server/share drive_h cd dosdevices ln -s ../drive_h h:
- UNC Pfade funktionieren nicht einfach so, hier muss man unter
dosdevices/unc
den host UND den share-Namen als Unterverzeichnisse erstellen
cd ~/.wine cd dosdevices mkdir unc cd unc mkdir host cd host ln -s /srv/firebird firebird
systemd.mount
Beispiel 1
- joe /etc/systemd/system/root-.wine-drive_i.mount
[Unit] Description=root-.wine-drive_i Requires=network-online.target After=network-online.target [Mount] What=//server/share Where=/root/.wine/drive_i Type=cifs Options=guest,vers=3,noperm,nosetuids,file_mode=0777,dir_mode=0777 [Install] WantedBy=remote-fs.target
Beispiel 2
- joe /etc/systemd/system/srv-ftp.mount
[Unit] Description=srv-ftp Wants=nss-lookup.target After=nss-lookup.target [Mount] What=//server/web Where=/srv/ftp Type=cifs Options=guest,vers=3,noperm,nosetuids,file_mode=0777,dir_mode=0777 [Install] WantedBy=remote-fs.target
Beispiel 3
- Wenn obige Methode nicht funktioniert muss man mit einem Bind-Mount arbeiten
- locales Verzeichnis mit "bind"
- Geht aber auch, Beispiel
root-.wine-drive_i.mount
[Unit] Description=root-.wine-drive_i After=srv-smb-ra6.mount Requires=srv-smb-ra6.mount [Mount] What=/srv/smb/ra6/i Where=/root/.wine/drive_i Type=none Options=bind [Install] WantedBy=remote-fs.target
cOrgaMon.exe Start als systemd.service
systemd bietet die Möglichkeit für beliebig viele Instanzen nur eine Konfigurations-Datei zu führen. Die ganze Infrastruktur mit Start und Stop und Enable kann benutzt werden. Also mit
- systemctl start cOrgaMon@3049
startet man eine cOrgaMon-Instanz mit dem Port 3049.
- joe /etc/systemd/system/cOrgaMon\@.service
# # systemd Rulez for the cOrgaMon Service # # (c) 2015 Andreas Filsinger # [Unit] Description=cOrgaMon XMLRPC-Server After=multi-user.target Requires=root-.wine-drive_i.mount [Service] SyslogIdentifier=cOrgaMon UMask=000 Environment="WINEDEBUG=-all" "LANG=de_DE.UTF-8" ExecStart=/usr/bin/wine "C:\\Program Files (x86)\\OrgaMon\\cOrgaMon.exe" "--app" "--Id=%i" KillSignal=SIGKILL TimeoutStopSec=5 [Install] WantedBy=multi-user.target
- Starte dann mehrere Instanzen:
- systemctl start cOrgaMon@3000
- systemctl start cOrgaMon@3001
- systemctl start cOrgaMon@3002
- systemctl start cOrgaMon@3003
lOrgaMon/cOrgaMon für Tagwache/Tagesabschluss
- In
System
kann definiert werden "was" einzelne Hosts im Rahmen eines Tagesabschlusses/Tagwache tun sollen, es lassen sich einzelne Aktionen ausschließen
# # Host EDORAS soll z.B. nur den Artikelindex neu erstellen # TagesabschlussAusschluss@EDORAS=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,21,22,23,24,25,26,27,28 # # ein Cron-Job auf EDORAS kann nun Artikelindex neu erstellen, Alle anderes Hosts # die einen Tagesabschluss machen sollten um diesen Punkt entlastet werden # (auch durch Ausschluss-Option) # wine lOrgaMon.exe --tagesabschluss --Id=~Id~
Update
- Per AutoUp, das Projekt "cOrgaMon-Wine" wird auf https://cargobay.orgamon.org/ das neueste cOrgaMon zur Verfügung gestellt
- Ein Update wird durchgeführt durch
- Stop der Dienste
- Download der neuesten Version
- Überschreiben aller alten Dateien im Ausführungsverzeichnis
- Start der Dienste
systemctl stop cOrgaMonApp@... systemctl stop cOrgaMonFoto@... cd "~/.wine/drive_c/Program Files (x86)/OrgaMon" wget https://cargobay.orgamon.org/cOrgaMon-Wine-8644.zip unzip -o cOrgaMon-Wine-8644.zip systemctl start cOrgaMonApp@... systemctl start cOrgaMonFoto@...
Diagnose
# # Welche Ports werden verwendet? # lsof -P | grep cOrgaMon | grep TCP # # Welche Dienste laufen? # systemctl status | grep cOrgaMon.exe