Automatische Lazarus-installation: Installationsassistent

Für Installationen unter Linux-Systemen
camper3000
Beiträge: 31
Registriert: Fr 8. Jan 2010, 16:29

Automatische Lazarus-installation: Installationsassistent

Beitrag von camper3000 »

Nachdem ich mein Lazarus mit Mühe und Not unter ubuntu zum Laufen gekriegt habe,
kam mir die Idee einen Installationsassistenten für Lazarus zu schreiben (war nebenbei ne nette shellscriptübung).

Zum Start:
1. Runterladen: http://www.mediafire.com/?2l5p5hfmelp200g
2. Ausführbar machen: Rechtsklick auf Datei-->Eigenschaften-->Zugriffsrechte-->Datei als Programm ausführen-->OK
3. Ausführen: Doppelklick auf die Datei-->Im Terminal ausführen.

Der Assistent führt einen dann durch die Installation.
Das Ganze lässt sich natürlich auf direkt im Terminal machen, allerdings Ist das eingeben der Zusätzlich zu Installierenden Pakete (werden bei apt-get install lazarus nicht installiert) ziemlich anstrengend.

Ich hoffe das hilft allen die bis jetzt noch Probleme mit der Lazarusinstallation hatten.

mfg camper3000
Auch wenn man einen Hammer hat, ist nicht jedes Problem ein Nagel.

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: Automatische Lazarus-installation: Installationsassistent

Beitrag von MAC »

Ich schau es mir mal an.
Denn ich habe auch so meine Probleme Lazarus auf Linux zum laufen zu bringen...

Code: Alles auswählen

Signatur := nil;

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Automatische Lazarus-installation: Installationsassistent

Beitrag von Bauer321 »

gleich mal testen
-> Funktioniert bei mir unter Ubuntu 11.10 nicht, hier heißt der Pfad auch nicht Desktop sondern das ist dann ein anderer.
www.mcpatcher.net | www.hoeper.me

camper3000
Beiträge: 31
Registriert: Fr 8. Jan 2010, 16:29

Re: Automatische Lazarus-installation: Installationsassistent

Beitrag von camper3000 »

Mein Rechner hat ne relativ olle hardware, läuft also auf ubuntu 8.04
Wenn du dich einigermaßen mit Shellscript auskennst, einfach folgende Textzeilen durch cd <der Pfad wo die fpc-sources liegen> erstezen (mit Texteditor öffnen):
cd home
cd "$c"
cd Desktop

rein theoretisch kannst du auch einfach als root (Terminal: sudo nautilus) die Datei nach opt per Hand verschieben und dort via "Hier entpacken" den Spass entpacken.
Funzt genauso.

Hoffe konnte helfen
mfg camper3000
Auch wenn man einen Hammer hat, ist nicht jedes Problem ein Nagel.

Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Re: Automatische Lazarus-installation: Installationsassistent

Beitrag von theo »

Ist das wirkich so mühsam unter Ubuntu? (Vllt. eine blöde Frage, aber ich bin ein alter SuSEr)
Auf OpenSuSE muss man +- nur das RPM anklicken und gut is.

knight
Beiträge: 802
Registriert: Mi 13. Sep 2006, 22:30

Re: Automatische Lazarus-installation: Installationsassistent

Beitrag von knight »

theo hat geschrieben:Auf OpenSuSE muss man +- nur das RPM anklicken und gut is.


Prinzipiell ist es unter Ubuntu genau so einfach. Probleme rühren meist von anderer Seite her. Installiert man z.B. Lazarus mit dem Paketmanager, dann braucht man für eine Neukompilierung der IDE (z.B. bei einer Komponenteninstallation) ebenfalls erweiterte Rechte.

knight

Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Re: Automatische Lazarus-installation: Installationsassistent

Beitrag von theo »

knight hat geschrieben: Installiert man z.B. Lazarus mit dem Paketmanager, dann braucht man für eine Neukompilierung der IDE (z.B. bei einer Komponenteninstallation) ebenfalls erweiterte Rechte.


Ja, das ist hier nat. das gleiche Problem.
Ich installiere auf einem neuen BS immer zuerst das Ganze mit RPM.
Dann sind alle Abhängigkeiten inkl. FPC installiert.
Dann kommt Lazarus gleich wieder weg, und ich bau's von SVN.
FPC upgrade ich nicht oft, deshalb stört mich da eine Root-Installation nicht.

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1496
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: Automatische Lazarus-installation: Installationsassistent

Beitrag von corpsman »

Guten Morgen allerseits,

Mir gehts wie Theo, ich will Lazarus aktuell halten und update den FPC nur wenn ich muss.

