LINUX.ORG.RU

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

Исправление 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.