Application deployment
-
- Beiträge: 11
- Registriert: Mi 20. Jul 2022, 10:45
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: 64Bit
- Wohnort: 8222 Beringen (CH)
- Kontaktdaten:
Application deployment
Hallo,
Habe unter Mint 20.3 ein kleines Programm geschrieben. Rechnungsstellung für das neue Schweizer Zahlungssystem QR.
Nun wollte ich dies auf einer anderen Linux Distribution testen.
Habe einen Ubuntu 22.04 LTS installiert.
T'ja - nicht ganz unerwartet: es fehlt was (vorerst): libsqlite3.so
Aber dasselbe SQLite3 ist auch auf Ubuntu installiert. Habe die und das versucht (symlinks anpassen etc pp) aber komm zu keinem Erfolgs-Ergebnis.
Unter Delphi / WIN.. habe ich immer alles was für die Applikation nötig ist in dessen Programmverzeichnis (3-4 dll) - und das Vorhandensein auch geprüft. Hatte damit 22 Jahre keinerlei Probleme.
Darf ich fragen wie Ihr so was löst ?
Erich
Habe unter Mint 20.3 ein kleines Programm geschrieben. Rechnungsstellung für das neue Schweizer Zahlungssystem QR.
Nun wollte ich dies auf einer anderen Linux Distribution testen.
Habe einen Ubuntu 22.04 LTS installiert.
T'ja - nicht ganz unerwartet: es fehlt was (vorerst): libsqlite3.so
Aber dasselbe SQLite3 ist auch auf Ubuntu installiert. Habe die und das versucht (symlinks anpassen etc pp) aber komm zu keinem Erfolgs-Ergebnis.
Unter Delphi / WIN.. habe ich immer alles was für die Applikation nötig ist in dessen Programmverzeichnis (3-4 dll) - und das Vorhandensein auch geprüft. Hatte damit 22 Jahre keinerlei Probleme.
Darf ich fragen wie Ihr so was löst ?
Erich
Re: Application deployment
Könntest du die Fehlermeldungen angeben?
"Es fehlt was" und "Komm zu keinem Erfolgs-Ergebnis" sagen nicht viel aus.
Vielleicht mal "libsqlite3-dev" o.ä. installieren. Weiss aber nicht, ob das hier das Problem ist.
Und Linux ist nicht Windows - Shared Objects liegen normalerweise nicht im Programmverzeichnis.
"Es fehlt was" und "Komm zu keinem Erfolgs-Ergebnis" sagen nicht viel aus.
Vielleicht mal "libsqlite3-dev" o.ä. installieren. Weiss aber nicht, ob das hier das Problem ist.
Und Linux ist nicht Windows - Shared Objects liegen normalerweise nicht im Programmverzeichnis.
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1639
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Application deployment
Man kann unter Linux mit "file myexecutable" in Erfahrung bringen, welche Libs gebraucht werden und welche (falls gefunden) verwendet werden.
Re: Application deployment
"File" kenne ich nicht für diesen Zweck.fliegermichl hat geschrieben: Mi 20. Jul 2022, 12:37 Man kann unter Linux mit "file myexecutable" in Erfahrung bringen, welche Libs gebraucht werden und welche (falls gefunden) verwendet werden.
Code: Alles auswählen
ldd ./project1
Code: Alles auswählen
readelf -d ./project
Wahrscheinlich fehlt "libsqlite3-dev"
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1639
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Application deployment
Richtig, ldd war das.
-
- Beiträge: 11
- Registriert: Mi 20. Jul 2022, 10:45
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: 64Bit
- Wohnort: 8222 Beringen (CH)
- Kontaktdaten:
Re: Application deployment
Danke für die aufschlussreichen Antworten
missing libsqlite3.so war die Fehlermeldung.
Die Befehle ldd readlf und file kannte ich noch nicht
Bei ldd gab es keinen Eintrag über libsqlite3.so - dh es ist dynamisch (ich denke)
Nun habe ich das dev Paket installiert.
Ergebnis: dieser Fehler ist weg.
Jedoch nun kommt der nächste: SQLite3Connection1: Unable to open DatabaseFile (habe aber die funktionierende DB vom Entwicklungs PC rüberkopiert) nun denn :
Ich suche nun weiter (zB ändere den Programmstart und baue Fehlermeldungen ein)...denke da komm ich sukksessive hin (und lerne dabei)
missing libsqlite3.so war die Fehlermeldung.
Die Befehle ldd readlf und file kannte ich noch nicht
Bei ldd gab es keinen Eintrag über libsqlite3.so - dh es ist dynamisch (ich denke)
Nun habe ich das dev Paket installiert.
Ergebnis: dieser Fehler ist weg.
Jedoch nun kommt der nächste: SQLite3Connection1: Unable to open DatabaseFile (habe aber die funktionierende DB vom Entwicklungs PC rüberkopiert) nun denn :
Ich suche nun weiter (zB ändere den Programmstart und baue Fehlermeldungen ein)...denke da komm ich sukksessive hin (und lerne dabei)
- af0815
- Lazarusforum e. V.
- Beiträge: 6770
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Application deployment
Lass dir den Pfad mal ausgeben, unmittelbar vor dem Open. Ich wette, das die Pfade nicht stimmen. Die Pfade sollte man immer dynamisch erzeugen und nicht die aus dem OI verwenden, das geht sonst immer schief, wenn ein anderer Benutzer die verwendet. Ausserdem habe ich die Erfahrung gemacht, immer die Pfade absolut zu verwenden und keine Tilde etc. Auch relativ zur vermuteten aktuellen Position in der Dateistruktur ist fehlerbehaftet, die kann manchmal ganz anders sein als vermutetHB9FIH hat geschrieben: Do 21. Jul 2022, 08:58 Jedoch nun kommt der nächste: SQLite3Connection1: Unable to open DatabaseFile (habe aber die funktionierende DB vom Entwicklungs PC rüberkopiert) nun

Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 11
- Registriert: Mi 20. Jul 2022, 10:45
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: 64Bit
- Wohnort: 8222 Beringen (CH)
- Kontaktdaten:
Re: Application deployment
Ja ist klar -
Verwende auch immer absolute Pfadangaben.
Hole den Pfad (getcurrentdir) und setze das für den run.
Verwende auch immer absolute Pfadangaben.
Hole den Pfad (getcurrentdir) und setze das für den run.
- af0815
- Lazarusforum e. V.
- Beiträge: 6770
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Application deployment
Meiner Erfahrung nach muss das aktuelle Verzeichnis, nicht das sein, was man erwartetHB9FIH hat geschrieben: Do 21. Jul 2022, 11:50 Hole den Pfad (getcurrentdir) und setze das für den run.


Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 475
- Registriert: Do 15. Nov 2007, 16:58
- OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
- CPU-Target: i386, x64
- Wohnort: Gera
Re: Application deployment
Den Pfad von meinem Executeable hole ich mir, im OnCreate der MainForm, mitHB9FIH hat geschrieben: Do 21. Jul 2022, 11:50 Ja ist klar -
Verwende auch immer absolute Pfadangaben.
Hole den Pfad (getcurrentdir) und setze das für den run.
Code: Alles auswählen
ExecPath := ExtractFilePath(ParamStr(0));
mfg Ingo
- Ally
- Beiträge: 280
- Registriert: Do 11. Jun 2009, 09:25
- OS, Lazarus, FPC: Win und Lazarus Stable release
- CPU-Target: x64
Re: Application deployment
So geht es auch:
Gruß Roland
Code: Alles auswählen
ExecPath := ExtractFilePath(Application.ExeName);
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: Application deployment
Ally hat geschrieben: Do 21. Jul 2022, 17:45 So geht es auch:Gruß RolandCode: Alles auswählen
ExecPath := ExtractFilePath(Application.ExeName);
Hi!
Das ist nicht falsch. Seit ein paar Versionen geht's aber noch einfacher:
Code: Alles auswählen
ExecPath := Application.Location;
Winni
-
- Beiträge: 11
- Registriert: Mi 20. Jul 2022, 10:45
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: 64Bit
- Wohnort: 8222 Beringen (CH)
- Kontaktdaten:
Re: Application deployment
Danke, man liest und lernt viel aus den Antworten heraus.
Ich habe es nun im Griff. Kann das Programm ohne Probleme in Ubuntu 22.04 laufen lassen.
Das Arbeitsverzeichnis und das Datenbankverzeichnis kann man separat machen wenn man will.
Nur noch ein minor Problem - eine Grafik erscheint im Ubuntu noch obgleich vorhanden - muss nachhaltiger nachsehen.
73 Erich
Ich habe es nun im Griff. Kann das Programm ohne Probleme in Ubuntu 22.04 laufen lassen.
Das Arbeitsverzeichnis und das Datenbankverzeichnis kann man separat machen wenn man will.
Nur noch ein minor Problem - eine Grafik erscheint im Ubuntu noch obgleich vorhanden - muss nachhaltiger nachsehen.
73 Erich
- corpsman
- Lazarusforum e. V.
- Beiträge: 1617
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: Application deployment
Mal so blöd gefragt, warum nutzt ihr nicht eine Variante der "GetAppConfig*"
Da kriegt ihr System unabhängig immer nen Pfad / ein File auf das ihr schreiben dürft und das dann passend abgelegt wird...
Code: Alles auswählen
Function GetAppConfigDir(Global : Boolean) : String;
Function GetAppConfigFile(Global : Boolean) : String;
Function GetAppConfigFile(Global : Boolean; SubDir : Boolean) : String;
--
Just try it
Just try it
-
- Beiträge: 11
- Registriert: Mi 20. Jul 2022, 10:45
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: 64Bit
- Wohnort: 8222 Beringen (CH)
- Kontaktdaten:
Re: Application deployment
Ja, kenne ich.
Ich nehm für die Applikation das Current Dir, wenn ich in einem Parameter nicht was spezielles angebe.
Der Designer von LAzReport legt die config im AppConfig Dir ab, das lasse ich so.
Gute Zeit
Ich nehm für die Applikation das Current Dir, wenn ich in einem Parameter nicht was spezielles angebe.
Der Designer von LAzReport legt die config im AppConfig Dir ab, das lasse ich so.
Gute Zeit