Hoi, j'ai récemment acheté la version Linux de X3 : Reunion sur GOG, mais je ne trouve pas le moyen de la lancer.
Mon système : Fedora Version 32, 64 bits
Je suis allé via le terminal dans le dossier X3 Reunion et l'ai démarré par :
./start.sh
Ce qui m'a donné :
./X3R_config: error while loading shared libraries: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory
J'ai regardé dans le dossier /usr/lib/
y libgtk-x11-2.0.so.0
était là.
Puis j'ai pensé, oh, j'ai oublié d'installer les programmes mentionnés sur la page GOG.
Qui étaient :
Les paquets suivants doivent être installés : libc6:i386 libasound2:i386 libasound2-data:i386 libasound2-plugins:i386 libgtk2.0-0:i386 libxml2:i386 et dépendances. Ce jeu est livré avec un binaire 32 bits uniquement
Grâce à des recherches sur Internet, je pense avoir trouvé les programmes Fedora correspondants et les avoir installés :
- glibc-devel.i686, qui a installé libxcrypt-devel.i686 comme dépendance
- alsa-lib.i686 (était déjà installé)
- alsa-lib-devel.i686
- alsa-plugins-pulseaudio.i686 (parce que pulseaudio était le seul à être installée dans la version 64 bits, j'ai pensé que ce serait celle pour ce jeu)
- gtk2.i686, qui a installé atk.i686, gdk-pixbuf2-modules.i686 et jasper-libs.i686 comme dépendances
- libxml2.i686
- libxml2-devel.i686, qui a installé cmake-filesystem.i686, xz-devel.i686, xz-devel.x86_64 et zlib-devel.i686 comme dépendances
J'ai ensuite essayé de relancer le jeu, mais cette fois, j'ai eu droit à :
./X3R_config: lib/libz.so.1: version `ZLIB_1.2.9' not found (required by /lib/libpng16.so.16)
En faisant quelques recherches, je suis arrivé sur ce site : https://stackoverflow.com/questions/48306849/lib-x86-64-linux-gnu-libz-so-1-version-zlib-1-2-9-not-found
et j'ai essayé la deuxième solution :
cd /your_software/../lib/ (the directory containing libz.so.1) mv libz.so.1 libz.so.1.old ln -s /lib/x86_64-linux-gnu/libz.so.1
Parce que dans Fedora il n'y a pas lib/x86_64-linux-gnu/
J'ai découvert que le dossier correspondant devrait être lib64
C'est ce que j'ai fait :
cd /usr/lib/ sudo mv libz.so.1 libz.so.1.old sudo ln -s /lib64/libz.so.1
Malheureusement, cela n'a pas aidé.
Récemment, j'ai eu un cas similaire avec la version Linux de Mount & Blade : Warband de GOG, qui m'a donné après le démarrage quelque chose comme ceci :
error while loading shared libraries: libcurl-gnutls.so.4: cannot open shared object file: No such file or directory
Mais la solution pour Mount & Blade : Warband était :
sudo ln -s /usr/lib64/libcurl.so.4 /usr/lib64/libcurl-gnutls.so.4
Et Mount & Blade : Warband a commencé après ça normalement.
Peut-être que cela vous aidera ou vous donnera une idée supplémentaire sur la manière de faire démarrer X3 : Reunion...
Si j'ai oublié quelque chose, je l'ajouterai. Je n'utilise Linux que pour la navigation et un peu de bureautique/jeux, donc en fin de compte, je ne suis qu'un débutant ;)
Merci d'avance.
Petite mise à jour
J'ai donc mis la libz.so.1, que j'ai compilée à partir des sources comme @aphid l'a montré, dans le fichier ~/GOG Games/X3 Reunion/game/lib/
mais a renommé l'ancien dossier libz.so.1
à libz.so.1.old
.
puis j'ai eu :
./start.sh
Running X3: Reunion
Language detected: English
./X3R_config: symbol lookup error: /lib/libxcb-shm.so.0: undefined symbol: xcb_send_request_with_fds
ce qui m'a conduit à :
où quelqu'un a eu le même problème, mais pour X3 Terran War.
Eh bien oui, c'est un autre jeu, mais la même série, alors j'ai pensé que ce qui suit pourrait fonctionner :
La solution était de supprimer le dossier lib dans le dossier racine du jeu (celui à côté de docs, game, start.sh.,...) et de garder dans le dossier lib situé dans games only avec :
libavcodec.so.53
libavformat.so.53
libavutil.so.51
libbz2.so.1.0
libcrypto.so.1.0.0
libGLEW.so.1.13
libswscale.so.2
Bien sûr, j'ai gardé le ~/GOG Games/X3 Reunion/lib
y ~/GOG Games/X3 Reunion/game/lib/
avant de faire cela
qui m'a eu :
./start.sh
Running X3: Reunion
Language detected: English
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
X Error of failed request: GLXBadContext
Major opcode of failed request: 153 (GLX)
Minor opcode of failed request: 6 (X_GLXIsDirect)
Serial number of failed request: 107
Current serial number in output stream: 106
ce qui m'a conduit à rechercher failed to load driver: swrast
à ça :
Alors peut-être que les librairies 32-bit-nvidia pourraient aider, ou entreraient-elles en conflit avec les librairies 64-bit actuelles ? X3 : Reunion est un jeu uniquement 32 bits après tout.
Ceux actuellement installés qui sont des paquets 64 bits :
akmod-nvidia-340xx
kmod-nvidia-340xx-5.11.11-100.fc32.x86_64
kmod-nvidia-340xx-5.11.12-100.fc32.x86_64
kmod-nvidia-340xx-5.11.14-100.fc32.x86_64
nvidia-texture-tools
xorg-x11-drv-nvidia-340xx
xorg-x11-drv-nvidia-340xx-kmodsrc
xorg-x11-drv-nvidia-340xx-libs
xorg-x11-drv-nvidia-libs
J'installerais alors simplement les .i686...
Ou cette option serait-elle une impasse ?
Mise à jour 2
Ok, j'ai installé les bibliothèques nvidia 32-bit et ça démarre maintenant. J'ai reçu de l'aide de aquí .
J'ai également découvert qu'il se déclenche lorsque vous supprimez/renommez le fichier ~/GOG Games/X3 Reunion/lib
dossier. Et vous pouvez conserver tous les fichiers dans le ~/GOG Games/X3 Reunion/game/lib/
mais nous avons dû remplacer la libz.so.1 par la libz.so.1 compilée précédemment.
Je vais rédiger une réponse détaillée dans la section des réponses à cette question maintenant.