Сборка FPC+Lazarus из своих исходников в Ubuntu 9.10

Модератор: Модераторы

Сборка FPC+Lazarus из своих исходников в Ubuntu 9.10

Сообщение leo_bs » 29.01.2010 01:35:33

На Убунту перешёл месяца 4 назад... - пока что всё только ломаю ;) один раз уже убил систему полностью, и один раз гнома снёс...
Позавчера взялся за Lazarus и FPC... удалось! ))))) на данный момент ничего не работает(!) вообще (!).
предыстория:
1) установил Лазарус и FPC из репозитория... Лазарус через Центр Приложений Убунту, Паскаль - через apt-get... Всё прекрасно встало и работало замечательно... начал экспериментировать...
2) ... хотелось создать приложение для доступа к MySQL-серверу через SSL, у штатного компонента FCL этой возможности не оказалось - решил дописать функции и свойства... дописал в сорцы находившиеся в /usr/share/fpcsrc по-моему... нужно было перекомпилировать FPC, как не мучался - не получилось...
3) ... решил всё снести и поставить заново в папку /home/... скачал сорцы fpc, скомпилировал, поставил... рядом с fpc создал fpc.cfg и поправил все пути... исправил пути в Lazarus'е... связка Lazarus+новый fpc работать не захотела (как всегда чего-то не хватило... но не знаю чего...).
4) подумал что лазарусу мешают предыдущие какие-нибудь настройки... удалил все папки прежнего fpc (включая сам компилятор и исходники) и файлы настройки лазаруса.. переустановил лазарус... не заработало.

Сейчас картинка такая: ставлю fpc+lazarus из репов (т.к. скачано уже - из архива ставится) так как описано в п.1 - не работает...

В связи с этим у меня два вопроса:
1) как правильно установить в Ubuntu fpc+lazarus так чтобы можно было пересобрать их из изменённых мной сорцов в любой момент... (возможно для этих дел существует какая-нибудь автоматизация? скрипт? сам лазарус пересобирается удобно... но почему-то в нём нет штатной возможности автоматически пересобирать FPC)
2) как вообще происходит процедура разработки и внесения изменений? что делать с изменёнными сорцами? отсылать через svn? расскажите кто знает, как ведётся разработка...

Добавлено спустя 23 часа 44 минуты 27 секунд:
Возможно мой опыт кому-нибудь будет полезен. Поэтому расскажу что натворил и как выходил из ситуации.
Во первых fpc и lazarus после 'ручного' удаления файлов fpc не реагировали на переустановку... - система не работала вообще.
Выяснилось что затёр компилятор ppc386 который должен был находится в папке /usr/lib/fpc/2.2.4 в результате скомпилировать было попросту нечем. Можно было конечно скачать и установить пакеты с ftp://ftp.freepascal.org/pub/fpc/dist/2 ... linux/deb/ ... но я этого делать не стал потому что у меня уже были скачаны исходники с svn (как их получить написано в предыдущем топике)
...
ни fpc ни лазарус на момент восстановления установлены не были...
схема восстановления
1. установил fpc
sudo apt-get install fpc
2. так как после ручного вмешательства fpc не ставился полностью, точнее не устанавливался компилятор ppc386...
а) скачал с ftp://ftp.freepascal.org/pub/fpc/dist/2 ... linux/deb/ пакет fp-compiler_2.4.0-0_i386.deb
б) открыл скачанный пакет как архив и извлёк из него готовый файл компилятора ppc386
в) зашёл под рутом в папку /usr/lib/fpc создал для нового компилятора свою директорию 2.4.0 и переместил туда извлечённый ppc386
г) создал ссылку на ppc386 в директории /usr/bin
3. после этого из папки с исходниками, скаченными с svn запустил установку нового компилятора
sudo make install
4. всё скомпилировалось нормально, удалил из /usr/bin ссылку на компилятор версии 2.4.0 и создал новую ссылку на вновь установленный компилятор версии 2.5.1... теперь уже после автоматической установки он инсталлировался в папку /usr/local/lib/fpc/2.5.1 (видимо trunk специально ставится в каталог, отличный от стабильной?)
5. теперь было необходимо скомпилировать лазарус, исходники я также выкачал с svn... с первого раза как обычно ничего не получилось
ошибка заключалась в том что пару дней назад, пытаясь очистить комп вручную от fpc, я удалил файл fpc.cfg...
для его создания я воспользовался утилитой fpcmkcfg которая расположилась по адресу /usr/local/bin...
6. созданный fpc.cfg я перенёс в /etc и отредактировал пути в соответствующей секции файла на пути к текущему компилятору версии 2.5.1.
7. после чего вновь была предпринята попытка собрать лазарус
sudo make install
на этот раз удачно
8. лишь после всего этого удалось запустить лазаруса (т.к. такая установка не создаёт ссылок в меню, запуск производился с помощью файла startlazarus, который в моём случае располагался в папке /home/my_user_name/lazarus, естественно в дальнейшем можно кинуть ссылку...)
9. т.к. скаченная с svn версия по-умолчанию является англоязычной, возникло естественное желание локализовать её... что и было сделано с помощью скрипта localize.sh, расположенного в папке /usr/local/share/lazarus

