[gelöst] Projektpfad in Linux

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

[gelöst] Projektpfad in Linux

Beitrag von Michl »

Servus,

bin am Testen, welches Linux mir nun am am besten liegt. Linux Mint KDE liegt aktuell vorn :)

Als Linuxnoob habe ich da aber mal eine Frage. Wohin speichert man idealerweise eigene Projekte und eigene Packages und warum?
Zuletzt geändert von Michl am Di 31. Mai 2016, 20:52, insgesamt 1-mal geändert.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: Projektpfad in Linux

Beitrag von Euklid »

Michl hat geschrieben:bin am Testen, welches Linux mir nun am am besten liegt. Linux Mint KDE liegt aktuell vorn :)
Eine gute Entscheidung, sehr anwenderfreundlich ;)
Als Linuxnoob habe ich da aber mal eine Frage. Wohin speichert man idealerweise eigene Projekte und eigene Packages und warum?
Unter Linux gibt es sehr viele Systemordner. Sofern Du Deinen Rechner als Single-User verwendest, solltest Du auf Deiner Platte einen Ordner "Persönliche Dateien" finden. Der "Schreibtisch" ist der Inhalt Deines Desktops. Ansonsten kannst Du nach Belieben Ordner hinzufügen und die von Dir gewünschte Ordnerstruktur schaffen. Ich habe da z.B. einen Ordner "Programmierung", unter dem ich sämtliche Projekte speichere.

- Euklid

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: Projektpfad in Linux

Beitrag von Michl »

Euklid hat geschrieben:Eine gute Entscheidung
:) ...wird sich noch zeigen. Zuerst war Mint durchgefallen, da bei Cinnamon und der Nutzung einer LiveCD Hinweisfenster spurlos verschwunden waren und das System nicht mehr reagierte. Mint mit KDE installliert scheint jetzt zu gehen.
Euklid hat geschrieben:Ich habe da z.B. einen Ordner "Programmierung", unter dem ich sämtliche Projekte speichere
Du meinst "/Programmierung" oder besser "/home/Michl/Programmierung"? Soweit ich das verstanden habe, wäre nur "/root" absolut ungeeignet, sonst gibt es keine Beschränkungen vom OS?

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Eb
Lazarusforum e. V.
Beiträge: 240
Registriert: Di 5. Feb 2008, 15:32
OS, Lazarus, FPC: Linux Mint - Laz 2.2.0
CPU-Target: 64Bit
Wohnort: Stuttgart

Re: Projektpfad in Linux

Beitrag von Eb »

Grundsätzlich würde ich eine eigene Partition für Daten machen.

Ich habe mehrere Linux Distributionen parallel auf dem Rechner, ich lösche mal eine,
dann kommt eine neue dazu ...
Dafür hat es sich bei mir bewährt eine Partition nur für Daten zu machen und diese unterhalb
meines home-Verzeichnisses einzubinden.
In dieser Datenpartition sind alle von mir programmierten Projekte.

Diese Partition ist zwischenzeitlich ein NAS-Laufwerk:
eb@intel-8400:~$ mount
/dev/sda10 on / type ext3 (rw,errors=remount-ro)
...
//nas-eb/eb on /home/eb/data type cifs (rw)
...

als die Partition noch lokal war, hat es so ausgesehen:
/dev/sda13 on /home/eb/data type reiserfs (rw)

Vorteil: alle Linuxe können darauf zugreifen und trotzdem hat jedes Linux ein Homeverzeichnis für sich,
wo distributionsabhängige Files, z.B. Daten vom jeweiligen window-manager,usw. drin abgelegt werden.

Eb

Requion
Beiträge: 106
Registriert: Mi 3. Feb 2016, 09:39
OS, Lazarus, FPC: Linux(Arch Linux(+ARM)/Minibian) (L 1.6.0 FPC 3.0.0)
CPU-Target: 32/64Bit,ARM(RPi)
Wohnort: nahe Grimma

Re: Projektpfad in Linux

Beitrag von Requion »

Hallo Michl,

