Публикации Разное

Установка Lazarus и Free Pascal Compiler в Linux и Windows

26.08.2004
Смирнов Сергей
В этом деле есть два пути: простой и сложный. Простой путь заключается в том, чтобы просто скачать и установить бинарный релиз Lazarus, ссылку на который можно без особого труда найти на сайте проекта. Наиболее крупный недостаток этого пути - то, что версия системы будет не самая новая. В условиях относительно быстрого развития проекта придется мучительно долго ждать очередного бинарного релиза, чтобы заполучить какую-нибудь "вкусность". Поэтому, рассмотрим второй путь, тем более, что первый и описывать особо нечего. Сразу хочу предупредить, что зеркала ftp-серверов fpc обновляются довольно хаотично, поэтому будьте внимательны к датам файлов, которые собираетесь закачать.

Установка в Windows

Для начала нужно запастись всем необходимым. Я имею ввиду набор пакетов, необходимых для сборки и запуска Lazarus. Их всего три: бинарный релиз компилятора fpc, исходники Lazarus и исходники компилятора. Минимально потребуются первые два. Я не хочу давать точные ссылки на них, так как они чрезвычайно изменчивы. Лучше расскажу, как их искать. Бинарный релиз fpc можно обнаружить и на сайте самого fpc и на сайте Lazarus. Лучше брать тот, который свежее. Распаковав полученный архив в отдельный каталог, запустим install.exe и, если для обратного нет веских оснований, согласимся установить компилятор в предложенный каталог C:\pp. После этого добавим в переменную окружения PATH (в файле autoexec.bat) путь к компилятору, причем обязательно в начало, например так:

PATH=%PATH%;C:\pp\bin\win32;C:\PROGRA~1\BORLAND\DELPHI6\BIN;C:\PROGR...

И перезагрузим компьютер. Далее будем искать самые новые исходники Lazarus. На практике - это ежедневный снапшот текущих исходников проекта, который можно обнаружить на каком-нибудь из зеркал ftp-сервера разработчиков fpc в каталоге вроде /pub/fpc/snapshot/lazarus. Скачаем и разархивируем (это будет архив lazarus.zip) исходники, допустим, в каталог C:\Lazarus, после чего запустим сеанс MS-DOS и выполним команды (их можно записать в bat-файл и запускать его):

cd \lazarus
windres -i lazarus.rc -o lazarus.res
make
ren lazarus.exe lazarus1.exe

Здесь мы в начале переходим в каталог исходных кодов, а затем просто запускаем сборку проекта в "автоматическом режиме". И не спрашивайте, зачем надо сначала скомпилировать файл ресурсов. Так устроен fpc в Windows. Последняя команда выглядит немного странно, но поверьте, без нее не обойтись. Когда мы будем пересобирать Lazarus из него самого (это необходимо при установке пакетов), он попытается перезаписать файл lazarus.exe и если тот будет загружен, а следовательно заблокирован операционной системой Windows, то случится ошибка линковщика. Именно поэтому мы переименовываем исполняемый файл и запускаем именно его. Разумеется, не обязательно использовать имя lazarus1.exe. Это может быть lazarus_safe.exe или любое другое имя, допустимое в ОС. Учитывая, что перекомпилировать Lazarus нам придется неоднократно, добавим в наш пакетный файл команды очистки. В итоге, например у меня, получается следующее:

cd \lazarus
del lazarus.exe
del lazarus1.exe
make clean
windres -i lazarus.rc -o lazarus.res
make
ren lazarus.exe lazarus1.exe

Если Lazarus благополучно собрался, то можно уже запустить lazarus1.exe (или как Вы его там назвали). И первое сообщение, которое мы увидим будет о том, что не указан каталог с исходниками fpc. Это нормально. Продолжим работу. Через пару секунд система закончит грузиться и мы сможем удовлетворенно покидать контролы на макет формы автоматически создавшегося проекта. Без исходников fpc ничего больше сделать не получится.

