LINUX.ORG.RU

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

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

> Все более менее крупные конторы что связываются с Линуксом в итоге приходят к своему дистрибутиву. Видать это просто напросто дешевле поддержки всего зоопарка.

Поддерживать можно только один дистрибутив Linu, это RHEL 5. Дело в том что существует стандарт LSB, который создан специально для облегчения написания проприетарных программ. Он базируется на программной базе RHEL 5. То есть мы берём CentOS, компилируем в нём программу, и она потом везде работает. CentOS 5 это Linux 2.6.18, GLIBC 2.4 и GCC 4.1. GCC можно обновлять до более новой версии, но тогда придётся класть в архив с программой libstdc++.so.6 и создавать run.sh, с помощью которой программа увидит эту библиотеку. Таким образом можно положить в архив с программой любую нестандартную библиотеку, например libIL или libGLEW, а также если libGTK или libjpeg из стандарта LSB слишком старый, положить и его тоже.

Почему-то ВСЕ проприетарщики так и делают, и в итоге у них всегда всё работает. Даже в дистрибутивах Linux, которые ещё не вышли! Я сразу сказал что Valve делает неправильно, компилируя Steam в Ubuntu 12.04, и вот результат - SteamOS! Фанатики Ubuntu писали о том, что кроме Ubuntu ничего поддерживать не нужно, вот и не будет проблем с проприетарным ПО. Что Ubuntu и есть стандарт, а не какой-то там LSB. Но оказалось что Steam, скомпилированный в Ubuntu 12.04, не работает в... нет, не в Debian, не в Fedora и не в openSUSE. А в Ubuntu 12.10! Потому что в /usr/lib обновилось вообще всё, и пара библиотек-зависимостей поменяли свою версию. Но это ладно, это можно положить в «Steam/ubuntu_12_32», который в бета-версии занимал совсем немного места. Но потом вышел Ubuntu 13.04, всё повторилось, и программисты Valve взвыли «да сколько ж можно этому продолжаться?!», и положили в ubuntu12_32 вообще все базовые системные библиотеки Ubuntu 12.04! А именно 292,5 Мб.

Компилируя софт в CentOS 5, программист получает программу, которая запустится вообще везде. Если сделать «ldd бинарник», мы получим libjpeg62, libpng12, libopenssl 0.9.8 и так далее по списку. Каждый популярный дистрибутив Linux поддерживает совместимость с LSB, иначе фиг бы в убунте заработал Adobe Flash. В /usr/lib каждого линукса лежат и libpng.so.самая_новая, и libpng.so.12. В то время как открытое ПО компилируется в последнем компиляторе с последними версиями библиотек, проприетарное компилируется по стандарту LSB.

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

> Все более менее крупные конторы что связываются с Линуксом в итоге приходят к своему дистрибутиву. Видать это просто напросто дешевле поддержки всего зоопарка.

Поддерживать можно только один дистрибутив Linu, это RHEL 5. Дело в том что существует стандарт LSB, который создан специально для облегчения написания проприетарных программ. Он базируется на программной базе RHEL 5. То есть мы берём CentOS, компилируем в нём программу, и она потом везде работает. CentOS 5 это Linux 2.6.18, GLIBC 2.4 и GCC 4.1. GCC можно обновлять до более новой версии, но тогда придётся класть в архив с программой libstdc++.so.6 и создавать run.sh, с помощью которой программа увидит эту библиотеку. Таким образом можно положить в архив с программой любую нестандартную библиотеку, например libIL или libGLEW, а также если libGTK или libjpeg из стандарта LSB слишком старый, положить и его тоже.

Почему-то ВСЕ проприетарщики так и делают, и в итоге у них всегда всё работает. Даже в дистрибутивах Linux, которые ещё не вышли! Я сразу сказал что Valve делает неправильно, компилируя Steam в Ubuntu 12.04, и вот результат - SteamOS! Фанатики Ubuntu писали о том, что кроме Ubuntu ничего поддерживать не нужно, вот и не будет проблем с проприетарным ПО. Что Ubuntu и есть стандарт, а не какой-то там LSB. Но оказалось что Steam, скомпилированный в Ubuntu 12.04, не работает в... нет, не в Debian, не в Fedora и не в openSUSE. А в Ubuntu 12.10! Потому что в /usr/lib обновилось вообще всё, и пара библиотек-зависимостей поменяли свою версию. Но это ладно, это можно положить в «Steam/ubuntu_12_32», который в бета-версии занимал совсем немного места. Но потом вышел Ubuntu 13.04, всё повторилось, и программисты Valve взвыли «да сколько ж можно этому продолжаться?!», и положили в ubuntu12_32 вообще все базовые системные библиотеки Ubuntu 12.04! А именно 292,5 Мб.

Компилируя софт в CentOS 5, программист получает программу, которая запустится вообще везде. Если сделать «ldd бинарник», мы получим libjpeg62, libpng12, libopenssl 0.9.8 и так далее по списку. Каждый популярный дистрибутив Linux поддерживает совместимость с LSB, иначе фиг бы в убунте заработал Adobe Flash. В то время как открытое По компилируется в последнем компиляторе с последними версиями библиотек, проприетарное компилируется только так.