История изменений
Исправление ZenitharChampion, (текущая версия) :
Я решил дополнить свой ответ скриншотами. Человек выше говорил что «стандартов нет: все ноют что они нужны, но при этом плюют на них». Сейчас я покажу что это не так. Есть LSB и Steam Runtime, и если первый стандарт официально, то второй всё больше становится негласно.
LSB
- Braid, libgcc_s, libstdc++, LibCg. Запустить такую игру в старом линуксе не должно составлять проблем: GLIBC скорее всего использовался старый, а GCC наоборот новый - его Runtime лежит в каталоге с игрой.
- Amnesia, куча всего. ldd ещё длиннее, но эти библиотеки в каталоге lib игры не лежат: согласно стандарту LSB они обязаны быть в любом дистрибутиве Linux для десктопа. Amnesia - пример очень хорошего бинарника для Linux. Авторы основательно подошли к делу: инсталлятор, деинсталлятор, обновляющие патчи, создание пунктов меню. Он будет ещё долго работать.
- Oil Rush, Qt 4. Видимо, LSB-шный Qt 4.3 для разработчиков оказался слишком старым.
- Adobe Flash, одним файлом. Работает в любом линуксе 2007-2013 года. И нигде не выдаст что-то вроде этого:
zenitur@linux-athlon64x2:~/bit.trip.runner-1.0/bit.trip.runner> ./bit.trip.runner ./bit.trip.runner: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./bit.trip.runner)
- Nero, только свои библиотеки. Потому что GCC 4.1 и GLIBC 2.5, а обратная совместимость всех новых версий этих библиотек работает без сбоев.
- The Clockwork Man, собрана по LSB. Ничего с собой не тащит, работает везде.
- Doom 3, libgcc_s и libstdc++. Тут вообще GCC 4.0, чего стандарты не требуют. Потому что порт 2005 года. Превосходно запускается без дополнительной настройки в Ubuntu 13.04.
- Adobe Reader. Я бы рад сказать «вообще не таскает с собой библиотек, так как LSB, база из самого необходимого есть в любом линуксе». Но нет.
Как видим, в основном libstdc++ и libgcc_s, а также libSDL и OpenAL.
Сначала Valve решили поддерживать ровно один линукс, Ubuntu 12.04 LTS. К моменту релиза вышел Ubuntu 12.10. Допустим, 5 библиотек, от которых зависит Team Fortress 2, в Ubuntu 12.10 были заменены новыми версиями. Эти 5 библиотек можно было распространять со Steam. Через два месяца вышел Ubuntu 13.04. «Да вы там вообще офигели библиотеки менять?!» - наверное, сказали разработчики, и сделали Steam Runtime - 200-мегабайтный bootstrap Ubuntu 12.04.
Ну так вот. Если старые проприетарные игры собирались по LSB, то после появления Steam Runtime стандартом для новых игр всё больше становится он, а не LSB. Теперь вместо RHEL/CentOS 5 для компиляции игры можно использовать Ubuntu 12.04, и у всех заработает. Правда в каталог программ Steam не всех пускают.
Steam Runtime
- Trine 2. Первый Trine был портирован Linux Game Publishing и в каталоге lib там 50 библиотек - наверное, все зависимости. В Mandrake запустился - не запустился только лаунчер, потому что GTK как раз положить забыли. А вот второй несёт в lib только Cg, libSDL и PhysX - остальное берётся из Steam Runtime. Вне Steam, насколько я знаю, для Linux не продаётся.
- Beat Hazard, libpng и libjpeg и какие-то liballegro, libbass, libvstdlib.
- Dungeon Defenders, libSDL, libopenal
- Super Hexagon, libopenal, libglut, libglew, libvorbis, libogg.
- Defender's Quest, libxslt, libXt, libSM, libuuid, libICE, libxml2. Похоже что это вообще все зависимости игры, и зачем их класть было я не знаю: LSB и Steam Runtime дублируют всё это оба.
- Caprised, Mono, SDL, Vorbis.
- Bastion, Mono и SDL.
Исправление ZenitharChampion, :
Я решил дополнить свой ответ скриншотами. Человек выше говорил что «стандартов нет: все ноют что они нужны, но при этом плюют на них». Сейчас я покажу что это не так. Есть LSB и Steam Runtime, и если первый стандарт официально, то второй всё больше становится негласно.
LSB
- Braid, libgcc_s, libstdc++, LibCg. Запустить такую игру в старом линуксе не должно составлять проблем: GLIBC скорее всего использовался старый, а GCC наоборот новый - его Runtime лежит в каталоге с игрой.
- Amnesia, куча всего. ldd ещё длиннее, но эти библиотеки в каталоге lib игры не лежат: согласно стандарту LSB они обязаны быть в любом дистрибутиве Linux для десктопа. Amnesia - пример очень хорошего бинарника для Linux. Авторы основательно подошли к делу: инсталлятор, деинсталлятор, обновляющие патчи, создание пунктов меню. Он будет ещё долго работать.
- Oil Rush, Qt 4. Видимо, LSB-шный Qt 4.3 для разработчиков оказался слишком старым.
- Adobe Flash, одним файлом. Работает в любом линуксе 2007-2013 года. И нигде не выдаст что-то вроде этого:
zenitur@linux-athlon64x2:~/bit.trip.runner-1.0/bit.trip.runner> ./bit.trip.runner ./bit.trip.runner: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./bit.trip.runner)
- Nero, только свои библиотеки. Потому что GCC 4.1 и GLIBC 2.5, а обратная совместимость всех новых версий работает без сбоев.
- The Clockwork Man, собрана по LSB. Ничего с собой не тащит, работает везде.
- Doom 3, libgcc_s и libstdc++. Тут вообще GCC 4.0, чего стандарты не требуют. Потому что порт 2005 года. Превосходно запускается без дополнительной настройки в Ubuntu 13.04.
- Adobe Reader. Я бы рад сказать «вообще не таскает с собой библиотек, так как LSB, база из самого необходимого есть в любом линуксе». Но нет.
Как видим, в основном libstdc++ и libgcc_s, а также libSDL и OpenAL.
Сначала Valve решили поддерживать ровно один линукс, Ubuntu 12.04 LTS. К моменту релиза вышел Ubuntu 12.10. Допустим, 5 библиотек, от которых зависит Team Fortress 2, в Ubuntu 12.10 были заменены новыми версиями. Эти 5 библиотек можно было распространять со Steam. Через два месяца вышел Ubuntu 13.04. «Да вы там вообще офигели библиотеки менять?!» - наверное, сказали разработчики, и сделали Steam Runtime - 200-мегабайтный bootstrap Ubuntu 12.04.
Ну так вот. Если старые проприетарные игры собирались по LSB, то после появления Steam Runtime стандартом для новых игр всё больше становится он, а не LSB. Теперь вместо RHEL/CentOS 5 для компиляции игры можно использовать Ubuntu 12.04, и у всех заработает. Правда в каталог программ Steam не всех пускают.
Steam Runtime
- Trine 2. Первый Trine был портирован Linux Game Publishing и в каталоге lib там 50 библиотек - наверное, все зависимости. В Mandrake запустился - не запустился только лаунчер, потому что GTK как раз положить забыли. А вот второй несёт в lib только Cg, libSDL и PhysX - остальное берётся из Steam Runtime. Вне Steam, насколько я знаю, для Linux не продаётся.
- Beat Hazard, libpng и libjpeg и какие-то liballegro, libbass, libvstdlib.
- Dungeon Defenders, libSDL, libopenal
- Super Hexagon, libopenal, libglut, libglew, libvorbis, libogg.
- Defender's Quest, libxslt, libXt, libSM, libuuid, libICE, libxml2. Похоже что это вообще все зависимости игры, и зачем их класть было я не знаю: LSB и Steam Runtime дублируют всё это оба.
- Caprised, Mono, SDL, Vorbis.
- Bastion, Mono и SDL.
Исходная версия ZenitharChampion, :
Я решил дополнить свой ответ скриншотами. Человек выше говорил что «стандартов нет: все ноют что они нужны, но при этом плюют на них». Сейчас я покажу что это не так. Есть LSB и Steam Runtime, и если первый стандарт официально, то второй всё больше становится негласно.
LSB
- Braid, libgcc_s, libstdc++, LibCg. Запустить такую игру в старом линуксе не должно составлять проблем: GLIBC скорее всего использовался старый, а GCC наоборот новый - его Runtime лежит в каталоге с игрой.
- Amnesia, куча всего. ldd ещё длиннее, но эти библиотеки в каталоге lib игры не лежат: согласно стандарту LSB они обязаны быть в любом дистрибутиве Linux для десктопа. Amnesia - пример очень хорошего бинарника для Linux. Авторы основательно подошли к делу: инсталлятор, деинсталлятор, обновляющие патчи, создание пунктов меню. Он будет ещё долго работать.
- Oil Rush, Qt 4. Видимо, LSB-шный Qt 4.3 для разработчиков оказался слишком старым.
- Adobe Flash, одним файлом. Работает в любом линуксе 2007-2013 года. И нигде не выдаст что-то вроде этого:
zenitur@linux-athlon64x2:~/bit.trip.runner-1.0/bit.trip.runner> ./bit.trip.runner[br] ./bit.trip.runner: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./bit.trip.runner)
- Nero, только свои библиотеки. Потому что GCC 4.1 и GLIBC 2.5, а обратная совместимость всех новых версий работает без сбоев.
- The Clockwork Man, собрана по LSB. Ничего с собой не тащит, работает везде.
- Doom 3, libgcc_s и libstdc++. Тут вообще GCC 4.0, чего стандарты не требуют. Потому что порт 2005 года. Превосходно запускается без дополнительной настройки в Ubuntu 13.04.
- Adobe Reader. Я бы рад сказать «вообще не таскает с собой библиотек, так как LSB, база из самого необходимого есть в любом линуксе». Но нет.
Как видим, в основном libstdc++ и libgcc_s, а также libSDL и OpenAL.
Сначала Valve решили поддерживать ровно один линукс, Ubuntu 12.04 LTS. К моменту релиза вышел Ubuntu 12.10. Допустим, 5 библиотек, от которых зависит Team Fortress 2, в Ubuntu 12.10 были заменены новыми версиями. Эти 5 библиотек можно было распространять со Steam. Через два месяца вышел Ubuntu 13.04. «Да вы там вообще офигели библиотеки менять?!» - наверное, сказали разработчики, и сделали Steam Runtime - 200-мегабайтный bootstrap Ubuntu 12.04.
Ну так вот. Если старые проприетарные игры собирались по LSB, то после появления Steam Runtime стандартом для новых игр всё больше становится он, а не LSB. Теперь вместо RHEL/CentOS 5 для компиляции игры можно использовать Ubuntu 12.04, и у всех заработает. Правда в каталог программ Steam не всех пускают.
Steam Runtime
- Trine 2. Первый Trine был портирован Linux Game Publishing и в каталоге lib там 50 библиотек - наверное, все зависимости. В Mandrake запустился - не запустился только лаунчер, потому что GTK как раз положить забыли. А вот второй несёт в lib только Cg, libSDL и PhysX - остальное берётся из Steam Runtime. Вне Steam, насколько я знаю, для Linux не продаётся.
- Beat Hazard, libpng и libjpeg и какие-то liballegro, libbass, libvstdlib.
- Dungeon Defenders, libSDL, libopenal
- Super Hexagon, libopenal, libglut, libglew, libvorbis, libogg.
- Defender's Quest, libxslt, libXt, libSM, libuuid, libICE, libxml2. Похоже что это вообще все зависимости игры, и зачем их класть было я не знаю: LSB и Steam Runtime дублируют всё это оба.
- Caprised, Mono, SDL, Vorbis.
- Bastion, Mono и SDL.