Nachdem es in den letzten Tagen in der Mailingliste heis her ging habe ich daraus mal mein "Eigenes" bash skript für Ubuntu gemacht. Evtl nutzt es ja jemanden, bei mir scheint es jedenfalls zu funktionieren, damit ihr es nutzen könnt müsst ihr lediglich die Variable LAZPATH anpassen, das ganze als updata.sh speichern ausführbar machen und aus ner Konsole starten.

Code: Alles auswählen

#!/bin/bash      
echo "This Skript downloads the newest SVN version and recompiles the IDE"
echo "whith all tools and packages. Logfile => protocol.txt"
# Type here the Path where your lazarus is lacated to.
LAZPATH="/home/corpsman/lazarus/"
# Switch to lazarus path
cd $LAZPATH
# clean old files and store
echo "First clean everything"
make clean > protocol.txt
# make the svn update
echo "Update from the SVN"
svn update >> protocol.txt
# Compile the tools
echo "Compile the tools"
make lazbuild lcl ideintf components tools starter >> protocol.txt
# Compile the IDE with all packages ( Myprofile )d
echo "Compile the IDE"
EXECCOMMAND="lazbuild --build-ide= --build-mode="
exec $LAZPATH$EXECCOMMAND  >> protocol.txt
echo "Finished."
--
Just try it

DiBo33
Beiträge: 334
Registriert: Do 11. Okt 2007, 18:01

Re: Automatische Lazarus-installation: Installationsassistent

Beitrag von DiBo33 »

Wenn du statt /home/corpsman/ $HOME/ nimmst, passt sich das Script automatisch am Userhome an.

exec $LAZPATH$EXECCOMMAND würde ich ändern in exec "$LAZPATH"$EXECCOMMAND falls sich Leerzeichen im $LZPATH befinden.

lacated => located :D

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1496
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: Automatische Lazarus-installation: Installationsassistent

Beitrag von corpsman »

*g*

Genau deswegen hab ich es veröffentlicht, war mir doch gleich klar, dass man an dem Skript noch was verbessern kann ;).

Code: Alles auswählen

#!/bin/bash      
echo "This Skript downloads the newest SVN version and recompiles the IDE"
echo "whith all tools and packages. Logfile => protocol.txt"
# Type here the Path where your lazarus is located to.
LAZPATH=$HOME"/lazarus/"
# Switch to lazarus path
cd $LAZPATH
# clean old files and rewrite protocol.txt
echo "First clean everything"
make clean > protocol.txt
# make the svn update
echo "Update from the SVN"
svn update >> protocol.txt
# Compile the tools
echo "Compile the tools"
make lazbuild lcl ideintf components tools starter >> protocol.txt
# Compile the IDE with all packages ( Myprofile )d
echo "Compile the IDE"
EXECCOMMAND="lazbuild --build-ide= --build-mode="
exec "$LAZPATH"$EXECCOMMAND  >> protocol.txt
echo "Finished."


Kannst du mir auch erklären warum ich nach beenden des Skriptes das "Finished." nicht in der Konsole lesen kann ?
--
Just try it

DiBo33
Beiträge: 334
Registriert: Do 11. Okt 2007, 18:01

Re: Automatische Lazarus-installation: Installationsassistent

Beitrag von DiBo33 »

Kannst du mir auch erklären warum ich nach beenden des Skriptes das "Finished." nicht in der Konsole lesen kann ?


Nö, für mich ist kein Grund ersichtlich, mach mal noch eine Leerzeile zum Schluß.

Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Re: Automatische Lazarus-installation: Installationsassistent

Beitrag von theo »

Warum verwendest du dort "Exec"?
Ich hab's mal ohne gemacht und noch strip eingefügt.
Funzt prima hier. Danke.

Code: Alles auswählen

#bin/sh
echo "This Skript downloads the newest SVN version and recompiles the IDE"
echo "whith all tools and packages. Logfile => protocol.txt"
# Type here the Path where your lazarus is located to.
LAZPATH=$HOME"/lazarus/"
# Switch to lazarus path
cd $LAZPATH
# clean old files and rewrite protocol.txt
echo "First clean everything"
make clean > protocol.txt
# make the svn update
echo "Update from SVN"
svn update >> protocol.txt
# Compile the tools
echo "Compile the tools"
make lazbuild lcl ideintf components tools starter >> protocol.txt
# Compile the IDE with all packages ( Myprofile )d
echo "Compile the IDE"
EXECCOMMAND="lazbuild --build-ide= --build-mode="
"$LAZPATH"$EXECCOMMAND  >> protocol.txt
# Strip
echo "Strip"
/usr/bin/strip --strip-all "$LAZPATH"lazarus
/usr/bin/strip --strip-all "$LAZPATH"startlazarus
/usr/bin/strip --strip-all "$LAZPATH"lazbuild
echo "Finished."

