Portál AbcLinuxu, 25. dubna 2024 02:52


Dotaz: InstallShield Bundled Java - funguje pod Debianem 9, ale ne pod Debianem 10

pushkin avatar 20.12.2019 09:08 pushkin | skóre: 43 | blog: FluxBlog
InstallShield Bundled Java - funguje pod Debianem 9, ale ne pod Debianem 10
Přečteno: 680×
Odpovědět | Admin
Přílohy:
Zdravím všechny,
nedávno jsem začal migrovat své stroje na Debian 10, ale už na dvou jsem narazil na problém - nelze nainstalovat ANSYS.

Celý problém spočívá v tom, že ANSYS využívá InstallShield, který si s sebou veze svou bundlovanou Javu 1.5, kterou si rozbalí, provede její verifikaci a pak se rozjede vlastní instalátor. A tady je kámen úrazu. Zatímco pod Debianem 9 bundlovaná Java normálně zafunguje, vrátí jakési číslo, distributora a verzi, pod Debianem 10 odpoví chybou:
root@pushkin-ntb:/tmp/istemp2551354083444/_bundledJRE_/bin#./java -cp /tmp/istemp2551354083444/Verify.jar Verify  java.vendor java.version
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object
Je to tentýž instalátor, spuštěný tímtéž způsobem (./setup.exe -is:log log.txt), který rozbalí tutéž Javu, kterou potom stejným způsobem ověřuje/ověřuji. Jediný rozdíl: Debian 9 vs. Debian 10.

Máte někdo nějaký nápad, co s tím? Strace z ověření Javy přikládám (úspěšný z Debianu 9, neúspěšný z Debianu 10), leč nejsem z nich ani jejich porovnání moudrý.

Díky moc za nápady,
K.
🇺🇦 Pomoc pro obranu Ukrajiny | SOS Ukrajina | Web4Ukrajina | Web4Ukraine 🇺🇦
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Pavel 'TIGER' Růžička avatar 20.12.2019 10:54 Pavel 'TIGER' Růžička | skóre: 53
Rozbalit Rozbalit vše Re: InstallShield Bundled Java - funguje pod Debianem 9, ale ne pod Debianem 10
Odpovědět | | Sbalit | Link | Blokovat | Admin
Výstup 52kb vs. 34kb ... tam bude asi dost rozdílů. Bohužel nemám časoprostor na porovnání. Možná by nebylo od věci vystavit i ten instalátor, aby to pro přpadného pomocníka bylo jednodušší.
21.12.2019 08:54 ZAH | skóre: 43 | blog: ZAH
Rozbalit Rozbalit vše Re: InstallShield Bundled Java - funguje pod Debianem 9, ale ne pod Debianem 10
Zkusil bych nainstalovat Javu 1.5 solo, jestli je problém s Javou nebo instalátorem. Přeci jen 1.5 je docela vykopávka a mohlo dojít k změně, která je pro ní nekompatibilní. ZAH
pushkin avatar 21.12.2019 10:08 pushkin | skóre: 43 | blog: FluxBlog
Rozbalit Rozbalit vše Re: InstallShield Bundled Java - funguje pod Debianem 9, ale ne pod Debianem 10
Vykopávka je slabé slovo. Ten nápad je tak hnusný a odporný, že by mohl i fungovat. Jdu to testnout ;-)
pushkin avatar 30.12.2019 11:09 pushkin | skóre: 43 | blog: FluxBlog
Rozbalit Rozbalit vše Re: InstallShield Bundled Java - funguje pod Debianem 9, ale ne pod Debianem 10
Příloha:
  • jvm (1223 bytů)