После всех проделанных манипуляций всё запускается и компилируется как надо.
Огромное спасибо тов. Paul_Ishenin с irc-канала на lazarus.freepascal.org который помог разобраться.
leo_bs
новенький
 
Сообщения: 10
Зарегистрирован: 27.01.2010 03:06:48
Откуда: Йошкар-Ола, Респ. Марий Эл

Re: Сборка FPC+Lazarus из своих исходников в Ubuntu 9.10

Сообщение Максим » 30.01.2010 19:18:20

leo_bs писал(а):7. после чего вновь была предпринята попытка собрать лазарус
sudo make install
на этот раз удачно

Этот пункт здесь, в принципе, лишний. Откомпилированный Lazarus можно запускать прямо из того каталога, где он собирался, без установки, засоряющей систему. Также это должно упростить последующую установку компонентов.

leo_bs писал(а):9. т.к. скаченная с svn версия по-умолчанию является англоязычной, возникло естественное желание локализовать её... что и было сделано с помощью скрипта localize.sh, расположенного в папке /usr/local/share/lazarus

Скачанная из SVN версия уже локализована. Для включения русского языка интерфейса, если он по каким-то причинам не включился автоматически (кстати, правильно ли у вас настроена локаль?), следует воспользоваться диалогом настройки IDE (см. Окружение (Environment) -> Параметры (Options) -> Рабочий стол (Desktop)). Скрипт localize.sh ничего не "локализует" и не должен запускаться конечными пользователями.
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 598
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Re: Сборка FPC+Lazarus из своих исходников в Ubuntu 9.10

Сообщение leo_bs » 30.01.2010 20:34:03

Максим, спасибо за прояснение ситуации :) . не претендую на стопроцентную достоверность... неточности и недочёты в моём повествовании точно есть - fpc+lazarus я только осваиваю. А на ubuntu работаю только 4 месяца...

Добавлено спустя 41 секунду:
информации маловато...

Добавлено спустя 13 минут 4 секунды:
сборка fpc и lazarus прямо в каталоги с исходниками осуществляется командой make all в этих самых каталогах?
leo_bs
новенький
 
Сообщения: 10
Зарегистрирован: 27.01.2010 03:06:48
Откуда: Йошкар-Ола, Респ. Марий Эл

Re: Сборка FPC+Lazarus из своих исходников в Ubuntu 9.10

Сообщение Максим » 30.01.2010 23:04:14

leo_bs писал(а):сборка fpc и lazarus прямо в каталоги с исходниками осуществляется командой make all в этих самых каталогах?

Да. Для FPC я пользуюсь командой
Код: Выделить всё
make clean all

Учитывайте, что, если Lazarus можно запускать прямо из каталога сборки, то FPC - нет: он требует установки. Так что ваши пункты 1-6, в принципе, верны.
Кстати, установить FPC можно также в домашний каталог:
Код: Выделить всё
make install PREFIX=~/fpc/2.5.1

Путь, естественно, меняете по своему усмотрению.
fpc.cfg при этом кладётся в домашний каталог.
После установки нужно добавить каталог с экзешниками FPC в переменную PATH.
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 598
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Re: Сборка FPC+Lazarus из своих исходников в Ubuntu 9.10

Сообщение leo_bs » 30.01.2010 23:25:23

В домашнюю директорию я тоже уже ставил - получалось нормально.
Ещё пара актуальных вопросов:
1) Как корректно (чисто) удалить fpc и лазарус, установленные командой make install? Через synaptic не получится?
2) Как правильно обновлять программы установленные при помощи make insall?
leo_bs
новенький
 
Сообщения: 10
Зарегистрирован: 27.01.2010 03:06:48
Откуда: Йошкар-Ола, Респ. Марий Эл

Re: Сборка FPC+Lazarus из своих исходников в Ubuntu 9.10

Сообщение Максим » 31.01.2010 01:18:07

leo_bs писал(а):1) Как корректно (чисто) удалить fpc и лазарус, установленные командой make install? Через synaptic не получится?

Нет. Удалить можно только вручную. Описание процесса сборки и установки FPC (в том числе и пути, в которые компилятор ставится) можно почитать здесь.

leo_bs писал(а):2) Как правильно обновлять программы установленные при помощи make insall?

