Portál AbcLinuxu, 30. dubna 2025 10:16
Mezi jeden z mála hnusných a ošklivých kousků proprietárního software, na kterých jsem bohužel závislý je ANSYS Electronics Desktop. Ten samozřejmě používám na svém oblíbeném Debianu, ostatně kdo se kdy pokoušel počítat nějakou náročnější úlohu asi ví, že MS Windows se na to hodí asi jako Trabant pro transatlantické lety. Po poměrně dlouhou dobu fungoval můj starý návod na zprovoznění tohoto molochu na Debianu, což se ale s příchodem Debianu 10 a novými verzemi ANSYSu změnilo. Zde je tedy aktualizace.
Celý problém ANSYS Electronics Desktopu je ten, že je to příšerný bastl, který používá směs různých knihoven k tomu, aby vůbec na Linuxu fungoval. Výpočetní jádro je zřejmě nativní, ale pro běh grafického prostření se jako klíčový používá MainWin 5.40 (to je taková hrozně fosilní záležitost na úrovni WINE, kterou vyvinula za pomoci originálních zdrojových kódů Windows společnost MainSoft), který je doplněn o nějaké knihovny z Qt, Tcl/Tk a pár dalších závislostí. Silnějším povahám, zatímco ty slabší tiše zvrací v koutku, je jasné, že tohle rozpohybovat na Linuxu není úplně legrace, takže ANSYS podporuje oficiálně pouze dvě distribuce - SLES a RHEL.
Pomyslnou korunkou na hlavě mixu knihoven a prostředí ANSYS Electronics Desktopu je pak instalátor napsaný v Javě, který byl příčinou toho, proč dlouhou dobu nebylo možné na Debianu 10 ANSYS Electronics Desktop vůbec nainstalovat. ANSYS totiž využíval jakousi prehistorickou verzi Javy (tuším 1.5.0u01), která na nových jádrech segfaultovala. No a jelikož instalátor má názvy souborů k instalaci poctivě zahashované, tak ruční instalace nepřicházela v úvahu. To se změnilo až s verzí 2020R2, ve které došlo k aktualizaci Javy, kterou si vynutila aktualizace jádra v RHEL/SLES. Na obranu ANSYSu je ale třeba dodat, že Javovský InstallShield na Linuxu používá více proprietárních programů (Matlab, Amesim...).
Jako první bude třeba najít relikvie dvou knihoven - xorg-x11-libXfixes-7.6_5.0-3.1.2.x86_64.rpm
a xorg-x11-libXrender-7.6_0.9.6-9.1.2.x86_64.rpm
. Ty se naštěstí ještě stále válejí na netu, takže není problém je stáhnout (třeba odtud). A pokud si myslíte, že vidíte špatně, pak ne. Opravdu jde o knihovny z roku 2011...
Druhá věc vyžaduje sáhnout si do archivů. Bude totiž třeba mít po ruce starší instalaci ANSYS Electronics Desktopu a ANSYSu jako takového. Z ANSYS Electronics Desktopu použijeme starší verzi MainWinu a z ANSYSu si vypůjčíme libGL.so
.
apt-get install rpm echo "Red Hat Enterprise Linux Server release 7.6 (Maipo)" > /etc/redhat-release
/Linux/lib64
. Instalaci pak následně spustíme v adresáři /Linux
příkazem ./install.exe
libXfixes.so.3 (symlink) libXfixes.so.3.1 libXrender.so.1 (symlink) libXrender.so.1.3.0a ty nakopírovat do adresáře
/opt/AnsysEM/AnsysEM21.1/Linux64/defer/
. V témže adresáři je třeba smazat (přejmenovat) soubor libGL.so.1.2
a ten nahradit knihovnou z klasického ANSYSu, která bývá umístěna například zde: /opt/ansys162/v162/Framework/bin/Linux64/Mesa/libGL.so.1.5.070701
, kterou zkopírujeme a přejmenujeme na libGL.so.1.2
. Kontrolu nám zde poskytne velikost souboru - nahrazujeme knihovnu o velikosci cca 730 kB knihovnou o velikosti cca 14,5 MB. Poslední knihovna, kterou potřebujeme je libpng12.so.0
, kterou si pořídíme jednoduše jako symlink na systémovou libpng16.so.16.36.0
(klidně přímo v /usr/lib/x86_64-linux-gnu/
).
/opt/AnsysEM/AnsysEM19.5/Linux64/mainwin540/
. Tzn. smažeme (přejmenujeme) složku /opt/AnsysEM/AnsysEM21.1/Linux64/mainwin540/
a místo ní nakopírujeme složku /opt/AnsysEM/AnsysEM19.5/Linux64/mainwin540/
. Při pozornějším zkoumání si přitom můžeme všimnout, že jediný rozdíl je aktualizace několika knihoven, jinak všechny ostatní mají shodný původ v roce 2015.
Nyní nám již stačí skočit do /opt/AnsysEM/AnsysEM21.1/Linux64/
, zde spustit ./ansysedt
a po trochu delším prvním spuštění (které obsahuje nějaké dodatečné konfigurace a kontrolu přítomných knihoven) a tradičních chybových hláškách
pushkin@pushkin-workntb:/opt/AnsysEM/AnsysEM21.1/Linux64$ ./ansysedt ### Warning: Dependency package bzip2-libs is not installed. ### Warning: Dependency package expat is not installed. ### Warning: Dependency package fontconfig is not installed. ### Warning: Dependency package freetype is not installed. ### Warning: Dependency package giflib is not installed. ### Warning: Dependency package glib2 is not installed. ### Warning: Dependency package glibc is not installed. ### Warning: Dependency package libdrm is not installed. ### Warning: One of the following alternate dependencies are not installed: libjpeg libjpeg-turbo ### Warning: Dependency package libpng is not installed. ### Warning: Dependency package libselinux is not installed. ### Warning: Dependency package libtiff is not installed. ### Warning: Dependency package libX11 is not installed. ### Warning: Dependency package libXau is not installed. ### Warning: Dependency package libxcb is not installed. ### Warning: Dependency package libXdamage is not installed. ### Warning: Dependency package libXext is not installed. ### Warning: Dependency package libXfixes is not installed. ### Warning: Dependency package libXft is not installed. ### Warning: Dependency package libXmu is not installed. ### Warning: Dependency package libXp is not installed. ### Warning: Dependency package libXrender is not installed. ### Warning: Dependency package libXt is not installed. ### Warning: Dependency package libXxf86vm is not installed. ### Warning: Dependency package mesa-dri-drivers is not installed. ### Warning: Dependency package mesa-libGL is not installed. ### Warning: Dependency package mesa-libGLU is not installed. ### Warning: Dependency package nss-softokn-freebl is not installed. ### Warning: Dependency package zlib is not installed.by nám měl být odměnou běžící ANSYS Electronics Desktop 2021R1. Zatím jsem testoval pouze RMXprt a Maxwell 2D, kde se zdá, že vše funguje (v rámci ANSYSu) dle očekávání. Takže hodně úspěchů!
Update: Stejný postup funguje i pro Debian 11 Bullseye.
Tiskni
Sdílej:
arternativa elemrfem zdarma nějaká hele
pushkin@pushkin-workntb:/opt/ansys_inc/v211/Framework/bin/Linux64$ bash runwb2 Unhandled exception caught : System.DllNotFoundException: Ans.QT.dll at Ansys.UI.Toolkit.QT.Application.SetPluginDirectory () [0x000f2] in <e7c7446121f840669624fa95f993ad23>:0 at Ansys.UI.Toolkit.QT.Application..ctor () [0x00006] in <e7c7446121f840669624fa95f993ad23>:0 at Ansys.UI.Toolkit.QT.UIFactory.newApplication () [0x00000] in <e7c7446121f840669624fa95f993ad23>:0 at Ansys.UI.Toolkit.UIFactory.newApplication () [0x0000f] in <10126af23bce40849ad4266af89c19d0>:0 at Ansys.UI.Toolkit.Application.InstantiateIApplication () [0x00000] in <10126af23bce40849ad4266af89c19d0>:0 at Ansys.UI.Toolkit.Application..cctor () [0x0000a] in <10126af23bce40849ad4266af89c19d0>:0 --- System.TypeInitializationException: The type initializer for 'Ansys.UI.Toolkit.Application' threw an exception. at Ansys.UI.UIManager..ctor () [0x00060] in <ae858717b3ff416bbc7818997e97838b>:0 at Ansys.UI.UIManager.get_Instance () [0x00029] in <ae858717b3ff416bbc7818997e97838b>:0 at Ans.Program.Runtime.InitializeSplashScreen () [0x00060] in <cf1e21c8e81e4bdba692baf9de1b41d1>:0 at Ans.Program.Runtime.Initialize (Ans.Program.RuntimeSettings settings) [0x00237] in <cf1e21c8e81e4bdba692baf9de1b41d1>:0 at Ans.Program.ExecutableBase.Run (Ans.Program.CommandLineParse parser) [0x0000d] in <f93613d2cf72432192ab9d28923ae59b>:0 at Ans.Program.ExecutableBase.DoMain (System.String[] args) [0x000cf] in <f93613d2cf72432192ab9d28923ae59b>:0Jestli si s tím poradíš, tak dej vědět jaký je řešení, občas by mi Workbench taky bodnul
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.