Tak jsem vyhrabal někde na netu fosílii jdk 1.5.0u22 a naistaloval. Sama o sobě funguje, ale instalátor jí ignoruje, ačkoliv se identifikuje správně:
root@pushkin-ntb:/usr/lib/jvm/jdk1.5.0_22/jre/bin# ./java -cp /tmp/istemp5268364105230/Verify.jar Verify  java.vendor java.version
1739021872
Sun Microsystems Inc.
1.5.0_22
... což odpovídá odpovědi z bundlu na Debianu 9:
write(1, "1739021872", 10)              = 10
write(1, "\n", 1)                       = 1
write(1, "Sun Microsystems Inc.", 21)   = 21
write(1, "\n", 1)                       = 1
write(1, "1.5.0_01", 8)                 = 8
write(1, "\n", 1)                       = 1
Instalátor loguje následující:
Log file created by MultiPlatform installer @Po pro 30 10:52:30 CET 2019
INSTALLER_PATH=/home/pushkin/tmp/Electronics_195_linx64/Linux/AnsysEM/disk1/setup.exe.IShield
running inner launcher=/tmp/istemp5268364105230/setup.exe.embedded -is:orig /home/pushkin/tmp/Electronics_195_linx64/Linux/AnsysEM/disk1 -is:javahome /usr/lib/jvm/jdk1.5.0_22/jre/ -is:log log.txt
Log file created by MultiPlatform installer @Po pro 30 10:52:30 CET 2019
INSTALLER_PATH=/tmp/istemp5268364105230/setup.exe.embedded
command line switch -is:javahome is specified. Verifying the JVM with the JVM files specifed with the launcher.
JVM specified with -is:javahome cannot be verified with the JVM files specified with the launcher. Environment Variables will be checked next...
Checking the environment variables specifed in the JVM files to find the JVM...
No JVM can  be found using the shell environment variable. Searching JVM will continue with Path Hints specified in the JVM Files...
jvm files not specified. Searching a JVM can not be performed.
Extracting bundled JRE...
checking disk space on the parition /tmp/istemp5268364105230 for /tmp/istemp5268364105230/jre-1_5_0_01-linux64.bin
49190 512 bytes disk blocks required.
129124936 512 bytes disk blocks  available on the partition /tmp/istemp5268364105230
Disk space check on the parition /tmp/istemp5268364105230 succeeded.
checking disk space on the parition /tmp/istemp5268364105230 for /tmp/istemp5268364105230/jre-1_5_0_01-linux64.bin
142261 512 bytes disk blocks required.
129076224 512 bytes disk blocks  available on the partition /tmp/istemp5268364105230
Disk space check on the parition /tmp/istemp5268364105230 succeeded.
Verifying... /tmp/istemp5268364105230/_bundledJRE_/bin/java -cp /tmp/istemp5268364105230/Verify.jar Verify  java.vendor java.version
Verification failed for /tmp/istemp5268364105230/_bundledJRE_ using the JVM file /tmp/istemp5268364105230/_bundledJRE_/jvm
... co z toho chápu je, že instalátor porovnává odpověď Javy z nějakým JVM souborem, který si s sebou nese. Když se do něj mrknu (soubor /tmp/istemp5268364105230/_bundledJRE_/jvm, přikládám), tak mi ale připadá, že má instalace Javy 1.5 splňuje vše, co v tom souboru je (pokud tedy instalátor hledá stejné vlastnosti i v "cizí" Javě)...
31.12.2019 12:23 ZAH | skóre: 43 | blog: ZAH
Rozbalit Rozbalit vše Re: InstallShield Bundled Java - funguje pod Debianem 9, ale ne pod Debianem 10
Je jasné, že jde o nějakpu změnu v path. Zkusil bych nastavit JAVAHOME a JAVA_HOME na cestu to jre 1.5 v příkazovém řádku instalátoru.
pushkin avatar 31.12.2019 14:37 pushkin | skóre: 43 | blog: FluxBlog
Rozbalit Rozbalit vše Re: InstallShield Bundled Java - funguje pod Debianem 9, ale ne pod Debianem 10
Ani ťuk. Zkoušel jsem přidat i JDK_HOME a všechny tyhle cesty do systémové PATH a výsledek je pořád stejný:
Log file created by MultiPlatform installer @Út pro 31 14:35:49 CET 2019
INSTALLER_PATH=/home/pushkin/tmp/Electronics_195_linx64/Linux/AnsysEM/disk1/setup.exe.IShield
running inner launcher=/tmp/istemp3822365143549/setup.exe.embedded -is:orig /home/pushkin/tmp/Electronics_195_linx64/Linux/AnsysEM/disk1 -is:javahome /usr/lib/jvm/jdk1.5.0_22/jre -is:log log.txt
Log file created by MultiPlatform installer @Út pro 31 14:35:49 CET 2019
INSTALLER_PATH=/tmp/istemp3822365143549/setup.exe.embedded
command line switch -is:javahome is specified. Verifying the JVM with the JVM files specifed with the launcher.
JVM specified with -is:javahome cannot be verified with the JVM files specified with the launcher. Environment Variables will be checked next...
Checking the environment variables specifed in the JVM files to find the JVM...
No JVM can  be found using the shell environment variable. Searching JVM will continue with Path Hints specified in the JVM Files...
jvm files not specified. Searching a JVM can not be performed.
Extracting bundled JRE...
checking disk space on the parition /tmp/istemp3822365143549 for /tmp/istemp3822365143549/jre-1_5_0_01-linux64.bin
49190 512 bytes disk blocks required.
128230216 512 bytes disk blocks  available on the partition /tmp/istemp3822365143549
Disk space check on the parition /tmp/istemp3822365143549 succeeded.
checking disk space on the parition /tmp/istemp3822365143549 for /tmp/istemp3822365143549/jre-1_5_0_01-linux64.bin
142261 512 bytes disk blocks required.
128181504 512 bytes disk blocks  available on the partition /tmp/istemp3822365143549
Disk space check on the parition /tmp/istemp3822365143549 succeeded.
Verifying... /tmp/istemp3822365143549/_bundledJRE_/bin/java -cp /tmp/istemp3822365143549/Verify.jar Verify  java.vendor java.version
Verification failed for /tmp/istemp3822365143549/_bundledJRE_ using the JVM file /tmp/istemp3822365143549/_bundledJRE_/jvm
31.12.2019 16:18 ZAH | skóre: 43 | blog: ZAH
Rozbalit Rozbalit vše Re: InstallShield Bundled Java - funguje pod Debianem 9, ale ne pod Debianem 10
Dotaz pro jistotu, není náhodou ten debian 9 32 bit a 10 64 podobnou zradu jsem už viděl.
pushkin avatar 1.1.2020 19:10 pushkin | skóre: 43 | blog: FluxBlog
Rozbalit Rozbalit vše Re: InstallShield Bundled Java - funguje pod Debianem 9, ale ne pod Debianem 10
nene, obojí jsou amd64...
2.1.2020 16:41 ET
Rozbalit Rozbalit vše Re: InstallShield Bundled Java - funguje pod Debianem 9, ale ne pod Debianem 10
mne ty nenalezeny soubory v /tmp pripominaj problemy se systemd (PrivateTmp predpokladam nehrozi, pokud to poustit z ruky) - nevadi treba "noexec/nosuid" na /tmp, co selinux ?

