Anfängerfrage: Best practice f.möglichst automatisches Setup

Für Installationen unter Linux-Systemen
Antworten
sierdolg
Beiträge: 66
Registriert: Mi 24. Okt 2012, 15:50

Anfängerfrage: Best practice f.möglichst automatisches Setup

Beitrag von sierdolg »

Liebe Lazarus-Profis,

Gegeben: unter Debian sind zwar fpc- und lazarus-Pakete übers Repository verfügbar, aber meistens nicht so aktuell; für Ubuntu wird es analog sein. - Die von Sourceforge (SF) beziehbaren deb-Pakete wiederum führen manchmal zu lästigen Pseudo-Update-Vorgängen, wenn apt aufgrund abweichender Namenskonventionen meint, das im Standardrepository sei "aktueller" als das manuell installierte SF-Paket. - So kommt man irgendwann auf den Wunsch, doch gleich frisch vom Faß zu zapfen.

Gesucht: Ein sinnvoller und robuster Weg, die Installation einer frischen Lazarus im eigenen Home in einem definierten Zustand (am besten also auf "tabula rasa") möglichst automatisiert (und damit reproduzierbar) hinzubekommen.

Erreicht: Mit folgendem Skript

Code: Alles auswählen

 
#!/bin/bash
 
BASEFOLDER="$HOME/SOFTWARE/lazarus/trunk-install/"
cd $BASEFOLDER
 
# check some requirements
if [ -z "$(which fpc)" ]; then # a fpc is needed
   echo 'Bitte erst einen fpc installieren! ("fp-compiler-3.0.0" oder besser)'
   exit
else
  echo "Verwendeter fpc: $(which fpc)"
fi
 
if [ -z "$(ls /usr/lib/x86_64-linux-gnu/libgdm.so)" ]; then
   echo 'libgpm-dev nicht installiert?'
   exit
fi
 
FOLDER="fpc" # Create this folder if necessary
if [ ! -d  $FOLDER ] ; then mkdir $FOLDER ; fi
if [ -z "$(ls $FOLDER)" ]; then # Checkout to an empty folder
   svn co http://svn.freepascal.org/svn/fpc/trunk $FOLDER
else # update this folder
  cd $FOLDER
  svn up
  cd ..
fi
 
FOLDER="lazarus" # Create this folder if necessary:
if [ ! -d  $FOLDER ] ; then mkdir $FOLDER ; fi
if [ -z "$(ls $FOLDER)" ]; then # Checkout to this folder if empty:
    svn co http://svn.freepascal.org/svn/lazarus/trunk $FOLDER
else # update this folder
  cd $FOLDER
  svn up
  cd ..
fi
 
# create current debs:
cd $BASEFOLDER/lazarus/tools/install/
sudo ./create_fpc_deb.sh  fpc       $BASEFOLDER/fpc
sudo ./create_fpc_deb.sh  fpc-src $BASEFOLDER/fpc
sudo ./create_lazarus_deb.sh  append-revision
 


werden Debian-Pakete erzeugt, die sich anschließend installieren lassen und die (durchaus vorteilhaft) auch den schnellen Wechsel zu einer früheren oder späteren Version gestatten, ohne alles neu durch die Mühle drehen zu müssen.

Man kann dann "/usr/bin/lazarus-ide" starten und die IDE neu kompilieren, um eine Installation innerhalb des eigenen $HOME zu erhalten.

Fragen:

  1. Läßt sich das Kompilieren der IDE inzwischen per Kommadozeilenwerkzeug bewerkstelligen? (Im Wiki steht, das sei nicht möglich, aber das mag ja veraltet sein?)
  2. Wie bekommt man am besten eine persönliche Auswahl an Packages "hinein"?
  3. Wie kann man selbstdefinierte Werkzeuge (Werkzeuge → Externe Werkzeuge einrichten → Hinzufügen) wieder einfügen, ohne immer alles über die GUI einfügen zu müssen?

Diese Fragen treiben offensichtlich viele um, aber gerade weil man so viele Möglichkeiten andiskutiert findet, erschließt sich dem Unerfahrenen schlecht, was mittlerweile Stand der Dinge ist (wenn ich beispielsweise den Ansatz "fpclazup" richtig verstanden habe, ist das eben gerade kein Weg, um den Zwischenschritt mit "fixierten" Debian-Paketen zu gehen).

Vielleicht können deshalb einmal einige "alte Hasen" kurz zusammenfassen, was sich für sie selbst bewährt hat (oder wie sie die umrissene Aufgabe angehen würden)?

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
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: Anfängerfrage: Best practice f.möglichst automatisches S

Beitrag von af0815 »

fpcup ?!

fpc installieren und Lazarus aus dem SVN bauen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

sierdolg
Beiträge: 66
Registriert: Mi 24. Okt 2012, 15:50

Re: Anfängerfrage: Best practice f.möglichst automatisches S

Beitrag von sierdolg »

Hm, auch wenn das keine Debian-Pakete baut (und somit, wenn ich es recht verstehe, immer nur das momentan in den Repositories Aktuelle holen kann) und für den Einsteigerbedarf erst mal viel zu komplex scheint, habe ich es versucht.

Dabei bin ich davon ausgegangen, daß http://wiki.freepascal.org/fpcup und die enthaltenen Readme.txt's die Dokumentation sind. Zitat aus ersterem: "... run the downloaded fpcup binary (e.g. fpcup_linux_x64 on a Linux 64 bit). Once that installed a working Lazarus IDE, ..."

Soweit kommt es aber gar nicht. Ich bekomme zwar ein fpc gebacken, von lazarus(-ide) aber weit und breit keine Spur. Die Ausgabe von "/fpcup-x86_64-linux -h" hilft in der Angelegenheit auch nicht weiter.

