Programmeinstellungs- und Speicherpfad in Linux

In dieser Linux-Ecke dürfen nur Themen rund um Linux geschrieben werden.
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
Mokota
Beiträge: 60
Registriert: 26.04.2008 23:18
Kontaktdaten:

Programmeinstellungs- und Speicherpfad in Linux

Beitrag von Mokota »

Hi!
Da ich künftig auch das ein oder andere Programm für Linux portieren will hätte ich ein/zwei Fragen.

Und zwar habe ich damals bei Windows die Programmeinstellungen und den Standartspeicherpfad direkt im Programmordner gehabt.
Da neue Windowsversionen das nichtmehr zulassen, nutze ich derzeit den Appdata-Ordner für Einstellungen und den Dokumenteordner
als Standart-Speicherpfad.

In Linux (Ubuntu) scheint es aber ja nur das Homeverzeichniss zu geben (bzw. ist nur das nutzbar).
Dann kann ich es doch im Prinzip wieder wie zu alten Windowstagen machen und direkt im Programm die Einstellungsdatei und ein Ordner zum
Speichern reinpacken, oder?
Wäre zumindest auf die schnelle die einfachste Methode.

Und noch eine Frage... In Linux werden ja Programme nicht wie in Windows mittels Setupprogrammen installiert, also einfach das Proggi als zip oder rar verpackt releasen? Compilieren muss ich es natürlich in Linux, das ist mir klar.

Das wärs erstmal :)
MfG Mokota

EDIT: Noch eine Frage Ubuntu-spezifisch: Wo sind die Menüleisten der Programme? Hatte vorhin PB in Ubuntu am Laufen, die Iconleiste ist da, aber keine Menüleiste. Habe die aktuelle Windows-Installer Version von Ubuntu, liegt es vll. daran?
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Programmeinstellungs- und Speicherpfad in Linux

Beitrag von ts-soft »

Mokota hat geschrieben: In Linux (Ubuntu) scheint es aber ja nur das Homeverzeichniss zu geben (bzw. ist nur das nutzbar).
Dann kann ich es doch im Prinzip wieder wie zu alten Windowstagen machen und direkt im Programm die Einstellungsdatei und ein Ordner zum
Speichern reinpacken, oder?
Nein! Die Einstellungen schreibst Du in einem Versteckem Verzeichnis im HomeDir:

Code: Alles auswählen

PrefsPath.s = GetHomeDirectory() + ".Mokota/MeinProgramm/MyPrefs.prefs"
Die Ornder ".Mokota" und "MeinProgramm" sind natürlich erst zu erstellen. Wichtig ist der "." vor dem ersten Ordner!
Die Namen kannst Du natürlich anpassen.
Mokota hat geschrieben: EDIT: Noch eine Frage Ubuntu-spezifisch: Wo sind die Menüleisten der Programme? Hatte vorhin PB in Ubuntu am Laufen, die Iconleiste ist da, aber keine Menüleiste. Habe die aktuelle Windows-Installer Version von Ubuntu, liegt es vll. daran?
Wie beim Mac auch, Menüleisten sind in der oberen Leiste integriert!

Gruß
Thomas

// edit: Also so:

Code: Alles auswählen

Procedure.s GetPrefsFile(AppName.s, FileName.s = "settings.prefs", Publisher.s = "ts-soft")
  Protected Path.s, slash.s
  
  CompilerSelect #PB_Compiler_OS
    CompilerCase #PB_OS_Windows
      slash = "\"
      Path = GetEnvironmentVariable("APPDATA") + "\"
    CompilerDefault
      slash = "/"
      Path = GetHomeDirectory() + "."    
  CompilerEndSelect
  If Publisher
    Path + Publisher + slash
    If Not FileSize(Path) = - 2
      CreateDirectory(Path)
    EndIf
  EndIf
  Path + AppName + slash
  If Not FileSize(Path) = - 2
    CreateDirectory(Path)
  EndIf
  If FileSize(Path) = -2
    ProcedureReturn Path + FileName
  EndIf
EndProcedure
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Mokota
Beiträge: 60
Registriert: 26.04.2008 23:18
Kontaktdaten:

Re: Programmeinstellungs- und Speicherpfad in Linux