Если компиляция Lazarus завершилась сообщением об ошибке или его запуск вызвал ошибку, то проще всего день подождать и попытаться с новым снапшотом, либо получить обновление через сервер cvs проекта. Как правило Lazarus должен собираться той версией компилятора, которая рекомендуется на сайте Lazarus и которую мы, надеюсь, и установили. Итак, будем считать, что все в порядке. Приступим к заключительному этапу.

И тут нас может ждать одна большая проблема: довольно часто команда разработчиков fpc не снабжает промежуточный релиз компилятора исходниками. Именно так обстоят дела с последней на сегодня версией 1.9.4. Оставим это на их совести и посмотрим, что можно сделать. К счастью, разработчики Lazarus сами заботятся об этом и на их сайте обычно можно найти исходники практически точно соответствующие банарному релизу компилятора. Если окажется, что это не так, у нас не будет другого выхода, как собрать компилятор самостоятельно или "накатить" бинарный снапшот. Последний способ представляется мне гораздо более затратным. Есть в обновлении компилятора и другой соблазн: все невизуальные компоненты Lazarus входят в состав библиотеки fcl, которая является частью компилятора, поэтому собирать новейшую версию Lazarus старым fpc зачастую просто не имеет смысла.

Для начала скачаем снапшот исходников fpc с одного из зеркал его сервера. Обычно это ..../pub/fpc/snapshot/v19/source/fpc.zip или что-то вроде того. Распакуем архив в любое место (наверное, лучше, чтобы путь был без пробелов) и запустим сеанс MS-DOS, в котором вначале перейдем в корневой каталог исходников (это там, где каталоги compiler, demo, doc и т.д.), а потом (в предположении, что fpc у нас установлен в C:\pp\bin\win32) выполним пару команд:

make all PP=C:\pp\bin\win32\ppc386.exe
make install

Разумеется, если первая из команд завершится с ошибкой, то вторую выполнять не следует. В этом случае лучше подождать немного или, наоборот, взять более старые исходники. Больше ничего делать не надо. Если обе команды отработали успешно, то считайте, что у Вас уже новый компилятор. Теперь заново соберем и запустим Lazarus. Если это удалось сделать, то остается только указать ему каталог с исходниками fpc с помощью меню environment-environment options (окружение-параметры окружения). Если удалось найти исходники для уже готового бинарного дистрибутива fpc, то шаги с перекомпиляцией компилятора и Lazarus можно опустить. Всё. Lazarus готов к работе.

В заключение, не могу не заметить, что с каждым разом дистрибутив, подготовленный разработчиками Lazarus и включающий в себя всё необходимое, становится всё лучше и лучше. Пройдёт ещё немного времени и описанные здесь манипуляции будут нужны разве что для срочной сборки текущей девелоперской версии системы.

Установка в Linux

Если Вы еще не прочитали начало предыдущей главы, то самое время это сделать, потому, что установка Lazarus в Linux начинается с того-же самого: добывания установочных пакетов. Разница лишь в том, что бинарный дистрибутив fpc должен быть пригодным для Вашего дистрибутива Linux. У меня ASPLinux на 3-х дисках и поэтому я скачал и без малейших проблем установил rpm-пакет fpc 1.9.4. Исходники Lazarus и более свежей версии fpc у меня остались от установки под Windows.

Если у Вас простенький однодисковый дистрибутив, то, скорее всего, Вам придется сделать две вещи: доустановить пакеты binutils, make и gdb (которые проще всего найти на ftp-сервере разработчика дистрибутива) и создать симлинки на кой-какие библиотеки, используемые Lazarus. Например, для ALTLinux Junior мне пришлось выполнить вот такой нехитрый скрипт:

ln -s -i /usr/X11R6/lib/libX11.so.6.2 /usr/X11R6/lib/libX11.so
ln -s -i /usr/X11R6/lib/libXi.so.6.0 /usr/X11R6/lib/libXi.so
ln -s -i /usr/X11R6/lib/libXext.so.6.4 /usr/X11R6/lib/libXext.so
ln -s -i /usr/lib/libgdk-1.2.so.0.9.1 /usr/lib/libgdk.so
ln -s -i /usr/lib/libgdk_pixbuf.so.2.0.0 /usr/lib/libgdk_pixbuf.so
ln -s -i /usr/lib/libgtk-1.2.so.0.9.1 /usr/lib/libgtk.so
ln -s -i /lib/libm-2.2.5.so /lib/libm.so
ln -s -i /lib/libglib-1.2.so.0.0.10 /lib/libglib.so
ln -s -i /lib/libc-2.2.5.so /lib/libc.so

После этого можно собрать Lazarus просто командой make, находясь в корне каталога его исходников. "Пляски с бубном" как в Windows тут не нужны. В случае успешной сборки в этом каталоге появится исполняемый файл lazarus. Его и надо запускать. Еще удобнее создать на него ссылку на рабочем столе. И точно также надо указать расположение исходников используемой версии компилятора fpc. Если они у Вас есть. Если их нет, придется перекомпилировать компилятор. Как и в Windows, исходники fpc надо распаковать куда-нибудь и из их корневого каталога выполнить команды:

make all
make install

Только, в отличие от Windows, этого не будет достаточно. Вторая команда установит компилятор по-умолчанию куда-нибудь вроде /usr/local/lib/fpc в подкаталог 1.9.5, который можно там и оставить, а можно положить рядом с исходным, который у меня, например, лежит в /usr/lib/fpc. Можно также задать нужные префиксы еще при сборке, если не лень. Дальше необходимо создать новый файл конфигурации fpc.cfg, для чего предусмотрен специальный скрипт, который и надо выполнить, находясь в каталоге нового компилятора (у меня получилось в /usr/lib/fpc/1.9.5):

./samplecfg /usr/lib/fpc/1.9.5 /etc

Здесь /etc - это каталог, где у Вас лежит fpc.cfg. И, наконец, последнее, что нужно сделать - это создать новый симлинк (ppc386) в каталоге /usr/bin на новый компилятор. Всё. Еще раз компилируем Lazarus и если все нормально - можно работать.

"Подводные камни". Их, наверное, много, но я заметил пока два. Первый - если не удалить каталог /home/ваш_логин/.lazarus с настройкими среды, то можно получить мощный сбой при автоматической загрузке последнего проекта, если он использовал какой-нибудь нестандартный пакет (его ведь ещё не успели установить). Для борьбы с этим в последних версиях Lazarus даже предусмотрен специальный ключ командной строки --skip-last-project. Второй связан с русификацией. Если у Вас стоит локаль cp1251, то при первом запуске Lazarus на экране будут "иероглифы", так как русификация Lazarus рассчитана на KOI-8R. Придется действовать вслепую. Вот так можно выбрать меню "Окружение"-"Параметры окружения":

environment-environment options

И установить нужную кодовую страницу русификации среды Lazarus:

environment-environment options

Дальше надо нажать "OK", закрыть и повторно запустить Lazarus. Если удалить каталог с его настройками, то эту забавную процедуру придется повторить снова. В остальном, все проходит относительно гладко. Среда напоминает Delphi, хотя есть и отличия. Некоторое недоумение вызывает отсутствие компонент для работы с источниками данных. Разработчики объясняют это связью соответствующих пакетов с нестандартными библиотеками, в случае отсутствия которых эффект будет напоминать описанный выше первый "подводный камень". Но, что есть - то есть. На самом деле, установить пакет довольно легко, но это уже отдельная тема.

Актуальные версии
FPC3.2.2release
Lazarus3.2release
MSE5.10.0release
fpGUI1.4.1release
links