Das "fpclazup.lpr" aus dem Reiniero-fpcup-master wiederum läßt sich aber doch nur mit lazarus bauen, nehme ich an.

Die für mich von der Doku unbeantwortete Frage lautet also: "How does that [=fpcup_linux_x64] install a working Lazarus IDE" ?

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
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: Anfängerfrage: Best practice f.möglichst automatisches S

Beitrag von af0815 »

Bring das Readme hier mehr Erhellung für dich ? https://github.com/LongDirtyAnimAlf/Reiniero-fpcup/blob/master/Readme.TXT

Generell: Wenn du einen lauffähigen fpc hast, so kannst du Lazarus mittels SVN selbst bauen. Siehe auch http://wiki.lazarus.freepascal.org/Getting_Lazarus/de. Wenn der aktuelle stabile fpc in den Repos sind, so würde ich die einmal nehmen. Dann den Lazarus in einem Verzeichnis selbst bauen. Das kannst du auch dann in verschiedenen Verzeichnis wenn du willst wiederholen und du hast zB. ein Lazarusversion die der Entwicklerzeig ist und eine die der stabile Zweig ist. Wenn man jedem Lazarusaufruf mitgibt welche Konfiguration genommen wird, so sind die auch sauber vonneinander getrennt.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

sierdolg
Beiträge: 66
Registriert: Mi 24. Okt 2012, 15:50

Re: Anfängerfrage: Best practice f.möglichst automatisches S

Beitrag von sierdolg »

af0815 hat geschrieben:Bring das Readme hier mehr Erhellung für dich ? https://github.com/LongDirtyAnimAlf/Reiniero-fpcup/blob/master/Readme.TXT

Nein. Genau das hatte ich (unter anderem) gelesen, jedoch ohne Erhellung. Denn
1. heißt es, neuerdings "fpcup ONLY handles FPC" und "fpclazup" würde sowohl FPC als auch Lazarus installieren.
2. folgt weiter unten, "When done, it should have
- created a Lazarus_trunk shortcut on your desktop (Windows/Linux)
- a shell script in your home directory (*nix) linking to the installed Lazarus."

Genau das geschieht jedoch bei mir nicht. Passend dazu erscheinen unter ~/development/ auch nur 3 Verzeichnisse, nämlich "fpcbootstrap"; "fpc300bootstrap" und "fpc". Es wurde insbesondere also auch gar kein lazarus-SVN ausgecheckt.
Mit fpc scheint hingegen alles in Ordnung, was erstens die Ausgabe von "fpcup-x86_64-linux" nahelegt (nur INFO) und zweitens ein Aufruftest:

Code: Alles auswählen

~/development/fpc/bin/x86_64-linux/fpc.sh -V
Free Pascal Compiler version 3.0.0 [2017/02/02] for x86_64
 


Mein erster Gedanke war daher, ich hätte mit dem falschen Binary begonnen, denn im ausgepackten heruntergeladenen Reiniero-fpcup-master.zip findet sich im bin-Verzeichnis nur ein "fpcup-x86_64-linux" und kein "fpcuplaz-x86_64-linux". (Die etsprechenden widersprüchlichen Bezeichner seien hier mal fett hervorgehoben, damit das Problem leichter ins Auge fällt.)

Unvoreingenommen dachte ich also, das "fpcup-x86_64-linux" wäre nur für fpc zuständig und man müsse ein "fpcuplaz-x86_64-linux" benutzen. Das findet sich nirgends. Und der Inhalt des im selben Verzeichnis beiliegenden "fpcup.ini" spricht andererseits sehr wohl massiv dafür, daß dieses "fpcup-x86_64-linux" auch mit der Bereitstellung von Lazarus zu tun hat.

[quote] Generell: Wenn du einen lauffähigen fpc hast, so kannst du Lazarus mittels SVN selbst bauen. Siehe auch http://wiki.lazarus.freepascal.org/Getting_Lazarus/de. Wenn der aktuelle stabile fpc in den Repos sind, so würde ich die einmal nehmen. Dann den Lazarus in einem Verzeichnis selbst bauen. ... [quote]
Das werde ich jetzt mal versuchen - aber mir scheint alles sehr stark darauf hinzudeuten, daß genau das nicht der von den Machern vorgesehene Weg ist (weil ich dann ein Gutteil der eigentlich zu automatisierende Aufgaben wieder händisch übernähme) und laz.*up das eigentlich alleine kann.

Nur weiß ich nicht wie - das war der Grund meines Postings.

(Das banalste könnte noch sein, dem "fpcup-x86_64-linux" entweder eine Aufrufoption mitzugeben und/oder Einträge in einer der beiden INI-Files ändern zu müssen. Wenn dem so ist, dann ist es recht gut versteckt und hätte wenigstens einen Hinweis im README verdient ... und so hoffe ich, daß hier jemand mitliest, der es schon mal erfolgreich geschafft hat :o) )

sierdolg
Beiträge: 66
Registriert: Mi 24. Okt 2012, 15:50

Re: Anfängerfrage: Best practice f.möglichst automatisches S

Beitrag von sierdolg »

Einen Schritt weiter: "fpcup" ist tatsächlich nur für fpc zuständig. Das vermutete fpclazup (Binariy) gibt es seit wenigen Wochen als separaten Download.

Wo und wie man damit in wenigen Minuten ein lauffähiges lazarus erhält, habe ich http://wiki.freepascal.org/Getting_Lazarus/de#Verwenden_von_fpclazup ins Wiki ergänzt, wo es vermutlich besser aufgehoben und zu finden ist und zudem von den Fortgeschrittenen und Profis unter Euch noch um etliche nützliche Tips und Tricks ergänzt werden kann.

Antworten