Надёжнее всего удалять старые версии (вручную, разумеется) перед установкой новых.
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 598
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Re: Сборка FPC+Lazarus из своих исходников в Ubuntu 9.10

Сообщение leo_bs » 31.01.2010 03:11:10

Предположим что имеется чистая система Ubuntu, без установленного компилятора fpc (!)
Хочу выработать оптимальный алгоритм работы с fpc и лазарус в плане установки/обновления/удаления этой парочки...

Т.о. ситуация с fpc (касаемо самого компилятора как программы) такая:

  • Оптимальная установка fpc:
    • установка компилятора fpc из репозиториев: sudo apt-get install fpc
    • создание для fpc одноименной папки в домашней директории: /home/username/fpc
    • создание в папке fpc подпапки source (/home/username/fpc/source)
    • закачка исходников с помощью svn в папку /home/username/fpc/source
    • создание папки /home/username/fpc/bin
    • установка компилятора в папку /home/username/fpc/bin с помощью make install PREFIX=~/fpc/bin
    • создание файла fpc.cfg с помощью fpcmkcfg и размещение его в директории /home/username ??? или размещение fpc.cfg в директории /etc ???
    • корректировка путей в fpc.cfg на новый компилятор, размещённый по адресу /home/username/fpc/bin
  • Оптимальное обновление fpc:
    • Если не редактировались исходники:
      • очистить папки /home/username/fpc/source и /home/username/fpc/bin
      • закачать исходники с помощью svn в папку /home/username/fpc/source
      • повторить процедуру установки с помощью make...
    • Если исходники редактировались - ??? вообще-то этим вроде как svn занимается, но как он работает???
  • Оптимальное удаление fpc:
    • удалить папку /home/fpc
    • удалить fpc полученный из репозиториев: sudo apt-get autoremove fpc
    • удалить файл fpc.cfg из... /etc ? или из /home/username ? или из обеих папок?
    • что-то ещё удалить? :)

Ситуация с Лазарусом вроде бы попроще:
  • Оптимальная установка Lazarus:
    • создание в домашней папке директории: /home/username/lazarus
    • создание в папке /home/username/lazarus подпапки с именем source
    • создание в папке /home/username/lazarus подпапки с именем bin
    • закачка исходников с помощью svn в папку /home/username/lazarus/source
    • компиляция исходников лазаруса командой sudo make install PREFIX=~/lazarus/bin ?
    • при первом запуске корректировка путей к исходникам fpc
  • Оптимальное обновление Lazarus'a:
    • Если не изменяли исходники:
      • затираем содержимое папки /home/username/lazarus/source
      • закачиваем исходники с помощью svn в папку /home/username/lazarus/source
      • затираем содержимое папки /home/username/lazarus/bin
      • компилируем исходники с помощью make...
    • Если изменяли исходники - через svn ??? как ?
  • Оптимальное удаление Lazarus'a - удалить папку /home/username/lazarus
Последний раз редактировалось leo_bs 31.01.2010 03:31:46, всего редактировалось 1 раз.
leo_bs
новенький
 
Сообщения: 10
Зарегистрирован: 27.01.2010 03:06:48
Откуда: Йошкар-Ола, Респ. Марий Эл

Re: Сборка FPC+Lazarus из своих исходников в Ubuntu 9.10

Сообщение Максим » 31.01.2010 03:29:55

По установке: всё верно, fpc.cfg нужно разместить в домашнем каталоге (~). Также нужно добавить путь к каталогу с исполнимым файлом компилятора в переменную окружения PATH.

Насчёт SVN - читайте здесь.

По обновлению: не очищаете, а обновляете /home/fpc/source с помощью SVN. Из /home/fpc/bin рекомендую удалить все каталоги, кроме каталога с исполнимым файлом компилятора. Кстати, при наличии исполнимого файла компилятора в /home/fpc/bin можно пользоваться для пересборок им, и больше не ставить пакет из репозитария.

По удалению: вроде всё перечислено правильно. fpc.cfg надо удалить из обеих папок. :) Ну и из переменной PATH лишнее убрать.
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 598
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Re: Сборка FPC+Lazarus из своих исходников в Ubuntu 9.10

Сообщение leo_bs » 31.01.2010 03:41:13

Конечно вопрос о том где искать переменную PATH в Ubuntu относится больше к ОС, но всё-же - где находится переменная окружения PATH и как её редактировать?

Спасибо за интервью и ссылку на svn! :)

P.S.: надо же столько буков извести... может кому пригодица :)))
leo_bs
новенький
 
Сообщения: 10
Зарегистрирован: 27.01.2010 03:06:48
Откуда: Йошкар-Ола, Респ. Марий Эл

Re: Сборка FPC+Lazarus из своих исходников в Ubuntu 9.10

Сообщение Максим » 31.01.2010 20:28:21

