Lazarus in Linux Anwendungsverwaltung

Für sonstige Unterhaltungen, welche nicht direkt mit Lazarus zu tun haben
Mathias
Beiträge: 6165
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Lazarus in Linux Anwendungsverwaltung

Beitrag von Mathias »

Und deswegen kommt beim Versuch, Lazarus mit Installer in C:/Programme, welches ein Synonym für C:/Program Files ist zu installieren die Fehlermeldung: "Gewählter Ordner enthält Leerzeichen, bitte wähle Sie einen Ordner ohne Leerzeichen."
Die Leerzeichen in Systempfaden ist wieder ein richtiger M$ Furzidee, so etwas gibt nur Probleme.
Unter Linux kann man nicht mal einen User anlegen, der etwas anderes hat als Kleinbuchstaben.

Code: Alles auswählen

tux-To-be-filled-by-O-E-M tux # adduser "Hello World"
adduser: Um Probleme zu vermeiden, sollte der Benutzername nur aus Buchstaben,
Ziffern, Unterstrichen, Punkten, Klammeraffen (@) und Bindestrichen bestehen
und nicht mit einem Bindestrich anfangen (wie durch IEEE Std 1003.1-2001
festgelegt). Zur Kompatibilität mit Konten auf Samba-Rechnern wird
außerdem $ am Ende des Benutzernamens unterstützt
tux-To-be-filled-by-O-E-M tux # adduser Hello World
adduser: Der Benutzer »Hello« existiert nicht.
tux-To-be-filled-by-O-E-M tux # adduser Hello
adduser: Bitte geben Sie einen Benutzernamen ein, der mit dem regulären Ausdruck übereinstimmt, der durch die NAME_REGEX[_SYSTEM]-Variable konfiguriert wurde.  Nutzen Sie die Option »--force-badname«,
um diese Prüfung zu deaktivieren oder ändern Sie die NAME_REGEX-Variable.
tux-To-be-filled-by-O-E-M tux # adduser hello
Lege Benutzer »hello« an ...
Lege neue Gruppe »hello« (1002) an ...
Lege neuen Benutzer »hello« (1002) mit Gruppe »hello« an ...
Erstelle Home-Verzeichnis »/home/hello« ...
Kopiere Dateien aus »/etc/skel« ...
Geben Sie ein neues UNIX-Passwort ein:


Generell sollte man wen möglich Leerzeichen vermeiden, dies besonders auch bei Lazarus-Projecten. Dafür gibt es _ .
Sonst kann man nicht mal eine Konsole von Lazarus aus starten.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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: Lazarus in Linux Anwendungsverwaltung

Beitrag von Timm Thaler »

Mathias hat geschrieben:Die Leerzeichen in Systempfaden ist wieder ein richtiger M$ Furzidee, so etwas gibt nur Probleme.


Aber das schon ziemlich lange und die meisten Programme kommen damit klar. Früher (tm) wurde Windows ausgelacht, weil sie nicht so schöne lange Dateinamen mit so vielen Sonderzeichen wie Unix und MacOS konnten.

Für den Computer ist ein Leerzeichen auch nur ein Binärcode.

Mathias hat geschrieben:Unter Linux kann man nicht mal einen User anlegen, der etwas anderes hat als Kleinbuchstaben.


Ähm, doch: https://www.heise.de/security/meldung/Aufregung-ueber-angebliche-Sicherheitsluecke-in-systemd-3761498.html

Mathias
Beiträge: 6165
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Lazarus in Linux Anwendungsverwaltung

Beitrag von Mathias »

Für den Computer ist ein Leerzeichen auch nur ein Binärcode.

Intern vielleicht schon, aber wen man mit der Konsole arbeitet nur ein Ärgernis.


Ziffern habe ich vergessen. Aber die gehen bei mir nur hinter einem Kleinbuchstaben.

Code: Alles auswählen

tux-To-be-filled-by-O-E-M tux # adduser 1234
adduser: Bitte geben Sie einen Benutzernamen ein, der mit dem regulären Ausdruck übereinstimmt, der durch die NAME_REGEX[_SYSTEM]-Variable konfiguriert wurde.  Nutzen Sie die Option »--force-badname«,
um diese Prüfung zu deaktivieren oder ändern Sie die NAME_REGEX-Variable.
tux-To-be-filled-by-O-E-M tux # adduser 1abc
adduser: Bitte geben Sie einen Benutzernamen ein, der mit dem regulären Ausdruck übereinstimmt, der durch die NAME_REGEX[_SYSTEM]-Variable konfiguriert wurde.  Nutzen Sie die Option »--force-badname«,
um diese Prüfung zu deaktivieren oder ändern Sie die NAME_REGEX-Variable.
tux-To-be-filled-by-O-E-M tux # adduser abc123
Lege Benutzer »abc123« an ...
Lege neue Gruppe »abc123« (1002) an ...
Lege neuen Benutzer »abc123« (1002) mit Gruppe »abc123« an ...
Erstelle Home-Verzeichnis »/home/abc123« ...
Kopiere Dateien aus »/etc/skel« ...
Geben Sie ein neues UNIX-Passwort ein:
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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: Lazarus in Linux Anwendungsverwaltung

Beitrag von Socke »

Mathias hat geschrieben:
Für den Computer ist ein Leerzeichen auch nur ein Binärcode.

Intern vielleicht schon, aber wen man mit der Konsole arbeitet nur ein Ärgernis.

Der Grund ist doch, dass es viel zu kompliziert ist, Dateinamen in einer Shell korrekt zu behandeln und als Programmparameter weiterzureichen. https://mywiki.wooledge.org/BashPitfalls listet eine ganze Menge davon auf.
In Binärprogrammen habe ich dieses Problem nie verstanden, der Systemcall zur Programmausführung execv erlaub schließlich jeden Parameter einzeln ohne Escaping mitzugeben.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

marcov
Beiträge: 1100
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Lazarus in Linux Anwendungsverwaltung

Beitrag von marcov »

Socke hat geschrieben:
Mathias hat geschrieben:
Für den Computer ist ein Leerzeichen auch nur ein Binärcode.

Intern vielleicht schon, aber wen man mit der Konsole arbeitet nur ein Ärgernis.

Der Grund ist doch, dass es viel zu kompliziert ist, Dateinamen in einer Shell korrekt zu behandeln und als Programmparameter weiterzureichen. https://mywiki.wooledge.org/BashPitfalls listet eine ganze Menge davon auf.


Das bash aus historische Grunde nicht dazu entworfen ist Leerzeichen elegant zu verwalten, meint nicht das Leerzeichen kompliziert sein. Was kompliziert ist, ist das man gewählt hat Kompatibilität mit alter Kram zu halten, und nicht es neu zu entwerfen.

Und eine menge von Unix nach Window geportete Software, wie GDB (und LD,AS,windres) vererbt diese misst.

In Binärprogrammen habe ich dieses Problem nie verstanden, der Systemcall zur Programmausführung execv erlaub schließlich jeden Parameter einzeln ohne Escaping mitzugeben.


Ja, das ist eine der wenige Aspekten wo *nix APIs Windows überlegen sind. Darum haben wir das auch in ExecuteProcess und später mit TProcess.Arguments so modelliert.

Antworten