pushkin avatar 6.1.2020 18:23 pushkin | skóre: 43 | blog: FluxBlog
Rozbalit Rozbalit vše Re: InstallShield Bundled Java - funguje pod Debianem 9, ale ne pod Debianem 10
nevadi treba "noexec/nosuid" na /tmp
O co přesně jde?
co selinux
Z toho mám nainstalovaných pouze pár knihoven, ale chování je stejné, i když ho formálně vypnu...
20.12.2019 11:26 ttt
Rozbalit Rozbalit vše Re: InstallShield Bundled Java - funguje pod Debianem 9, ale ne pod Debianem 10
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tohle si myslím, že je důležité:
stat("/tmp/istemp2551354083444/_bundledJRE_/lib/rt.jar", {st_mode=S_IFREG|0755, st_size=35406956, ...}) = 0
openat(AT_FDCWD, "", O_RDONLY)          = -1 ENOENT (Adresář nebo soubor neexistuje)
stat("/tmp/istemp2551354083444/_bundledJRE_/lib/i18n.jar", 0x7ffef0dda2e0) = -1 ENOENT (Adresář nebo soubor neexistuje)
stat("/tmp/istemp2551354083444/_bundledJRE_/lib/sunrsasign.jar", 0x7ffef0dda2e0) = -1 ENOENT (Adresář nebo soubor neexistuje)
stat("/tmp/istemp2551354083444/_bundledJRE_/lib/jsse.jar", {st_mode=S_IFREG|0755, st_size=493295, ...}) = 0
openat(AT_FDCWD, "", O_RDONLY)          = -1 ENOENT (Adresář nebo soubor neexistuje)
stat("/tmp/istemp2551354083444/_bundledJRE_/lib/jce.jar", {st_mode=S_IFREG|0755, st_size=81615, ...}) = 0
openat(AT_FDCWD, "", O_RDONLY)          = -1 ENOENT (Adresář nebo soubor neexistuje)
stat("/tmp/istemp2551354083444/_bundledJRE_/lib/charsets.jar", {st_mode=S_IFREG|0755, st_size=8511074, ...}) = 0
openat(AT_FDCWD, "", O_RDONLY)          = -1 ENOENT (Adresář nebo soubor neexistuje)
Po prolétnutí mi přijde, že to hledá .jar fily javy jinde než nejspíš jsou.
pushkin avatar 20.12.2019 14:44 pushkin | skóre: 43 | blog: FluxBlog
Rozbalit Rozbalit vše Re: InstallShield Bundled Java - funguje pod Debianem 9, ale ne pod Debianem 10
Na to jsem taky koukal. Hledá to na správném místě, některé ty JARy tam jsou, některé ne (schází třeba ten i18n.jar). Bohužel stejné hledání se stejný výsledkem je i na Deb9, kde vše funguje :-/
20.12.2019 15:04 ttt
Rozbalit Rozbalit vše Re: InstallShield Bundled Java - funguje pod Debianem 9, ale ne pod Debianem 10
Se stejným výsledkem ne, rt.jar to na debianu 9 najde, na debianu 10 ne. Jsou to základní třídy JRE, java.lang.Object bude předpokládám tam.
pushkin avatar 20.12.2019 18:53 pushkin | skóre: 43 | blog: FluxBlog
Rozbalit Rozbalit vše Re: InstallShield Bundled Java - funguje pod Debianem 9, ale ne pod Debianem 10
Otázka ale je, proč ho to nenajde - protože hledá na správném místě a ten soubor tam je:
root@pushkin-ntb:/tmp/istemp1491354184851/_bundledJRE_/lib# ls -l
celkem 43812
drwxr-xr-x  7 root root     4096 pro  7  2004 amd64
drwxr-xr-x  2 root root     4096 pro  7  2004 applet
drwxr-xr-x  2 root root     4096 pro  7  2004 audio
-rwxr-xr-x  1 root root    76375 pro  7  2004 classlist
drwxr-xr-x  2 root root     4096 pro  7  2004 cmm
-rwxr-xr-x  1 root root     5874 pro  7  2004 content-types.properties
drwxr-xr-x  2 root root     4096 srp  9  2013 ext
-rwxr-xr-x  1 root root     3878 pro  7  2004 flavormap.properties
-rwxr-xr-x  1 root root     1678 pro  7  2004 fontconfig.bfc
-rwxr-xr-x  1 root root     1973 pro  7  2004 fontconfig.properties.src
-rwxr-xr-x  1 root root     5728 pro  7  2004 fontconfig.RedHat.bfc
-rwxr-xr-x  1 root root    11025 pro  7  2004 fontconfig.RedHat.properties.src
-rwxr-xr-x  1 root root     5438 pro  7  2004 fontconfig.RedHat.2.1.bfc
-rwxr-xr-x  1 root root     9060 pro  7  2004 fontconfig.RedHat.2.1.properties.src
-rwxr-xr-x  1 root root     5720 pro  7  2004 fontconfig.RedHat.3.bfc
-rwxr-xr-x  1 root root    10990 pro  7  2004 fontconfig.RedHat.3.properties.src
-rwxr-xr-x  1 root root     7196 pro  7  2004 fontconfig.RedHat.8.0.bfc
-rwxr-xr-x  1 root root    16286 pro  7  2004 fontconfig.RedHat.8.0.properties.src
-rwxr-xr-x  1 root root     7450 pro  7  2004 fontconfig.Sun.bfc
-rwxr-xr-x  1 root root    16631 pro  7  2004 fontconfig.Sun.properties.src
-rwxr-xr-x  1 root root     7188 pro  7  2004 fontconfig.Sun.2003.bfc
-rwxr-xr-x  1 root root    13601 pro  7  2004 fontconfig.Sun.2003.properties.src
-rwxr-xr-x  1 root root     1678 pro  7  2004 fontconfig.SuSE.bfc
-rwxr-xr-x  1 root root     1972 pro  7  2004 fontconfig.SuSE.properties.src
-rwxr-xr-x  1 root root     4668 pro  7  2004 fontconfig.Turbo.bfc
-rwxr-xr-x  1 root root     9233 pro  7  2004 fontconfig.Turbo.properties.src
-rwxr-xr-x  1 root root     4114 pro  7  2004 fontconfig.Turbo.8.0.bfc
-rwxr-xr-x  1 root root     6086 pro  7  2004 fontconfig.Turbo.8.0.properties.src
drwxr-xr-x  2 root root     4096 pro  7  2004 fonts
-rwxr-xr-x  1 root root  8511074 srp  9  2013 charsets.jar
drwxr-xr-x  2 root root     4096 pro  7  2004 im
drwxr-xr-x  3 root root     4096 pro  7  2004 images
-rwxr-xr-x  1 root root    81615 pro  7  2004 jce.jar
-rwxr-xr-x  1 root root   493295 srp  9  2013 jsse.jar
-rwxr-xr-x  1 root root     2808 pro  7  2004 jvm.hprof.txt
-rwxr-xr-x  1 root root     2245 pro  7  2004 logging.properties
drwxr-xr-x  2 root root     4096 pro  7  2004 management
-rwxr-xr-x  1 root root     2682 pro  7  2004 net.properties
drwxr-xr-x  2 root root     4096 pro  7  2004 oblique-fonts
-rwxr-xr-x  1 root root    10669 pro  7  2004 psfontj2d.properties
-rwxr-xr-x  1 root root     3070 pro  7  2004 psfont.properties.ja
-rwxr-xr-x  1 root root 35406956 srp  9  2013 rt.jar
drwxr-xr-x  2 root root     4096 pro  7  2004 security
-rwxr-xr-x  1 root root     1210 pro  7  2004 sound.properties
drwxr-xr-x 12 root root     4096 pro  7  2004 zi
2.1.2020 09:55 ZAH | skóre: 43 | blog: ZAH
Rozbalit Rozbalit vše Re: InstallShield Bundled Java - funguje pod Debianem 9, ale ne pod Debianem 10
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ještě co obsahuje na 9 soubor /etc/ld.so.preload. Zkusit nastavit v 10 proměnou LD_PRELOAD na stejnou hodnotu. Pak už fakt nevím.
pushkin avatar 6.1.2020 18:34 pushkin | skóre: 43 | blog: FluxBlog
Rozbalit Rozbalit vše Re: InstallShield Bundled Java - funguje pod Debianem 9, ale ne pod Debianem 10
Tak ten vůbec nemám - ani na Debianu 9 ani na Debianu 10. Je tam jenom ld.so.conf:
include /etc/ld.so.conf.d/*.conf
kde jsou na Debianu 10i386-linux-gnu.conf:
# Multiarch support
/usr/local/lib/i386-linux-gnu
/lib/i386-linux-gnu
/usr/lib/i386-linux-gnu
/usr/local/lib/i686-linux-gnu
/lib/i686-linux-gnu
/usr/lib/i686-linux-gnu
dále libc.conf:
# libc default configuration
/usr/local/lib
a x86_64-linux-gnu.conf:
# Multiarch support
/usr/local/lib/x86_64-linux-gnu
/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu
Na Debianu 9 je tam navíc soubor fakeroot-x86_64-linux-gnu.conf:
/usr/lib/x86_64-linux-gnu/libfakeroot
a naopak chybí všechny řádky obsahující
/usr/local/lib/...
Až na ten fakeroot žádný drastický rozdíl...
pushkin avatar 6.1.2020 18:54 pushkin | skóre: 43 | blog: FluxBlog
Rozbalit Rozbalit vše Re: InstallShield Bundled Java - funguje pod Debianem 9, ale ne pod Debianem 10
Odpovědět | | Sbalit | Link | Blokovat | Admin
Přílohy:
Začínám mít dojem, že to špatně parsuje command line... Poslední zmínka o zadaném adresáři Javy je na řádku 637:

read(3, "usr/lib/jvm/jdk1.5.0_22/jre/\n", 128) = 29

... to chybějící lomítko na začátku mě znervóňuje...
🇺🇦 Pomoc pro obranu Ukrajiny | SOS Ukrajina | Web4Ukrajina | Web4Ukraine 🇺🇦
pushkin avatar 8.1.2020 13:22 pushkin | skóre: 43 | blog: FluxBlog
Rozbalit Rozbalit vše Re: InstallShield Bundled Java - funguje pod Debianem 9, ale ne pod Debianem 10
Odpovědět | | Sbalit | Link | Blokovat | Admin
Přílohy:
Nedalo mi to a dal jsem se do hledání, odkdy je to rozbité. Breakpoint nastal mezi Javou 1.5.0u11 a 1.5.0u12:
root@pushkin:/home/pushkin/Electronics_195_linx64/Java_SUN/jre1.5.0_12/bin# strace -o strace_java_sun.txt ./java -cp /tmp/istemp1839008124719/Verify.jar Verify  java.vendor java.version
1739021872
Sun Microsystems Inc.
1.5.0_12
root@pushkin:/home/pushkin/Electronics_195_linx64/Java_SUN/jre1.5.0_12/bin# cd /home/pushkin/Electronics_195_linx64/Java_SUN/jre1.5.0_11/bin/
root@pushkin:/home/pushkin/Electronics_195_linx64/Java_SUN/jre1.5.0_11/bin# strace -o strace_java_sun.txt ./java -cp /tmp/istemp1839008124719/Verify.jar Verify  java.vendor java.version
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object
strace bundlované Javy (1.5.0u01), originální Javy 1.5.0u01 a obou mezních verzí přikládám. Netušíte, jakou mohli provést změnu, že pod Debianem 9 fungují všechny verze a pod Debianem 10 pouze verze od 1.5.0u12? :-O
🇺🇦 Pomoc pro obranu Ukrajiny | SOS Ukrajina | Web4Ukrajina | Web4Ukraine 🇺🇦

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.