erstmal +1 für Linux und +1 für Mint :).

Also das schöne am Linux ist das die Festplatte dir (als root bzw. Admin) gehört und du somit machen kannst was du willst. Ein wenig aufpassen solltest du trotzdem, was du da machst.
Michl hat geschrieben:Du meinst "/Programmierung" oder besser "/home/Michl/Programmierung"? Soweit ich das verstanden habe, wäre nur "/root" absolut ungeeignet, sonst gibt es keine Beschränkungen vom OS?
Also in der Regel ist empfohlen alles was du erstellst unter deinem Home Verzeichnis zu erstellen (/home/Michl zum Beispiel). Dadurch trennst du schonmal klar deine Daten von denen des Systems. Das gilt speziell für deine Projekte.
Eigene Packages 'kannst' du auch in das Packages Verzeichnis von Lazarus legen. Da musst du dann allerdings auch darauf achten das die Zugriffsrechte stimmen. Und schreiben kannst du in dieses Verzeichnis auch nur als root (oder mit sudo aber ich zähle das der einfachheit mal zusammen).
Ich würde dir für die Packages eher empfehlen einen Ordner dafür in deinem Home anzulegen und diesen als Suchpfad mitzugeben. Da sparst du dir wildes rumkopieren und anpassen der Zugriffsrechte.

Ich würde dir dringend davon abraten einen Ordner wie "/Programmierung" direkt im root-Verzeichnis "/" anzulegen. Damit erschwerst du dir nur selbst unnötig die Übersicht und das Arbeiten.

Hier mal noch eine gute Erläuterung der einzelnen Ordner und ihrer Bedeutung/Verwendung. Das ist zwar im Ubuntu Wiki aber im Allgemeinen gilt das für alle Linuxe. https://wiki.ubuntuusers.de/Verzeichnisstruktur/.
Mfg Requion

Das beste an Standards ist, dass es so viele davon gibt.

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: Projektpfad in Linux

Beitrag von Michl »

Requion hat geschrieben:Ich würde dir für die Packages eher empfehlen einen Ordner dafür in deinem Home anzulegen und diesen als Suchpfad mitzugeben.
So ähnlich hatte ich es probiert. Also passt das soweit. Danke!

Allerdings gefällt mir das Vorgehen von Eb recht gut. Ein NAS habe ich zwar hier nicht und Linux läuft in der VirtualBox, doch ich habe den Ordner für meine Projekte unter Windows freigegeben, sodaß ich mit anderen Rechnern darauf zugreifen kann. Das gleiche hatte ich jetzt mit Linux probiert, entsprechend https://wiki.ubuntuusers.de/Samba_Client_cifs/ und per

Code: Alles auswählen

sudo mount -t cifs -o rw //xxx/FPC /home/michl/FPC
den Ordner eingebunden. Das gute ist, Lazarus kann das Projekt öffnen, allerdings kann ich es nicht kompilieren, da das Projekt schreibgeschützt geöffnet wurde. Sollte dieses nicht mit " -o rw " lesen/schreiben ermöglichen?

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Eb
Lazarusforum e. V.
Beiträge: 240
Registriert: Di 5. Feb 2008, 15:32
OS, Lazarus, FPC: Linux Mint - Laz 2.2.0
CPU-Target: 64Bit
Wohnort: Stuttgart

Re: Projektpfad in Linux

Beitrag von Eb »

mount hat eine ganze Menge Optionen.
Bei meiner NAS-Freigabe (die deiner Windows-Freigabe ähnlich sein sollte) habe ich folgende verwendet:
(Diese Zeile steht in /etc/fstab)

//nas-eb/eb /home/eb/data cifs uid=1000,gid=1000,credentials=/etc/nas-credentials,iocharset=utf8,sec=ntlm 0 0

User-id und Group-ID findet man z.B. mit more /etc/passwd (die vordere 1000 ist glaube ich die userid)
...
eb:x:1000:1000:eb,,,:/home/eb:/bin/bash
...

den Eintrag 'credentials=/etc/nas-credentials' habe ich gemacht, damit das passwort nicht im Klartext in /etc/fstab drin steht.

