Wie kriege ich raus wo meine Anwendung liegt...
- 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: Wie kriege ich raus wo meine Anwendung liegt...
Zusammenfassend kann man also sagen, müsste ich eigentlich meine Anwendung nicht als .zip ausliefern, sondern mit einem Installer, der unter Linux das binary nach /usr/local kopiert und alle Daten im GetAppConfigDir(False), egal ob diese verändert werden oder nicht ablegt. Damit würde sich dann auch mein ursprüngliches Problem direkt erledigen, da es dieses dann schlicht nicht mehr gibt.
--
Just try it
Just try it
-
- 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: Wie kriege ich raus wo meine Anwendung liegt...
Naja, genaugenommen müsstest Du unter Linux so lange betteln, bis Deine Anwendung in die entsprechenden Repos aufgenommen wird. Und wie gut das funktioniert sehen wir ja bei Lazarus, wo die Version in den Repos immer so 2 Jahre hinterherhängt.corpsman hat geschrieben:Zusammenfassend kann man also sagen, müsste ich eigentlich meine Anwendung nicht als .zip ausliefern, sondern mit einem Installer, der unter Linux das binary nach /usr/local kopiert und alle Daten im GetAppConfigDir(False), egal ob diese verändert werden oder nicht ablegt. Damit würde sich dann auch mein ursprüngliches Problem direkt erledigen, da es dieses dann schlicht nicht mehr gibt.
Denn ein Installer, der ein Binary nach usr/local kopiert UND ausführbar macht, braucht meines Wissens wieder sudo, darf also auch wieder das System kaputtmachen oder Schadsoftware installieren. Dann gäbe es noch das Verzeichnis /opt für externe Programme, die nicht in den Repos sind.
- kupferstecher
- Beiträge: 431
- Registriert: Do 17. Nov 2016, 11:52
Re: Wie kriege ich raus wo meine Anwendung liegt...
Unter Windows ist das ja ein aehnliches Problem. Bei Portable Apps weiss ich nie wo ablegen. Unter C:Programme passt nicht, weil das Programm dort keine Configs schreiben darf. Trotzdem finde ich es als Nutzer angenehmer, einfach eine Exe zu starten anstatt erst eine Installation durchzufuehren, die sich irgendwie - man weiss nicht wie - ins System eingraebt. Gern mal noch mit Fehlern, weil irgend ein Pfad nicht passt. Selbst die Deinstallation kann noch schief gehen...corpsman hat geschrieben:Zusammenfassend kann man also sagen, müsste ich eigentlich meine Anwendung nicht als .zip ausliefern,
-
- 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: Wie kriege ich raus wo meine Anwendung liegt...
Doch, im Prinzip schon. Windows packt die dann in ein "Schattenverzeichnis" ins Userverzeichnis: C:\Users\Ich\AppData\Local\VirtualStore\Program Files (x86)\PonyProg2000kupferstecher hat geschrieben:Unter Windows ist das ja ein aehnliches Problem. Bei Portable Apps weiss ich nie wo ablegen. Unter C:Programme passt nicht, weil das Programm dort keine Configs schreiben darf.
Damit ist die Kombatibilität gegeben für Programme, die noch die ini ins eigene Programmverzeichnis speichern. Eigentlich gar nicht so schlecht gelöst, aber: Wenn man das nicht weiss, sucht man sich nen Wolf, denn im Programmverzeichnis liegt immer noch die alte unangetastete ini - ohne die Änderungen.
Re: Wie kriege ich raus wo meine Anwendung liegt...
Da wird wohl jeder für seine Anwendung passend, seinen Weg finden müssen.
Einige meiner Anwendungen werden zentral in großen Netzwerken zur Verfügung gestellt.
Die "Exe" wird also von zentraler Stelle irgendwo in einer Share gestartet und legt dann auf dem jeweiligen Client unter c:\Users\<NAME>\ ein Projektverzeichniss mit den nötigen lokalen Dateien an.
Eigentlich bin ich im Laufe der Zeit dazu über gegangen, das grundsätzlich so zu handhaben.
Einen Ordner mit Projektnamen und darunter die ausführbare Datei und von diesem Root aus die nötigen Unterverzeichnisse.
Dadurch liegt alles in einem Ordner und ist beisammen... ein Löschen der Applikation ist dann nur noch ein Löschen des Basisordners.
Passt natürlich nicht in die Microsoft Philosophie, aber die haben das ja auch ständig geändert über die Jahre, solange ich dabei bin und das ist seit WIN 3
Außerdem ist mein favorisiertes Vorgehen nicht von WIN abhängig! Oftmals habe ich die WIN-EXE und das Linux Binary nebeneinander im Ordner liegen.
Die Struktur funktioniert dann auf WIN und X Systemen...
Einige meiner Anwendungen werden zentral in großen Netzwerken zur Verfügung gestellt.
Die "Exe" wird also von zentraler Stelle irgendwo in einer Share gestartet und legt dann auf dem jeweiligen Client unter c:\Users\<NAME>\ ein Projektverzeichniss mit den nötigen lokalen Dateien an.
Eigentlich bin ich im Laufe der Zeit dazu über gegangen, das grundsätzlich so zu handhaben.
Einen Ordner mit Projektnamen und darunter die ausführbare Datei und von diesem Root aus die nötigen Unterverzeichnisse.
Dadurch liegt alles in einem Ordner und ist beisammen... ein Löschen der Applikation ist dann nur noch ein Löschen des Basisordners.
Passt natürlich nicht in die Microsoft Philosophie, aber die haben das ja auch ständig geändert über die Jahre, solange ich dabei bin und das ist seit WIN 3
Außerdem ist mein favorisiertes Vorgehen nicht von WIN abhängig! Oftmals habe ich die WIN-EXE und das Linux Binary nebeneinander im Ordner liegen.
Die Struktur funktioniert dann auf WIN und X Systemen...
Gruß, Michael
- kupferstecher
- Beiträge: 431
- Registriert: Do 17. Nov 2016, 11:52
Re: Wie kriege ich raus wo meine Anwendung liegt...
Ja, gehen tut es. Fühlt sich halt nicht richtig an, gerade wenn man darum weiß.Timm Thaler hat geschrieben:Doch, im Prinzip schon. Windows packt die dann in ein "Schattenverzeichnis" ins Userverzeichnis
[...]
Eigentlich gar nicht so schlecht gelöst, aber
Ändert man die Einstellungen in der Benutzerkontensteuerung, dann wird wieder nicht der Virtual Store verwendet... Ich habe mal einen Audioplayer benutzt, der daraufhin die Einstellungen komplett verworfen hat und auch ein Zurückstellen der Benutzerkontensteuerung hat nichts genutzt. Da muss irgend ein Manipulationsschutz im Programm die Konfigdatei "abgesichert" haben.
-
- 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: Wie kriege ich raus wo meine Anwendung liegt...
Welche Möglichkeiten hätte man denn sonst Programme, die noch das alte ini-System nutzen weiter zu verwenden?kupferstecher hat geschrieben:Fühlt sich halt nicht richtig an, gerade wenn man darum weiß.
Bei Linux sieht das nicht besser aus: Entweder liegen Konfigs in /etc, dann darf die aber auch nur der root bearbeiten. Oder sie liegen wild im /home als .program, in .program/xxx.conf, in .config/program.conf oder .config/program/xxx.conf verteilt. Jeder wie er lustig ist, selbst "große" Anbieter wie Mozilla machen da was sie wollen.
- kupferstecher
- Beiträge: 431
- Registriert: Do 17. Nov 2016, 11:52
Re: Wie kriege ich raus wo meine Anwendung liegt...
Man kann direkt unter C: ein eigenes Verzeichnis anlegen, wo das Programm drinliegt (FPCUpDeluxe macht das so) oder irgendwo in den eigenen Dateien, was aber auch wieder nicht schön ist (Trennung Programme/Daten). Der VirtualStore ist natürlich wichtig für Programme, die sich in geschützten Verzeichnissen installieren.Timm Thaler hat geschrieben:Welche Möglichkeiten hätte man denn sonst Programme, die noch das alte ini-System nutzen weiter zu verwenden?
Wie gesagt, grundsätzlich bevorzuge ich nach wie vor so Programme gegenüber einem Installer, zumindest bei kleineren Sachen. Dann gibts halt einen gewissen Wildwuchs mit den Ordnern, ist aber nicht so schlimm...
-
- 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: Wie kriege ich raus wo meine Anwendung liegt...
Äh, das ist so richtig häßlich, da hat man dann direkt unter C: einen Haufen Programmverzeichnisse liegen. So war das nicht gedacht.kupferstecher hat geschrieben:Man kann direkt unter C: ein eigenes Verzeichnis anlegen, wo das Programm drinliegt (FPCUpDeluxe macht das so)...
FPCUpDeluxe installiert bei mir nach C:\Tools\Lazarus_xxx. FPCUpDeluxe könnte direkt nach C:\Programme installieren, denn FPCUpDeluxe verlangt eh nach Admin-Rechten. Wenn da nicht die kleine Macke von Lazarus wäre, mit Leerzeichen im FPC Pfad nicht klarzukommen, und dummerweise ist C:\Programme ein Link auf C:\Program Files. Bämm! Und unter C:\Programme würde Neu-Kompilieren von Lazarus bei der Installation neuer Packages nicht funktionieren.
- 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: Wie kriege ich raus wo meine Anwendung liegt...
Vielen Dank für all eure Anmerkungen,
Ich denke da bleibe ich vorerst bei meiner Variante
Alles im Verzeichnis der Anwendung (.ini und in unterverzeichnissen) Das ist tatsächlich für die Entwicklung am einfachsten.
Die nummer mit den PID's unter Linux probiere ich aber mal aus, wenn das ordentlich geht, wäre das dann eine Linux Sichere Paramstr(0) ersatz variante *g*.
Ich denke da bleibe ich vorerst bei meiner Variante
Alles im Verzeichnis der Anwendung (.ini und in unterverzeichnissen) Das ist tatsächlich für die Entwicklung am einfachsten.
Die nummer mit den PID's unter Linux probiere ich aber mal aus, wenn das ordentlich geht, wäre das dann eine Linux Sichere Paramstr(0) ersatz variante *g*.
--
Just try it
Just try it
- 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: Wie kriege ich raus wo meine Anwendung liegt...
Ich habe unter win ein data Verzeichnis unter der root liegen, das ist genau für solche Sachen. Darunter gibt's es dann die weiteren Verzeichnisse. Das Data wird auch ins Backup einbezogen und damit ist alles gut.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).