Beitrag von Mokota »

Okay, vielen Dank :)

Und wie schaut es mit dem Standart-Speicherpfad aus?
Bei Windows biete ich den "Dokumente"-Ordner beim Requester an...
Gibt es da einen speziellen Ordner in Linux der dem entspricht (und auf den man zugreifen kann) oder einfach ins Programmverzeichniss einen Ordner für Speicherdateien reinpacken?

Und die letzte Frage die noch überbleibt ist die Releasefrage... als rar/zip packen oder gibt es für Linux auch eine Setup-Lösung? Heißt ja immer Linux sei seit einiger Zeit auch für "Normaluser" einfach zu nutzen, aber ich denke mal viele kommen ohne Installer nicht klar.
Kenne mich da noch garnicht aus und ist absolutes Neuland, also sry für die Unwissenheit ^^
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Programmeinstellungs- und Speicherpfad in Linux

Beitrag von ts-soft »

Mokota hat geschrieben:Und wie schaut es mit dem Standart-Speicherpfad aus?
Da bietest Du das Homeverzeichnis an. Es gibt unter Ubuntu Unterordner wie Downloads, Dokumente, Videos usw.
diese sind aber nicht zwingend vorgeschrieben und haben lokalisierte Namen, die sollte der Anwender also selber
auswählen!
Mokota hat geschrieben: Und die letzte Frage die noch überbleibt ist die Releasefrage... als rar/zip packen oder gibt es für Linux auch eine Setup-Lösung? Heißt ja immer Linux sei seit einiger Zeit auch für "Normaluser" einfach zu nutzen, aber ich denke mal viele kommen ohne Installer nicht klar.
Kenne mich da noch garnicht aus und ist absolutes Neuland, also sry für die Unwissenheit ^^
rar und zip verwendet man unter Linux eigentlich nicht (möglich ist es natürlich), sondern tar/gz!
Also alle Dateien in einem Ordner unter Linux und dort mit Rechtsklick packen. Nicht unter Windows packen!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Mokota
Beiträge: 60
Registriert: 26.04.2008 23:18
Kontaktdaten:

Re: Programmeinstellungs- und Speicherpfad in Linux

Beitrag von Mokota »

Super, Danke für die schnellen Infos um die Uhrzeit :D

Und hilft bestimmt auch anderen Linux-Neulingen im Forum.

Und mit Blick auf Win8, muss man sich ja langsam mal mit alternativen auseinandersetzen :lol:
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Re: Programmeinstellungs- und Speicherpfad in Linux

Beitrag von remi_meier »

Diese Dokumente-, Videos-, Bilder-, ... Ordner sind standardisiert
und können per
xdg-user-dir DOCUMENTS
abgefragt werden. Siehe http://www.unix.com/man-page/OpenSolari ... -user-dir/

Wenn die Distribution aber diesen Freedesktop.org-Standard nicht
implementiert, dann sollte das HOME-Verzeichnis angegeben werden.

Ich würde also zuerst testen, ob das Programm xdg-user-dir
existiert, dann lesen, was es mir zurückgibt. Ansonsten einfach
das $HOME angeben.


Edit: Hier als Prozedur:

Code: Alles auswählen

ImportC ""
  system(name.p-utf8)
EndImport

; DESKTOP
; DOWNLOAD
; TEMPLATES
; PUBLICSHARE
; DOCUMENTS
; MUSIC
; PICTURES
; VIDEOS
Procedure.s GetUserFolder(name.s)
  Protected exists.i, pid.i, out.s
  
  exists = system("which xdg-user-dir")
  If exists = 0
    pid = RunProgram("xdg-user-dir", name, "", #PB_Program_Open|#PB_Program_Read)
    out = ""
    While ProgramRunning(pid)
      If AvailableProgramOutput(pid)
        out + ReadProgramString(pid)
      EndIf
    Wend
    
    If ProgramExitCode(pid) = 0
      ProcedureReturn out
    EndIf
  EndIf
  
  ProcedureReturn GetHomeDirectory()
EndProcedure

Debug GetUserFolder("DOCUMENTS")
Debug GetUserFolder("DOWNLOAD")
Debug GetUserFolder("bla")
Antworten