Caused by: java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: Failed to locate library: liblwjgl.so
Minecraft 1.12.2:
Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/foo/d1dc-158e-254c-718f/liblwjgl64.so: /tmp/foo/d1dc-158e-254c-718f/liblwjgl64.so: failed to map segment from shared object
Minecraft 1.0:
[Info: GameCallbacks.cpp(138)] Game/game () Info Exception in thread "Minecraft main thread" java.lang.UnsatisfiedLinkError: /tmp/foo/9fbe-9ff8-c48e-f38c/liblwjgl.so: /tmp/foo/9fbe-9ff8-c48e-f38c/liblwjgl.so: wrong ELF class:ELFCLASS32 (Possible cause: architecture word width mismatch)
The cause of all of these errors (and probably others still, for other versions), in probably most people having them semi-recently (although other similar reports apparently mention 32-bit or older MacOS systems... but maybe this wasn't even the problem for them...? if they were older problems, with the previous launchers, maybe their /home directory was actually noexec too...?), is simply /tmp being mounted as noexec...
The previous launchers apparently extracted these files to ~/.minecraft (and the home directory is seldom mounted as noexec, contrarily to /tmp...).
You can thus simply start minecraft-launcher with a TMPDIR set to a directory on an exec partition.
(... well, depending on where you put minecraft-launcher, of course).
I suppose the launcher should check for a noexec on the partition hosting TMPDIR, and at least warn the user explicitly, considering how the error messages in this case are misleading and changing, depending on the Minecraft version...
The launcher could also use the XDG cache directory, instead of TMPDIR, for its temporary files, at least when it's mounted noexec... The /home directory is seldom on a noexec partition...
$XDG_CACHE_HOME defines the base directory relative to which user specific non-essential data files should be stored. If $XDG_CACHE_HOME is either not set or empty, a default equal to $HOME/.cache should be used.
Minecraft 1.14.4:
Minecraft 1.12.2:
Minecraft 1.0:
The cause of all of these errors (and probably others still, for other versions), in probably most people having them semi-recently (although other similar reports apparently mention 32-bit or older MacOS systems... but maybe this wasn't even the problem for them...? if they were older problems, with the previous launchers, maybe their /home directory was actually noexec too...?), is simply /tmp being mounted as noexec...
The previous launchers apparently extracted these files to ~/.minecraft (and the home directory is seldom mounted as noexec, contrarily to /tmp...).
You can thus simply start minecraft-launcher with a TMPDIR set to a directory on an exec partition.
For example:
(... well, depending on where you put minecraft-launcher, of course).
I suppose the launcher should check for a noexec on the partition hosting TMPDIR, and at least warn the user explicitly, considering how the error messages in this case are misleading and changing, depending on the Minecraft version...
The launcher could also use the XDG cache directory, instead of TMPDIR, for its temporary files, at least when it's mounted noexec... The /home directory is seldom on a noexec partition...
https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html