Laz+FPC auf anderen Rechner kopieren?

Antworten
Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Laz+FPC auf anderen Rechner kopieren?

Beitrag von Timm Thaler »

Ich habe auf einem Raspberry Pi mit aktuellem Raspbian Stretch eine Laz 2.0.1 + FPC 3.2.0 Installation mit Fpcupdeluxe gemacht, nach user/Apps/Lazarus.

Nun möchte ich dieses Lazarus auf einem zweiten Pi haben. Der ist prinzipiell gleich aufgebaut (User, Verzeichnisstruktur), aber hat einige andere Aufgaben: SD-Karte kopieren geht nicht.

Auch dauert die Installation von Laz + FPC eine Weile, man muss einen großen Swap zum Kompilieren der IDE einrichten... das wollte ich mir sparen und habe das Lazarus-Verzeichnis per FTP nach Windows in das Raspberry-Backup-Verzeichnis und von dort auf den zweiten Pi kopiert. Waren auch so 64000 Dateien.

Erstes Problem: Natürlich sind die Programmdateien nicht ausführbar. Also abgeglichen und ausführbar gemacht. Zweites Problem: Die system.ppu wird nicht gefunden, die liegt aber genau da, wo sie liegen soll. Drittes Problem: Es werden erstmal ein Haufen pps kompiliert, die eigentlich schon kompiliert sein sollten, und dann wird mit einem Kompilerfehler abgebrochen. Ok, das liegt sicher an der nicht gefundenen system.ppu.

Nun bin ich ja in meiner Naivität davon ausgegangen, dass ich eine Laz + FPC Installation ins Userverzeichnis einfach auf einen anderen Pi umziehen kann. Das ist anscheinend nicht so, obwohl doch alle nötigen Dateien in dem Verzeichnis liegen. Selbst die Config liegt nicht in .config/lazarus (wo sie eigentlich hingehört...) sondern in Lazarus/config_lazarus.

Wie kann ich eine Laz + FPC Installation unter Linux sauber auf einen anderen (OS-gleichen) Rechner umziehen?

Und wie kann ich diese Installation minimieren, so dass nicht 64000 Dateien kopiert werden müssen - brauche ich denn die ganze fpcsrc-Dateien, wenn es einmal kompiliert ist?

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Laz+FPC auf anderen Rechner kopieren?

Beitrag von Warf »

man muss einen großen Swap zum Kompilieren der IDE einrichten...

Code: Alles auswählen

fallocate -l 2G /var/swapfile
mkswap /var/swapfile
swapon /var/swapfile

Die drei commands sollten eigentlich kein Hindernis sein, und sobald du den swap nicht mehr brauchst kannst du mit swapoff ihn deaktivieren und via rm den swapfile einfach löschen (wobei ich ihn gerne behalte falls ich ihn wieder brauche)

Zu deinem problem, exsistiert die fpc.cfg (/etc/fpc.cfg)? Und ist diese korrekt eingestellt? da sollte nämlich der Pfad zur System Unit angegeben werden. Wenn du die natürlich nicht mitkopiert hast ist klar das es nicht geht (keine Ahnung wie fpcupdeluxe funktioniert, ich mach normalerweise die installation per Hand, da weiß ich was wo liegt)

Nun bin ich ja in meiner Naivität davon ausgegangen, dass ich eine Laz + FPC Installation ins Userverzeichnis einfach auf einen anderen Pi umziehen kann. Das ist anscheinend nicht so, obwohl doch alle nötigen Dateien in dem Verzeichnis liegen. Selbst die Config liegt nicht in .config/lazarus (wo sie eigentlich hingehört...) sondern in Lazarus/config_lazarus.


Den Konfig Pfad kannst du über --primary-config-path (bzw -pcp) als option an lazarus übergeben, bzw diese Option in die lazarus.cfg schreiben

Und wie kann ich diese Installation minimieren, so dass nicht 64000 Dateien kopiert werden müssen - brauche ich denn die ganze fpcsrc-Dateien, wenn es einmal kompiliert ist?


Archivieren (z.b. tar.gz oder zip), das hättest du eh in erster Linie machen sollen, da dir deine Windows Zwischenstation sonst die dateien (z.B. berechtigungen, symlinks, etc.) zerschießt (hast du ja selbst schon bemerkt das die Programme die Ausführ Berechtigung verloren haben). Außerdem, wenn du es richtig machst kannst du während dem übertragen bereits entpacken, und da die cpu des Pi viel schneller ist als die SD Karte wär das wahrscheinlich alles in allem sogar viel schneller. Den FPC Source benötigt Lazarus für die Code Vervollständigung, brauchst du also, allerdings wird beim Kompilieren ne menge dateien erzeugt die du nicht zwangsläufig kopieren musst. z.B. die ganzen Object files der LCL, soweit ich weiß braucht der FPC zum laufen nur die vorkompilierte RTL (also vor allem die system unit), alles andere kann ad hoc kompiliert werden, vor allen LCL und FCL musst du die Object files und PPU's (vorkompilierte Header) normalerweise nicht kopieren