DiBo33
Beiträge: 334
Registriert: Do 11. Okt 2007, 18:01

Re: Automatische Lazarus-installation: Installationsassistent

Beitrag von DiBo33 »

Warum verwendest du dort "Exec"?

Uups gar nicht gesehen, deswegen kommt auch kein Finished

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1496
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: Automatische Lazarus-installation: Installationsassistent

Beitrag von corpsman »

Ich hatte anfangs die String Variablen nicht drin, und da wars dann so, dass der Rechner immer schrieb, dass es nicht geht ...

Aber nun scheint es auch ohne exec zu funktionieren *g*.

Danke.
--
Just try it

Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Re: Automatische Lazarus-installation: Installationsassistent

Beitrag von theo »

Ich habe noch ein bisschen an dem Script gefeilt.
Bin kein "basher" und weiss nicht, ob das so elegant ist.
Funktionieren tut's bei mir, aber ich hab's nicht stundenlang getestet.
Neu ist, dass es nur dann neu kompiliert, wenn es Änderungen in SVN gegeben hat.
Ausserdem stript es und baut nicht immer die ganze Geschichte neu.
Kann man alles mit Parametern auf der Shell konfigurieren.

Das kann ja jeder noch nach seinem Geschmack anpassen.

Code: Alles auswählen

#bin/sh
echo "This script downloads the newest SVN revision and recompiles the IDE"
# Type here the Path where your lazarus is located to.
LAZPATH=$HOME"/lazarus/"
 
STRIPCMD="/usr/bin/strip --strip-all "
SVNPROTOFILE="svnprotocol.txt"
BUILDPROTOFILE="buildprotocol.txt"
FULL=false
STRIP=true
ALWAYSBUILD=false
 
while getopts ":fnap:?" optname
  do
    case "$optname" in
      "f")
        FULL=true
        ;;
      "n")
        STRIP=false
        ;;
      "p")
        LAZPATH=$OPTARG
        ;;
      "a")
        ALWAYSBUILD=true
        ;;
      "?")
        echo -e "Usage:\n -p<Path>: Path to Lazarus\n -f      : Full make\n -n      : Do not strip\n -a      : Always build"
        exit
        ;;
      ":")
        echo "No argument value for option $OPTARG"
        exit
        ;;
      *)
      # Should not occur
        echo "Unknown error while processing options"
        exit
        ;;
    esac
  done
 
 
# Switch to lazarus path
echo "CD to ".$LAZPATH
cd $LAZPATH
 
# make the svn update and rewrite SVNPROTOFILE
echo "Update from SVN"
svn update > $SVNPROTOFILE
 
counter=$(wc -l < $SVNPROTOFILE)
LASTLINE=`tail -1 $SVNPROTOFILE`
if [ $counter == 1 ]; then
 echo "Your version is up to date "$LASTLINE
 if [ $ALWAYSBUILD == false ]; then
   exit
 fi
else
 echo $LASTLINE
fi
 
# clean old files and rewrite BUILDPROTOFILE
echo "Clean everything"
make clean > $BUILDPROTOFILE
 
# Compile the tools
echo "Compile the tools"
 
if [ $FULL == true ]; then
 echo "Full"
 make lazbuild lcl ideintf components tools starter >> $BUILDPROTOFILE
 if [ $STRIP == true ]; then
  echo "Strip starter lazbuild tools"
  $STRIPCMD"$LAZPATH"startlazarus
  $STRIPCMD"$LAZPATH"lazbuild
  $STRIPCMD"$LAZPATH"tools/lazres
  $STRIPCMD"$LAZPATH"tools/lrstolfm
  $STRIPCMD"$LAZPATH"tools/svn2revisioninc
  $STRIPCMD"$LAZPATH"tools/updatepofiles
 fi
else
 echo "Partial"
 make lazbuild lcl ideintf components >> $BUILDPROTOFILE
 if [ $STRIP == true ]; then
  echo "Strip lazbuild"
  $STRIPCMD"$LAZPATH"lazbuild
 fi
fi
 
# Compile the IDE with all packages ( Myprofile )d
echo "Compile the IDE"
EXECCOMMAND="lazbuild --build-ide= --build-mode="
"$LAZPATH"$EXECCOMMAND  >> $BUILDPROTOFILE
 
if [ $STRIP == true ]; then
echo "Strip lazarus"
 $STRIPCMD"$LAZPATH"lazarus
fi
 
echo "Finished."

Antworten