LINUX.ORG.RU
решено ФорумGames

Не поиграть в Prince of Persia в Astra Linux CE

 ,


0

1

Скачал и распаковал SDLPoP-1.23 в Astra Linux CE 2.12.46, ввёл

./prince 

на выходе получил:

./prince: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by ./prince)
./prince: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by ./prince)
./prince: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by ./prince)
./prince: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./prince) 

Грустно всё это.

★★★★★

Последнее исправление: Mischutka (всего исправлений: 3)
Ответ на: комментарий от anonymous

У нас тут так, а как у вас не знаем

У нас тут ровно также как и у вас - Barin of Rossiya

Да и не особо важно и нужно

Знать, как у вас важно и нужно. Ты думал что у вас/нас царевеч, оказалось что Barin. Вон оно как вышло

Chord ★★★★
()
Последнее исправление: Chord (всего исправлений: 1)
Ответ на: комментарий от Chord

Давай пошутили и хватит, мы все люди думающие. Всё понимаем, но в тоже время всё зависит от взгляда и цели.

Скажу так, главное кто ты, что можешь, какая цель в жизни, а на бар - чего на них смотреть.

Живи и развивайся, иди к цели, проблем не вижу.

Просто искать отговорки ничего не делать и сетовать на кого-то. Всё в твоих руках.

anonymous
()
Ответ на: комментарий от CrX

возможности поставить другую ОС нет. Астра используется во всяких госконторах. Мне сложно представить, что кто-то её по своей воле поставил, и не чтобы самостоятельно поковырять, а вот так вот.

Поэтому человек ставит игрушки на компьютер госконторы. Я давно подозревал что ракеты строят десятилетиями именно из-за этого.

PPP328 ★★★★★
()
Ответ на: комментарий от PPP328

Я давно подозревал что ракеты строят десятилетиями именно из-за этого.

Я бы сказал не то чтобы прямо из-за этого. Но и у этого и у того, что ракеты строят десятилетиями, общая причина.

CrX ★★★★★
()
Ответ на: комментарий от Mischutka

А в чём проблема использовать LD_PRELAOD и LD_LIBRARY_PATH?

При запуске старых игр придётся подкладывать старые библиотеки. Как я уже писал - запускал Gorky 18, не 17, а именно 18 году так в 2016 на Gentoo. Была и есть версия игры Gorky 18 под Linux.

В Gentoo была более новая версия glibc и libsdl.

Запускаешь бинарник игры, смотришь какие библиотеки ему нужны, можно ещё посмотреть через утилиту ldd, скачиваешь deb пакеты от debian старой версии, распаковываешь, библиотеки (.so) файлы складываешь в папку с игрой и через LD_LIBRARY_PATH, LD_PRELOAD указываешь путь до директории или коннкретной библиотеки в директории куда сложил файлы и запускаешься игу, вот примерно так: https://www.hpc.dtu.dk/?page_id=1180

Для такой старой игры много файлов (библиотек) не понадобится.

Можешь попробовать создавать символьные ссылки, условно:

dpkg -L libc6 | grep so | grep -i libc
/lib/x86_64-linux-gnu/libc-2.28.so
/lib/x86_64-linux-gnu/libcrypt-2.28.so
/usr/lib/x86_64-linux-gnu/gconv/libCNS.so
/lib/x86_64-linux-gnu/libc.so.6
/lib/x86_64-linux-gnu/libcrypt.so.1

ln -s /lib/x86_64-linux-gnu/libc-2.28.so /lib/x86_64-linux-gnu/libc-2.27.so

Поставить пакет с более старой libc в систему всё равно не удастся - только символьные ссылки, что не совсем хорошо в плане замусоривания директории с системными библиотеками, поэтому лучше в отдельную директорию и далее как написано выше с переменными окружения. А там уже либо символьная ссылка, либо распаковывай glibc от Debian и бери оттуда.

И пробуешь запускать игру.

anonymous
()
Ответ на: комментарий от Gary

Собрать более новую glibc, ld-linux и пр., и сделать из них окружение для запуска этого приложения

А есть какая-нибудь инструкция как это сделать правильно? А то у меня задача есть под такое(запускать свежий вайн на некродистрах типа CentOS7), а вот умений нет.

Loki13 ★★★★★
()
Ответ на: комментарий от PPP328

Поэтому человек ставит игрушки на компьютер госконторы.

По молодости всегда в конторе после окончания рабочего дня по сетке гоняли в игры. Сейчас такое уже не актуально, да.

Loki13 ★★★★★
()
Ответ на: комментарий от Mischutka

В общем, сейчас не разобрался как подсунуть другую версию GLIBC, хотя помню, что когда запускал gorky 18 в Gentoo вроде это приходилось делать.

Хотя, может быть там приходилось решать проблему с другими библиотеками, а не системной glibc.