more /etc/nas-credentials:
username=fritzle
password=geheim


die Rechte der Dateien sehen dann so aus:

root@intel-8400:/home/eb/data/lazarus/beispiele/listbox_combobox# ls -l
insgesamt 21451
drwxr-xr-x 2 eb eb 0 Sep 18 2010 backup
-rwxr-xr-x 1 eb eb 138668 Sep 14 2010 fpc-res.or
-rwxr-xr-x 1 eb eb 138264 Sep 14 2010 fpc-res.res
-rwxr-xr-x 1 eb eb 20584181 Sep 14 2010 project1
-rwxr-xr-x 1 eb eb 484 Sep 14 2010 project1.compiled
-rwxr-xr-x 1 eb eb 137040 Sep 18 2010 project1.ico
-rwxr-xr-x 1 eb eb 8057 Sep 18 2010 project1.lpi
-rwxr-xr-x 1 eb eb 406 Sep 7 2010 project1.lpr
-rwxr-xr-x 1 eb eb 417519 Sep 18 2010 project1.lrs
-rwxr-xr-x 1 eb eb 791 Sep 18 2010 project1.manifest
-rwxr-xr-x 1 eb eb 187056 Sep 14 2010 project1.o
-rwxr-xr-x 1 eb eb 278 Sep 18 2010 project1.rc
-rwxr-xr-x 1 eb eb 138130 Sep 14 2010 project1.res
-rwxr-xr-x 1 eb eb 2971 Sep 14 2010 unit1.lfm
-rwxr-xr-x 1 eb eb 3167 Sep 14 2010 unit1.lrs
-rwxr-xr-x 1 eb eb 191540 Sep 14 2010 unit1.o
-rwxr-xr-x 1 eb eb 3132 Sep 14 2010 unit1.pas
-rwxr-xr-x 1 eb eb 9491 Sep 14 2010 unit1.ppu
root@intel-8400:/home/eb/data/lazarus/beispiele/listbox_combobox#

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: Projektpfad in Linux

Beitrag von Michl »

Vielen Dank, so funktioniert das über das Netzwerk - bin begeistert!!! :D

Code: Alles auswählen

sudo mount -t cifs -o username=...,password=...,uid=1000,gid=1000,file_mode=0660,dir_mode=0770 //xxx/FPC /home/michl/FPC
Werde dann morgen fstab anpassen.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: Projektpfad in Linux

Beitrag von Michl »

Die ersten Projekte habe ich in Linux kompilieren und starten können, ging viel besser als nach den ersten Versuchen gedacht.

Eine Frage tut sich mir aber noch auf. Wie zuvor geschrieben, habe ich einen Netzwerkpfad gemountet, was soweit funktioniert (ich kann Projekte erstellen / kompilieren / Dateien erstellen). Allerdings kann ich ein erstelltes Projekt nicht von diesem Netzwerkpfad aus starten. Stelle ich unter Projekt -> Projekteinstellungen -> Compilereinstellungen -> Pfade -> Zieldateiname auf "/home/michl/tmp/project1" kann ich das Projekt auch starten.

Weiß jemand, was ich bei dem Mounten beachten muss, dass das Projekt dann auch ausführbar ist oder geht dies so nicht?

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

creed steiger
Beiträge: 958
Registriert: Mo 11. Sep 2006, 22:56

Re: Projektpfad in Linux

Beitrag von creed steiger »

könnte mit 660 zutun haben, da ist kein execute dabei wenn ich mich nicht vertue

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: Projektpfad in Linux

Beitrag von Michl »

creed steiger hat geschrieben:könnte mit 660 zutun haben, da ist kein execute dabei wenn ich mich nicht vertue
Bingo, mit 7 geht es (https://wiki.ubuntuusers.de/Rechte/).

TipTop - Vielen Dank!!!

Kann nun, ohne das Projekt an sich anfassen zu müssen, für Win32, Win64, Linux32 und Linux64bit kompilieren und testen. :mrgreen:

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Antworten