Нет. Когда есть исходный код, это часто может помочь. Плюс компиляция из исходного кода может дать оптимизацию программы именно под моё оборудование! Примеры: обновляю я, значит, дистрибутив. Установленный с официального сайта ioquake3 ранее, перестаёт запускаться! В чём дело? Ввожу в консоли ioquake3, нажимаю Enter и вижу, что программа хочет библиотеку libopenal.so.0. А в дистрибутиве есть только libopenal.so.1! Одну можно положить в каталог с игрой. А если 20? На помощь приходят исходные тексты игры! Одна компиляция - и игра использует именно те версии библиотек, которые установлены в моей системе! (если это не игра, а просто программа, я могу отсечь ненужные зависимости, скомпилировав её из исходного кода. Например, собранная программа требует PulseAudio, а мне он не нравится и в системе у меня его нет!). Но это свободные игры, они часто интенсивно используют установленные в систему библиотеки. Закрытые игры используют немного системных библиотек, а чтобы не было такой ситуации, несут то, что используют, с собой! В каталоге с игрой или внутри файла игры (статическая линкока). Другая ситуация: бинарник слишком новый! Снова открытая игра, TeeWorlds. Скачиваю распоследнюю версию с официального сайта... Ба-бах! Все библиотеки есть, причём нужных версий! Но ошибка! Набираем в консол и видим: игра собрана с glibc 2.12.3, а у меня 2.12.2. Мой дистрибутив даже устареть не успел! Но уже что-то не запускает... Все старые программы, использующие glibc, запускаются и работают. Новые - нет. Поэтому я взял и скомпилировал TeeWorlds. Работает! А чтобы работало везде, надо делать статическую линковку. Только игра перестанет быть маленькой и скачивать её придётся в 3 раза дольше. Можно в каталог с игрой нужную библиотеку положить. В DooM III так и сделали... Третий случай: официальный бинарник 32-битный. Ну а я 64-битный хатю! Беру исходный код и компилирую. Ура! Вот в таких случаях мне, пользователю а не программисту, может понадобиться исходный код программы. При этом мой дистрибутив бинарный, а не source-базед. Исходники вообще полезны, только писать об этом долго. Новейший SVN/GIT бывает только в виде исходного кода.
|