Проблема в том, что системный линковщик библиотек не будет использовать ld-linux-*.so из поставки

Но могу ошибаться. Возможно способ с glibc есть.

Но ты можешь собрать из исходников:

apt -y install build-essential libsdl2-image-dev git
git clone https://github.com/NagyD/SDLPoP.git
cd SDLPoP/src
make

Вот на стареньком ноуте T420, правда с почти максимальным для него процессором (Intel(R) Core(TM) i7-2720QM CPU) и 16 Гб DDR3 RAM оно собралось за 5 секунд.

time make -j4
gcc -Wall -D_GNU_SOURCE=1 -std=c99 -O2 -D_REENTRANT -I/usr/include/SDL2  -c main.c
gcc -Wall -D_GNU_SOURCE=1 -std=c99 -O2 -D_REENTRANT -I/usr/include/SDL2  -c data.c
gcc -Wall -D_GNU_SOURCE=1 -std=c99 -O2 -D_REENTRANT -I/usr/include/SDL2  -c seg000.c
gcc -Wall -D_GNU_SOURCE=1 -std=c99 -O2 -D_REENTRANT -I/usr/include/SDL2  -c seg001.c
gcc -Wall -D_GNU_SOURCE=1 -std=c99 -O2 -D_REENTRANT -I/usr/include/SDL2  -c seg002.c
gcc -Wall -D_GNU_SOURCE=1 -std=c99 -O2 -D_REENTRANT -I/usr/include/SDL2  -c seg003.c
gcc -Wall -D_GNU_SOURCE=1 -std=c99 -O2 -D_REENTRANT -I/usr/include/SDL2  -c seg004.c
gcc -Wall -D_GNU_SOURCE=1 -std=c99 -O2 -D_REENTRANT -I/usr/include/SDL2  -c seg005.c
gcc -Wall -D_GNU_SOURCE=1 -std=c99 -O2 -D_REENTRANT -I/usr/include/SDL2  -c seg006.c
gcc -Wall -D_GNU_SOURCE=1 -std=c99 -O2 -D_REENTRANT -I/usr/include/SDL2  -c seg007.c
gcc -Wall -D_GNU_SOURCE=1 -std=c99 -O2 -D_REENTRANT -I/usr/include/SDL2  -c seg008.c
gcc -Wall -D_GNU_SOURCE=1 -std=c99 -O2 -D_REENTRANT -I/usr/include/SDL2  -c seg009.c
gcc -Wall -D_GNU_SOURCE=1 -std=c99 -O2 -D_REENTRANT -I/usr/include/SDL2  -c seqtbl.c
gcc -Wall -D_GNU_SOURCE=1 -std=c99 -O2 -D_REENTRANT -I/usr/include/SDL2  -c replay.c
gcc -Wall -D_GNU_SOURCE=1 -std=c99 -O2 -D_REENTRANT -I/usr/include/SDL2  -c options.c
gcc -Wall -D_GNU_SOURCE=1 -std=c99 -O2 -D_REENTRANT -I/usr/include/SDL2  -c lighting.c
gcc -Wall -D_GNU_SOURCE=1 -std=c99 -O2 -D_REENTRANT -I/usr/include/SDL2  -c screenshot.c
gcc -Wall -D_GNU_SOURCE=1 -std=c99 -O2 -D_REENTRANT -I/usr/include/SDL2  -c menu.c
gcc -Wall -D_GNU_SOURCE=1 -std=c99 -O2 -D_REENTRANT -I/usr/include/SDL2  -c midi.c
gcc -Wall -D_GNU_SOURCE=1 -std=c99 -O2 -D_REENTRANT -I/usr/include/SDL2  -c opl3.c
gcc -Wall -D_GNU_SOURCE=1 -std=c99 -O2 -D_REENTRANT -I/usr/include/SDL2  -c stb_vorbis.c
gcc  main.o data.o seg000.o seg001.o seg002.o seg003.o seg004.o seg005.o seg006.o seg007.o seg008.o seg009.o seqtbl.o replay.o options.o lighting.o screenshot.o menu.o midi.o opl3.o stb_vorbis.o -o ../prince -lSDL2_image -lSDL2 -lm

real	0m5.010s
user	0m14.257s
sys	0m1.110s

Далее переходишь на уровень выше и запускаешь, бинарный файл prince скопировался на уровень выше, чем директория с исходными кодами:

cd ../
./prince

На GIT странице проекта написано:

Debian/Ubuntu
Compile the game manually (see instructions below).
Start the game with ./prince.

https://github.com/NagyD/SDLPoP

Выложенные бинарные сборки для Linux, скорее всего, собирались на каком-нибудь RPM-based дистрибутиве, например Fedora, там могут быть такие версии glibc: https://src.fedoraproject.org/rpms/glibc

В glibc есть обратная совместимость версий.

Удачи, ничего сложно в описанном нет, у тебя получится.

anonymous
()