Ловушки для капризных программ Крис Касперски Хакер, номер #089, стр. 089-106-2 * качество автоматических инсталляторов в большинстве своем оставляет желать лучшего, и скомпилированную программу еще долго приходится дорабатывать напильником, руками, хвостом и головой; * готовые сборки обычно включают в себя "бонусы" типа нестандартных цветовых схем и прочих компонентов, созданных сторонними разработчиками, которых в "официальных" исходных текстах может и не быть; * существует тысяча причин, по которым собранная "вручную" программа может работать неправильно или нестабильно. Например, пользователь активировал "соблазнительную" опцию, находящуюся в стадии "under construction" и приводящую к появлению глюков в самых неожиданных местах; * программы, собранные из исходников, значительно труднее удалить из системы, чем тот же rpm-пакет (впрочем, существуют утилиты, автоматизирующие этот процесс); * если необходимые нам опции отсутствуют в официальной сборке, например поддержка x86-64 в BOCHS, то практически всегда можно найти неофициальную сборку, в которой все это сделано за нас. Правда, далеко не все они собраны правильно; * пословица "лучше за день долететь, чем за час добежать" в условиях сурового корпоративного мира неприменима, и если готовая сборка хоть как-то гарантированно работает, то эксперименты с ручной компиляцией "за просто так" нам никто не оплатит. Универсального решения нет! Каждый путь содержит свои минусы и плюсы. Мыщъх рекомендует: сначала скачать готовую сборку, немного поработать с программой, разобраться в структуре каталогов, освоиться с основными возможностями и только потом приступать к экспериментам. По крайней мере, правильно собранный эталон у нас всегда будет перед глазами, и если компиляция пойдет наперекосяк (или собранная программа откажет в работе), то он поможет установить, что мы делаем не так и в каком направлении нужно вращать хвостом. [философская подготовка] Компиляция программы всегда начинается с чтения инструкции. Заходим на главный сайт, находим, где у них download, скачиваем changelog (changes, what's new, readme) и вдумчиво читаем. Чем отличается наша версия от этой, и нужны ли нам все эти нововведения или нет? Практика показывает, что большинство программ останавливается в своем развитии еще в зачатии, а затем "жиреет", наращивая избыточную функциональность, двигаясь по пути Microsoft. Не будем гнаться за модой, стремясь использовать последние версии программ только потому, что они "последние". Программа — это не игрушка! Это — инструмент! Даже небольшие изменения интерфейса или особенностей поведения зачастую приводят к жутким неудобствам и снижению производительности труда. Хороший хакер работает с клавиатурой, как заправский пианист, — пальцы так и летают. Все движения заучены наизусть, и переучиваться во имя новой версии никто не будет, если, конечно, эта версия не содержит чего-то действительно необходимого. Пользователи в этом отношении более прогрессивны и качают все, что только попадает в их поле зрения. Существует предубеждение, что лучше всего скачивать стабильные ветви (stable) или релизы (release), - дескать, они работают намного надежнее экспериментальных альфа/бета-версий. Какая-то доля правды в этом есть, но в общем случае дела обстоят не совсем так. Стабильные версии выходят достаточно редко. За это время в них находят баги, которые планомерно устраняются в промежуточных версиях со статусом "нестабильные". В промежутках между битвами с багами разработчики добавляют новые функциональные возможности или расширяют уже существующие. |