LINUX.ORG.RU

История изменений

Исправление ZenitharChampion, (текущая версия) :

> Не запустится, потому что в 90% влезет что ядро не той системы

BSD что ли?

> и libc не той подверсии

Версия 2.5 - самое то. А у всех версий выше есть обратная совместимость. Кроме того, в систему с GLIBC 2.5 можно установить GCC 4.8 и компилировать программы в нём. В RHEL/CentOS даже не нужно ничего компилировать для этого. Потому что в отличие от LIBC, libstdc++ можно таскать в архиве с программой.

> И что-то мало у тебя библиотек. Например, нет криптографии.

Разве нет? Странно. Значит, я не перечислил всё lsb-*.

> Что делать? Вкомпилировать openssl?

Если libssl.so.0.9.8 кажется слишком старой, положи последний релиз в архив с программой.

> Не вкомпилировать? Так программа не запустится.

Вот скрипт запуска игры Osmos:

#!/bin/sh

# Change to game directory
CANONPATH=`readlink -f "$0"`
cd "`dirname "$CANONPATH"`"

MACHINE=`uname -m`
if [ "$MACHINE" = x86_64 ]
then
	BIN=./Osmos.bin64
else
	BIN=./Osmos.bin32
fi

$BIN $@

e=$?

exit $e

VVVVVV:

#!/bin/sh

# Change to game directory
CANONPATH=`readlink -f "$0"`
cd "`dirname "$CANONPATH"`"

# Check resource folders exist
if [ ! -e data ]
then
	echo "You are missing games resources `pwd`"
	echo "Your installation is incomplete!"
	exit 1
fi


MACHINE=`uname -m`
if [ "$MACHINE" = x86_64 ]
then
	LIBS=./LIB64
	BIN=./VVVVVV_64
else
	LIBS=./LIB32
	BIN=./VVVVVV_32
fi

# Run the game:
export LD_LIBRARY_PATH=$LIBS:"$LD_LIBRARY_PATH"
$BIN $@

И так у всех игр: Trine, World Of Goo, Braid, Doom, Quake... Короче, более 50.

Итог 1). Библиотеки можно положить в архив с программой. Если программа распространяется не только в tar.gz, но и в RPM/DEB, то можно просто прописать зависимости. 2). GLIBC использовать как можно старее. Стандарт LSB гласит использовать 2.5. 3). Использовать GCC 4.1 можно, но не обязательно. Можно просто таскать с собой libstdc++.so.6.

Исходная версия ZenitharChampion, :

> Не запустится, потому что в 90% влезет что ядро не той системы

BSD что ли?

> и libc не той подверсии

Версия 2.5 - самое то. А у всех версий выше есть обратная совместимость. Кроме того, в систему с GLIBC 2.5 можно установить GCC 4.8 и компилировать программы в нём. В RHEL/CentOS даже не нужно ничего компилировать для этого. Потому что в отличие от LIBC, libstdc++ можно таскать в архиве с программой.

> И что-то мало у тебя библиотек. Например, нет криптографии.

Разве нет? Странно. Значит, я не перечислил всё lsb-*.

> Что делать? Вкомпилировать openssl?

Если libssl.so.0.9.8 кажется слишком старой, положи последний релиз в архив с программой.

> Не вкомпилировать? Так программа не запустится.

Вот скрипт запуска игры Osmos:

#!/bin/sh

# Change to game directory
CANONPATH=`readlink -f "$0"`
cd "`dirname "$CANONPATH"`"

MACHINE=`uname -m`
if [ "$MACHINE" = x86_64 ]
then
	BIN=./Osmos.bin64
else
	BIN=./Osmos.bin32
fi

$BIN $@

e=$?

exit $e

VVVVVV:

#!/bin/sh

# Change to game directory
CANONPATH=`readlink -f "$0"`
cd "`dirname "$CANONPATH"`"

# Check resource folders exist
if [ ! -e data ]
then
	echo "You are missing games resources `pwd`"
	echo "Your installation is incomplete!"
	exit 1
fi


MACHINE=`uname -m`
if [ "$MACHINE" = x86_64 ]
then
	LIBS=./LIB64
	BIN=./VVVVVV_64
else
	LIBS=./LIB32
	BIN=./VVVVVV_32
fi

# Run the game:
export LD_LIBRARY_PATH=$LIBS:"$LD_LIBRARY_PATH"
$BIN $@

И так у всех игр: Trine, World Of Goo, Braid, Doom, Quake... Короче, более 50.

Итог 1). Библиотеки можно положить с собой. Если программа распространяется не только в tar.gz, но и в RPM/DEB, то можно просто прописать зависимости. 2). GLIBC использовать как можно старее. Стандарт LSB гласит использовать 2.5. 3). Использовать GCC 4.1 можно, но не обязательно. Можно просто таскать с собой libstdc++.so.6.