Difference between revisions of "Build current FPC and Lazarus for Raspbian/zh CN"
Line 1: | Line 1: | ||
{{Lazarus Documentation}} | {{Lazarus Documentation}} | ||
[[Category:Troubleshooting]] | [[Category:Troubleshooting]] | ||
− | Raspbian Buster ( | + | Raspbian Buster (基于 Debian 10 Buster),在存储库中有开用FPC和Lazarus, but they suffer from the same "design decisions" that don't allow for a nice experience, namely the smooth IDE rebuilding capability based on source packages that is possible with FPC/Lazarus official .deb packages vs the crippled experience with the official Debian/Raspbian packages. One wishes there were official FPC/Lazarus packages for Raspbian as there are for Intel Debian/Ubuntu, which are also frequently updated; not being that the case (at least for now), this page shows the steps for building your own FPC, FPC-source and Lazarus packages for Raspbian. Example shows steps for Lazarus 2.0.6 which includes FPC 3.0.4, most recent at the time of writing. Adjust accordingly. |
− | + | 要求: | |
− | * Raspberry Pi 4 Model B, 4 GB ( | + | * Raspberry Pi 4 Model B, 4 GB (更少的内存将需要swap), with appropriate cooling (author uses aluminum case that doubles as heatsink) to avoid throttling due to excessive heat |
* Latest Raspbian Buster fully updated | * Latest Raspbian Buster fully updated | ||
− | + | 步骤: | |
− | # | + | # 安装subversion: <code>sudo apt install subversion</code> |
− | # | + | # 获取bootstrap [https://sourceforge.net/projects/freepascal/files/Linux/3.0.2/fpc-3.0.2.arm-linux-eabihf-raspberry.tar/download FPC compiler]. The latest compiler is compiled with the previous version of itself. |
− | # | + | # 提取编译器。这将创建一个<code>fpc-3.0.2.arm-linux</code>目录。(NOTE: this folder must be on a linux FS [like Documents folder] as FAT doesn't allow the next step to work). |
− | # | + | # 在这个目录中, as pi user, 运行<code>./install.sh</code> |
# At the four prompts, answer <code>Enter, n, n, n</code>: this is, accept suggested directory <code>/home/pi/fpc-3.0.2</code>, no Textmode IDE, no documentation, no demos. Ignore <code>tar</code> warnings. Note the additional files written to <code>/home/pi</code>: <code>.fpc.cfg</code>, <code>.config/fppkg.cfg</code>, <code>.fppkg/config/default</code>. When the build is done, to delete this temporary bootstrap compiler these files and the <code>/home/pi/fpc-3.0.2</code> install directory need to be deleted. | # At the four prompts, answer <code>Enter, n, n, n</code>: this is, accept suggested directory <code>/home/pi/fpc-3.0.2</code>, no Textmode IDE, no documentation, no demos. Ignore <code>tar</code> warnings. Note the additional files written to <code>/home/pi</code>: <code>.fpc.cfg</code>, <code>.config/fppkg.cfg</code>, <code>.fppkg/config/default</code>. When the build is done, to delete this temporary bootstrap compiler these files and the <code>/home/pi/fpc-3.0.2</code> install directory need to be deleted. | ||
# Temporarily add FPC install directory to PATH: <code>export PATH=$PATH:$HOME/fpc-3.0.2/bin</code>. If you have to reboot for any reason before completing the FPC build, you have to do this step again. | # Temporarily add FPC install directory to PATH: <code>export PATH=$PATH:$HOME/fpc-3.0.2/bin</code>. If you have to reboot for any reason before completing the FPC build, you have to do this step again. |
Revision as of 07:24, 8 April 2020
│
English (en) │
中文(中国大陆) (zh_CN) │
Raspbian Buster (基于 Debian 10 Buster),在存储库中有开用FPC和Lazarus, but they suffer from the same "design decisions" that don't allow for a nice experience, namely the smooth IDE rebuilding capability based on source packages that is possible with FPC/Lazarus official .deb packages vs the crippled experience with the official Debian/Raspbian packages. One wishes there were official FPC/Lazarus packages for Raspbian as there are for Intel Debian/Ubuntu, which are also frequently updated; not being that the case (at least for now), this page shows the steps for building your own FPC, FPC-source and Lazarus packages for Raspbian. Example shows steps for Lazarus 2.0.6 which includes FPC 3.0.4, most recent at the time of writing. Adjust accordingly.
要求:
- Raspberry Pi 4 Model B, 4 GB (更少的内存将需要swap), with appropriate cooling (author uses aluminum case that doubles as heatsink) to avoid throttling due to excessive heat
- Latest Raspbian Buster fully updated
步骤:
- 安装subversion:
sudo apt install subversion
- 获取bootstrap FPC compiler. The latest compiler is compiled with the previous version of itself.
- 提取编译器。这将创建一个
fpc-3.0.2.arm-linux
目录。(NOTE: this folder must be on a linux FS [like Documents folder] as FAT doesn't allow the next step to work). - 在这个目录中, as pi user, 运行
./install.sh
- At the four prompts, answer
Enter, n, n, n
: this is, accept suggested directory/home/pi/fpc-3.0.2
, no Textmode IDE, no documentation, no demos. Ignoretar
warnings. Note the additional files written to/home/pi
:.fpc.cfg
,.config/fppkg.cfg
,.fppkg/config/default
. When the build is done, to delete this temporary bootstrap compiler these files and the/home/pi/fpc-3.0.2
install directory need to be deleted. - Temporarily add FPC install directory to PATH:
export PATH=$PATH:$HOME/fpc-3.0.2/bin
. If you have to reboot for any reason before completing the FPC build, you have to do this step again. - Test if all ok:
fpc abcd
. This invokes the just installed compiler trying to compile a non-existent file (abcd). A multiline message will be shown including the compiler version. - Non-step note: the following steps are mostly based on this
- Install development libraries:
sudo apt install libgtk2.0-dev libgpm-dev libncurses-dev
mkdir ~/pascal
cd ~/pascal
svn co https://svn.freepascal.org/svn/fpc/tags/release_3_0_4 fpc
, you have to be online for this and the next step to work.svn co https://svn.freepascal.org/svn/lazarus/tags/lazarus_2_0_6 lazarus
cd lazarus/tools/install
- Edit
create_fpc_deb.sh
, look for line with the following content:arm) ppcbin=arm; FPCArch=arm;;
, (currently line 109). Copy and paste this line below itself, so it will appear twice. Edit this copy to read like this:armhf) ppcbin=arm; FPCArch=arm;;
. Now save the changes and exit. - Run the script:
./create_fpc_deb.sh fpc ~/pascal/fpc/
. This will compile the latest compiler with the bootstrap compiler. It takes about 11 minutes. A.deb
file will be created:fpc-laz_3.0.4-yymmdd_armhf.deb
; the exact name will be shown at the end of the compilation. Rename the file with (NOTE: do not type the brackets): mv [file name shown at end of compilation]fpc-laz_3.0.4_armhf.deb
- You have completed the FPC build. Reboot the Pi to get rid of the temporary PATH.
- Uninstall the bootstrap FPC:
rm -rf ~/.fpc.cfg ~/.config/fppkg.cfg ~/.fppkg ~/fpc-3.0.2 ~/tmp
. Check what you just did:fpc abcd
should say command is not found. - Install the just created FPC Debian package:
sudo dpkg -i ~/pascal/lazarus/tools/install/fpc-laz_3.0.4_armhf.deb
. Check if it works:fpc abcd
should show the newly installed FPC compiler. cd ~/pascal/lazarus/tools/install
./create_fpc_deb.sh fpc-src ~/pascal/fpc/
. This builds the FPC source package in about 3 minutes:fpc-src_3.0.4-yymmdd_armhf.deb
. Rename with: mvfpc-src_3.0.4-yymmdd_armhf.deb
fpc-src_3.0.4_armhf.deb
- Edit
create_lazarus_deb.sh
, look for line with the following content:echo "$Arch is not supported."
, (currently line 86). Copy the 3 lines above it and paste them just below themselves: at this time it is copy lines 83 to 85 and paste them between lines 85 and 86. In the just pasted lines (lines 86-88), replacesparc
witharmhf
, andppcsparc
withppcarm
. Look for the firstfi
just below; copy and paste it below itself (copy line 91 below itself, so line 91 and 92 read the same). For you coders out there, you are adding anotherif
to a nestedif
, with its correspondingfi
. Now save and exit. ./create_lazarus_deb.sh
. This will build the Lazarus IDE Debian packagelazarus-project_2.0.6-0_armhf.deb
. It will take about 15 minutes.- Install the FPC source and Lazarus packages:
sudo dpkg -i fpc-src_3.0.4_armhf.deb lazarus-project_2.0.6-0_armhf.deb
- Save
*.deb
to another location, to reinstall later if needed or to share with friends: remember this is free software. cd
,rm -rf ~/pascal ~/tmp
You can now finally enjoy your fully working, fully up to date Lazarus. Find it in the Programming section of the Raspberry menu. A message titled "Error in EditorMacroScript" will be shown on first run; this also appears in the Raspbian Lazarus, reason still unknown to the original author of this page. Now try to install a package, for example lazreport
; it will work!
Want to help the FPC/Lazarus community? Host the resulting .deb
packages somewhere on the Internet and drop a note on the forum to let everyone know; rinse and repeat for every release.