Mein ratschlag, installier es einfach neu, lass den raspi dafür einfach mal ein paar stunden im hintergrund/über nacht laufen, und dann kannst du dir sicher sein das alles funktioniert. Das kompilieren sollte auch nicht so viel länger dauern als das kopieren der Dateien.

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: Laz+FPC auf anderen Rechner kopieren?

Beitrag von Timm Thaler »

Warf hat geschrieben:Zu deinem problem, exsistiert die fpc.cfg (/etc/fpc.cfg)?


Es existiert eine /etc/fpc-3.0.0.cfg, aber noch aus der vorigen Installation per Paketmanager. Da hat der Paketmanager beim Deinstallieren wohl nicht richtig aufgeräumt. Die fpc.cfg liegt in Apps/Lazarus/fpc/bin/arm-linux, wo sie laut Lazarus auch gesucht wird.

Warf hat geschrieben:Mein ratschlag, installier es einfach neu


Hab ich gemacht, hat auch funktioniert. Nur beim Isntallieren von Anchordocking hat 1G swap nicht gereicht, also auf 2G erweitert, und dann hat es mir erstmal die SD-Karte ausgenockt. Jetzt richte ich den Spass gerade neu ein.

Btw: Wenn ich auf die Code Vervollständigung verzichte, kann ich dann auf die fpcsrc verzichten? Ich brauch Lazarus auf diesem Raspi eigentlich nur zum Debugging, geschrieben werden die Programme eh am PC. Ach blöd, zum Debugging braucht Lazarus auch die Sourcen...

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Laz+FPC auf anderen Rechner kopieren?

Beitrag von Socke »

Timm Thaler hat geschrieben:
Warf hat geschrieben:Zu deinem problem, exsistiert die fpc.cfg (/etc/fpc.cfg)?


Es existiert eine /etc/fpc-3.0.0.cfg, aber noch aus der vorigen Installation per Paketmanager. Da hat der Paketmanager beim Deinstallieren wohl nicht richtig aufgeräumt.

Konfigurationsdateien werden üblicherweise nicht gelöscht, damit sie für eine spätere Neuinstallation noch verfügbar sind. Hier hilft ggf. apt purge fpc (Befehl nicht geprüft).

Timm Thaler hat geschrieben:Ich brauch Lazarus auf diesem Raspi eigentlich nur zum Debugging, geschrieben werden die Programme eh am PC.

Vielleicht ist das Thema Remote Debugging etwas für dich?
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: Laz+FPC auf anderen Rechner kopieren?

Beitrag von Timm Thaler »

Socke hat geschrieben:Vielleicht ist das Thema Remote Debugging etwas für dich?


Leider nicht. Ich versuche damit Fehler in einem Telegram-Bot zu finden, der sich alle paar Tage mal verabschiedet. Wenn ich das per Remote machen würde, müsste ich den PC tagelang laufen haben, auch wenn ich nicht da bin.

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Laz+FPC auf anderen Rechner kopieren?

Beitrag von Warf »

Timm Thaler hat geschrieben:Leider nicht. Ich versuche damit Fehler in einem Telegram-Bot zu finden, der sich alle paar Tage mal verabschiedet. Wenn ich das per Remote machen würde, müsste ich den PC tagelang laufen haben, auch wenn ich nicht da bin.


Btw: Wenn ich auf die Code Vervollständigung verzichte, kann ich dann auf die fpcsrc verzichten? Ich brauch Lazarus auf diesem Raspi eigentlich nur zum Debugging, geschrieben werden die Programme eh am PC. Ach blöd, zum Debugging braucht Lazarus auch die Sourcen...


Ja dann müsstest du problemlos auf die Sources verzichten können, da kann ich dir dann aber eh empfehlen, lies dich mal ein bisschen in das Kommandozeilen Interface vom gdb ein, dann brauchst du nicht mal lazarus (und kannst alles via ssh machen)

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: Laz+FPC auf anderen Rechner kopieren?

Beitrag von Timm Thaler »

Ich habs jetzt nochmal mit Fpcupdeluxe installiert und diesmal lief es durch.

Witzig, Lazarus belegt mehr Speicher als das komplette Raspbian-OS.

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Laz+FPC auf anderen Rechner kopieren?

Beitrag von Warf »

Timm Thaler hat geschrieben:Witzig, Lazarus belegt mehr Speicher als das komplette Raspbian-OS.


Ist bei selbst Kompilierten programmen aber normal. Ich hab demletzt Chrome selbst kompiliert, das zieht etwa 100 GB. Der grund dafür ist das alle zwischenergebnisse des Kompilierens (also die Object files, etc.) noch vorhanden sind. Alles ist also doppelt und dreifach vorhanden

Antworten