leo_bs писал(а):Конечно вопрос о том где искать переменную PATH в Ubuntu относится больше к ОС, но всё-же - где находится переменная окружения PATH и как её редактировать?

Если используется интерпретатор bash, то в файле ~/.bashrc, если память не изменяет. Этот файл расположен в корне домашнего каталога. Он небольшой, и разобраться там несложно.

leo_bs писал(а):Спасибо за интервью и ссылку на svn! :)

Не за что :)

leo_bs писал(а):P.S.: надо же столько буков извести... может кому пригодица :)))

Этот вопрос всплывает периодически, поэтому, то, что вы не поленились свести всё воедино, будет полезно следующим поколениям ;)
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 598
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Re: Сборка FPC+Lazarus из своих исходников в WinXP

Сообщение alaken » 24.02.2010 07:44:15

Ни разу не собирал из исходников ни FPC ни Lazarus, подскажите как это сделать под Windows.
Есть исходники Lazarus и FPC 2.4.0 в бинарниках. С чего начать?

buildfaq.pdf не предлогать, ну или если только он на русском...
Последний раз редактировалось alaken 24.02.2010 13:01:10, всего редактировалось 1 раз.
alaken
постоялец
 
Сообщения: 221
Зарегистрирован: 18.02.2010 09:02:13

Re: Сборка FPC+Lazarus из своих исходников в Ubuntu 9.10

Сообщение v-t-l » 24.02.2010 11:22:19

Например, у меня Windows XP 32-bit
fpc.exe живет в c:\lazarus\fpc\2.4.0\bin\i386-win32
1. Исходники lazarus распаковать в c:\lazarus\
2. "Пуск - Выполнить... - cmd.exe"
Код: Выделить всё
C:
cd C:\lazarus
set PATH=c:\lazarus\fpc\2.4.0\bin\i386-win32;%PATH%
make clean bigide


Ни в коем случае не селите ни fpc, ни lazarus, ни свои проекты (программы) в пути с пробелами и/или нелатинскими буквами!
v-t-l
энтузиаст
 
Сообщения: 733
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Сборка FPC+Lazarus из своих исходников в WinXP

Сообщение alaken » 24.02.2010 12:21:22

у меня WinXP 32b

Исходник Lazarus из SVN у меня лежит C:\data\!projects\!lazarus\lazarus\

FPC лежит c:\programs\lazarus\fpc\2.2.4\bin\i386-win32\

сделал так
Код: Выделить всё
C:\data\!projects\!lazarus\lazarus\set PATH=c:\programs\lazarus\fpc\2.2.4\bin\i386-win32;%PATH%

C:\data\!projects\!lazarus\lazarus\make clean bigide

в результате:
Код: Выделить всё
MAKE Version 5.3  Copyright (c) 1987, 2008 CodeGear
Error makefile 14: Command syntax error

как отключить make CodeGear, чтобы использовался make FPC?
вышел из положения переимоновав ненужные make.exe в ~make.exe
Последний раз редактировалось alaken 24.02.2010 13:37:16, всего редактировалось 2 раз(а).
alaken
постоялец
 
Сообщения: 221
Зарегистрирован: 18.02.2010 09:02:13

Re: Сборка FPC+Lazarus из своих исходников в Ubuntu 9.10

Сообщение Padre_Mortius » 24.02.2010 12:43:41

Зайти в папку с исходниками lazarus и набрать
Код: Выделить всё
c:\programs\lazarus\fpc\2.2.4\bin\i386-win32\make.exe clean all
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: Сборка FPC+Lazarus из своих исходников в WinXP

Сообщение alaken » 24.02.2010 12:55:16

в общем добился того чтобы использовался правильный make...

но ключи

make clean bigide
и
make clean all

заканчивается следующими строками:

Код: Выделить всё
make[1]: Leaving directory `c:/data/!projects/!lazarus/lazarus/components' make -C packager clean
make[1]: *** No rule to make target `clean'.  Stop.
make[1]: Entering directory `c:/data/!projects/!lazarus/lazarus/packager'
make[1]: Leaving directory `c:/data/!projects/!lazarus/lazarus/packager'
make: *** [cleanlaz] Error 2


Что я не учел?

Добавлено спустя 19 часов 27 минут 38 секунд:
Re: Сборка FPC+Lazarus из своих исходников в Ubuntu 9.10
Установил FPC 2.4.0, компиляция прошла.
Вопрос если я с коммандной строки запускаю компиляцию
Код: Выделить всё
make clean all

куда вписать ключи для компилятора, чтобы использовались настройки шаблона RELEASE?
alaken
постоялец
 
Сообщения: 221
Зарегистрирован: 18.02.2010 09:02:13

След.

Вернуться в IDE, компилятор, отладчик

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru