0:17 AM Как я ставил транковый fpc и lazarus на Debian 7.6 x32 | |
Давно безуспешно бьюсь, чтобы поставить последний релиз компилятора и Лазаря на Линукс. Стабильный релиз на момент А вот с установкой транков приходится повозиться. Чтение мануала тоже не принесло пользы: буржуйский текст воспринимается тяжело o_O. Однако, охота пуще неволи. Потому я опять взялся за старое. Поставил в виртуалке свежий Дебиан с диска и приступил (за основу взят материал отсюда). Выражаю признательность за помощь и множество полезных советов Алексею Лагунову aka alexs (он же автор порта под Lazarus известного набора компонентов rxlib) 1. Установка необходимых библиотекставим следующие пакеты (очередность установки желательно соблюсти)
В терминале: качаем недостающий пакет x11proto-print-dev $ wget http://ftp.ru.debian.org/debian/pool/main/x/x11proto-print/x11proto-print-dev_1.0.5-2_all.deb ставим его $ sudo dpkg -i x11proto-print-dev_1.0.5-2_all.deb ставим остальные пакеты скопом (одной строкой) $ sudo apt-get install build-essential libx11-dev libxp6 libxp6-dbg libgdk-pixbuf2.0-dev libpango1.0-dev libgtk2.0-dev libxp-dev gdb
# gksudo synaptic 3. на Debian 9 из установки следует исключить пакеты libxp6, libxp6-dbg и libxp-dev, при этом добавить пакет libgl1-mesa-dev (иначе после установки некоторых компонент, использующих библиотеку LibGL.so, Lazarus при пересборке выдает невнятную ошибку компиляции). Таким образом, на Debian 9 установке необходимых пакетов будет выглядеть примерно так: $ sudo apt-get install build-essential libx11-dev libgdk-pixbuf2.0-dev libpango1.0-dev libgtk2.0-dev gdb libgl1-mesa-dev 2. Установка стабильной версии компилятора (для i386/amd64)качаем сорцы (на момент последней правки статьи текущим стабильным релизом компилятора была версия 3.2.0, но по прошествии времени версии обновляются, поэтому актуальную версию компилятора и его сорцов всегда смотрите здесь(для i386) или здесь (для amd64)) $ wget https://sourceforge.net/projects/lazarus/files/Lazarus%20Linux%20i386%20DEB/Lazarus%202.0.8/fpc-src_3.0.4-1_i386.deb
$ затем качаем сам компилятор $ wget https://sourceforge.net/projects/lazarus/files/Lazarus%20Linux%20i386%20DEB/Lazarus%202.0.8/fpc-laz_3.0.4-1_i386.deb ставим и его
$ wget https://sourceforge.net/projects/lazarus/files/Lazarus%20Linux%20amd64%20DEB/Lazarus%202.0.8/fpc-src_3.0.4-2_amd64.deb
$ sudo dpkg -i fpc-src_3.0.4-2_amd64.deb
$ wget https://sourceforge.net/projects/lazarus/files/Lazarus%20Linux%20amd64%20DEB/Lazarus%202.0.8/fpc-laz_3.0.4-1_amd64.deb
$ sudo dpkg -i fpc-laz_3.0.4-1_amd64.deb
Получаем в результате такое сообщение в терминале Running on linux Update(4.12.2017): если стабильная версия компилятора уже вышла, а окончательного релиза Lazarus'a до сих пор нет (а значит, нет и deb-пакетов), то можно скачать tar-архив отсюда, распаковать его в любую папку и запустить находящийся там install.sh. Это будет выглядеть примерно так (я скачал fpc 3.0.4 х32)
leyba@deb9:~/Downloads/fpc-3.0.4.i386-linux$ sudo ./install.sh
This shell script will attempt to install the Free Pascal Compiler
version 3.0.4 with the items you select
Install prefix (/usr or /usr/local) [/usr] :
Installing compiler and RTL for i386-linux...
Installing rtl packages...
Installing rtl-console
<skiped>
Installing unicode
Install Textmode IDE (Y/n) ?
Write permission in /etc.
Writing sample configuration file to /etc/fpc.cfg
Saved old "fpc.cfg" to "fpc.bak"
Writing sample configuration file to /usr/lib/fpc/3.0.4/ide/text/fp.cfg
Writing sample configuration file to /usr/lib/fpc/3.0.4/ide/text/fp.ini
Writing sample configuration file to /etc/fppkg.cfg
Saved old "fppkg.cfg" to "fppkg.bak"
Writing sample configuration file to /etc/fppkg/default
Saved old "default" to "default.bak"
End of installation.
3. Установка последних (транковых) версий fpc и lazarus.Чтобы не искать их по диску, складываем все в одну папку (например development) в домашней директории: создаем ее $ mkdir ~/development переходим в нее $ cd development ставим svn-клиента $ sudo apt-get install subversion Update (09.03.2018): под никсы появился GUI-шный вариант svn-клиента RabbitVCS. С его обзором можно познакомиться здесь. $ svn co http://svn.freepascal.org/svn/fpc/trunk/ fpc_trunk и транк Лазаря в папку lazarus_trunk $ svn co http://svn.freepascal.org/svn/lazarus/trunk lazarus_trunk
Компилируем и устанавливаем новый fcp: переходим в каталог с новым компилятором, удаляем ссылки на старый компилятор, собираем и ставим новый компилятор $ cd fpc_trunk чистим "старые" откомпилированные ресурсы (если транк fpc апдейтится. Кстати, про эту команду и ее опции неплохо написано здесь) $ make clean $ sudo rm -Rfv /usr/lib/fpc/3.3.1
$ make all OPT='-gl' PP=/usr/lib/fpc/3.0.4/ppc386 OVERRIDEVERSIONCHECK=1 ставим новый компилятор (установится сюда /usr/lib/fpc/3.3.1 - версия транка может меняться) с использованием ресурсов готового компилятора 3.0.4
добавляем симлинк в папке с бинарниками на транковый компилятор (Лазарус будет искать его именно там) $ sudo ln -sf /usr/lib/fpc/3.3.1/ppc386 /usr/bin/ppc386 соответственно для amd64 $ make all OPT='-gl' PP=/usr/lib/fpc/3.0.4/ppcx64 OVERRIDEVERSIONCHECK=1 $ sudo make install INSTALL_PREFIX=/usr PP=/usr/lib/fpc/3.0.4/ppcx64 OVERRIDEVERSIONCHECK=1 $ sudo ln -sf /usr/lib/fpc/3.3.1/ppcx64 /usr/bin/ppcx64 "перегоняем" сорцы транка из домашней папки в системную (все сорцы будут здесь /usr/share/src/fpc-3.3.1/fpc) $ sudo rm -Rfv /usr/share/src/fpc-3.3.1/fpc/ $ sudo make install sourceinstall PREFIX=/usr задаем симлинк для Лазаруса, где ему искать сорцы компилятора (для компиляции собственных ресурсов) $ sudo ln -sf /usr/share/src/fpc-3.3.1/fpc /usr/share/fpcsrc переопределяем конфигурационный файл с /etc/fpc.cgf на /usr/lib/fpc/3.3.1/samplecfg $ /usr/lib/fpc/3.3.1/samplecfg /usr/lib/fpc/3.0.4 /etc Update 6: строго говоря, сорцы можно оставить в папке со скачанной ревизией fpc (т.е. не применять команду sudo make install sourceinstall PREFIX=/usr). Необходимо лишь будет поправить пути в симлинке для Лазаря и конфига с usr/share/src/fpc-3.3.1/fpc на ~/development/fpc_trunk/ соответственно для для i386 все то же самое, только при компиляции бинарников указывается ppc386 Компилируем и устанавливаем новый Lazarus: переходим в каталог с транковым Лазарем, собираем и устанавливаем его $ cd ~/development/lazarus_trunk $ make clean (только, если ранее установленный каталог был обновлен) $ make $ make bigide Update 7: я предпочитаю сам выбирать, где среда будет хранить свои настройки. Для этого достаточно прибегнуть к этому способу. Update 8: чтобы ускорить процесс, описанный по ссылке выше создадим программно конфигурационный файл Лазаря: $ echo '--primary-config-path=~/development/lazarus_trunk/_config' > lazarus.cfg и папку для настроек среды: $ mkdir ~/development/lazarus_trunk/_config После окончания сборки идем в папку с транком лазаруса и запускаем startlazarus 4. "Доработка напильником". Update: справедливости ради отмечу, что написанное ниже уже не актуально для транков Лазаруса с версии 1.9 Но на этом еще не все, что поделаешь - законы жанра не позволяют ;-). После запуска среды мы можем увидеть в редакторе сообщений следующее: lazarus.pp(142,1) Warning: "crti.o" not found, this will probably cause a linking failure lazarus.pp(142,1) Warning: "crtn.o" not found, this will probably cause a linking failure Это значит, что среда не видит объектные файлы пакета gcc, а значит теряется возможность кросскомпиляции. Тогда ищем пакеты здесь: /usr/lib. У меня они нашлись здесь: /usr/lib/i386-linux-gnu Теперь выясняем, в чем дело. Открываем конфигурационный файл нашей IDE /usr/lib/fpc/3.1.1/samplecfg и обращаем внимание на текст (поскольку мы сидим под учеткой без root-прав, т.е мы как раз "No write premission in $sysdir") # Detect if we have write permission in sysdir. if [ -w "$sysdir" ] ; then echo Write permission in $sysdir. fpccfgfile="$sysdir"/fpc.cfg fppkgfile="$sysdir"/fppkg.cfg defaultfile="$sysdir"/fppkg/default compilerconfigdir="-d CompilerConfigDir=$sysdir/fppkg" else echo No write premission in $sysdir. fpccfgfile="$HOME"/.fpc.cfg fppkgfile="$HOME"/.config/fppkg.cfg defaultfile="$HOME"/.fppkg/config/default fi # Находим этот самый .fpc.cfg в домашней директории, открываем и видим (напомню, что у меня Дебиан i386, т.е. 32-разрядный): # path to the gcclib #ifdef cpui386 -Fl/usr/lib/gcc/i486-linux-gnu/4.9 #endif #ifdef cpux86_64 -Fl/usr/lib/gcc/i486-linux-gnu/4.9 #endif Непорядок! Добавим к выделенной строке через двоеточие еще строчку, чтобы компилятор искал необходимые библиотеки и там. Должно получиться так: #ifdef cpui386 -Fl/usr/lib/gcc/i486-linux-gnu/4.9:/usr/lib/i386-linux-gnu Сохраняем файл и запускаем Лазарус. Теперь можно его пересобрать, выше описанную ошибку мы не получим. Примечание: если в системе установлено неск. конфигурационных файлов (напр, "мусор" после ранее установленных, но потом удаленных версий fpc), то "текущий" (т.е. тот, который используется под вашей учеткой) можно найти командой: # fpc -vt bogus В результате будет показано из какого файла компилятор ищет пути к бибилиотекам, а заодно будут проверены эти самые пути на корректность. В терминале будет выведено что-то типа (вывод я подсократил за скобками <skiped>, и да, <user> - это имя вашей учетки): Configfile search: /home/<user>/.fpc.cfg Reading options from file /home/<user>/.fpc.cfg Path "./.fppkg/lib/fpc/3.1.1/units/i386-linux/*/" not found Path "/usr/lib/fpc/3.1.1/lib/i386-linux/" not found Free Pascal Compiler version 3.1.1 [2016/07/12] for i386 Copyright (c) 1993-2014 by Florian Klaempfl and others Searching file /lib/ld-linux.so.2... found Path "/usr/X11R6/lib/" not found Compiler: /usr/lib/fpc/3.1.1/ppc386 Target OS: Linux for i386 Using executable path: /usr/lib/fpc/3.1.1/ Using unit path: /usr/lib/fpc/3.1.1/units/i386-linux/httpd22/ <skiped> Using object path: /usr/lib/fpc/3.1.1/ Compiling bogus Searching file bogus... not found Fatal: Can not open file "bogus" Fatal: Compilation aborted Error: /usr/bin/ppc386 returned an error exitcode Так что, заодно можно проверить корректность других путей и устранить потенциальные косяки. Пока вроде все... | |
|
Всего комментариев: 2 | |
| |