Mein Projekt als RPM/DEB Paket packen?

Für Installationen unter Linux-Systemen
shokwave
Beiträge: 476
Registriert: Do 15. Nov 2007, 16:58
OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
CPU-Target: i386, x64
Wohnort: Gera

Re: Mein Projekt als RPM/DEB Paket packen?

Beitrag von shokwave »

Ich hab zwar auch keinen Plan von Shell Script, aber das hier http://www.unix.com/linux/14478-linux-test-command.html (letzter Beitrag) hat bei mir funktioniert.
mfg Ingo

MmVisual
Beiträge: 1605
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4.2 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Mein Projekt als RPM/DEB Paket packen?

Beitrag von MmVisual »

Nein das klappt leider nicht:

Code: Alles auswählen

mm@mm-laptop:~/rpmbuild/t$ ls
Backup  E1.sq3  E2.sq3
mm@mm-laptop:~/rpmbuild/t$ if test -f *.sq3
> then
> echo true
> else
> echo false
> fi
bash: test: E1.sq3: Zweistelliger (binärer) Operator erwartet.
false
mm@mm-laptop:~/rpmbuild/t$
EleLa - Elektronik Lagerverwaltung - www.elela.de

MmVisual
Beiträge: 1605
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4.2 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Mein Projekt als RPM/DEB Paket packen?

Beitrag von MmVisual »

Ich habe noch ein großes Problem mit dem SPEC Script.

Und zwar wenn ich eine Version installiere klappt alles prächtig :D

Aber der Update läßt mir die Suppe versalzen :(

Folgender Code (Auszug):

Code: Alles auswählen

%pre
if [ ! -L /usr/local/bin/EleLa ]; then ln -sf %{prefix}/EleLa/EleLa /usr/local/bin/EleLa; fi
 
%post
if [ ! -L /usr/local/bin/EleLa ]; then ln -sf %{prefix}/EleLa/EleLa /usr/local/bin/EleLa; fi
 
%preun
if [ ! -f %{prefix}/EleLa/EleLa ]; then
    if [ -L /usr/local/bin/EleLa ]; then rm /usr/local/bin/EleLa; fi
fi
 
%postun
Bei Installation wird der Link:
/usr/local/bin/EleLa
gesetzt.

Bei Update bleibt der nicht erhalten, sondern wird gelöscht. !!! :?:
Bei Uninstall soll der aber gelöscht werden.

Wie programmiere ich das in dem SPEC Script?

Gruß Markus
EleLa - Elektronik Lagerverwaltung - www.elela.de

shokwave
Beiträge: 476
Registriert: Do 15. Nov 2007, 16:58
OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
CPU-Target: i386, x64
Wohnort: Gera

Re: Mein Projekt als RPM/DEB Paket packen?

Beitrag von shokwave »

MmVisual hat geschrieben:Nein das klappt leider nicht:

Code: Alles auswählen

mm@mm-laptop:~/rpmbuild/t$ ls
Backup  E1.sq3  E2.sq3
mm@mm-laptop:~/rpmbuild/t$ if test -f *.sq3
> then
> echo true
> else
> echo false
> fi
bash: test: E1.sq3: Zweistelliger (binärer) Operator erwartet.
false
mm@mm-laptop:~/rpmbuild/t$
Ich meinte auch eher sowas wie

Code: Alles auswählen

for file in $(ls *.sq3)
do
   [ -s $file ] || continue
   echo do something with $file
   :
done
mfg Ingo

MmVisual
Beiträge: 1605
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4.2 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Mein Projekt als RPM/DEB Paket packen?

Beitrag von MmVisual »

Klasse !!! :D

Danke für den Tipp.

Jetzt klappt auch das (es sind 2 Dateien im Verzeichnis):

Code: Alles auswählen

mm@mm-laptop:~/rpmbuild/t$ if [ $(find *.sq3 | wc -l) -ge 1 ]; then echo True; fi
True
mm@mm-laptop:~/rpmbuild/t$ if [ $(find *.sq3 | wc -l) -ge 4 ]; then echo True; fi 
mm@mm-laptop:~/rpmbuild/t$ if [ $(find *.sq3 | wc -l) -ge 2 ]; then echo True; fi 
True
EleLa - Elektronik Lagerverwaltung - www.elela.de

MmVisual
Beiträge: 1605
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4.2 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Mein Projekt als RPM/DEB Paket packen?

Beitrag von MmVisual »

Ich habe immer noch Probleme mit der SPEC Datei.

Wie bekomme ich es hin, dass ein Befehl ausschließlich bei Uninstall ausgeführt wird :?:
(Und nicht bei Update)

Gruß Markus
EleLa - Elektronik Lagerverwaltung - www.elela.de

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6922
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: Mein Projekt als RPM/DEB Paket packen?

Beitrag von af0815 »

MmVisual hat geschrieben:Wie bekomme ich es hin, dass ein Befehl ausschließlich bei Uninstall ausgeführt wird :?:
(Und nicht bei Update)
Schau mal auf den ersten Parameter der die übergeben wird, bei Debian bekommt man dort den Zustand (configure, update, remove) übermittelt. Siehe Debian Package building Howto. Ev. ist da bei den RPMs ähnlich.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

MmVisual
Beiträge: 1605
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4.2 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Mein Projekt als RPM/DEB Paket packen?

Beitrag von MmVisual »

Nein, bei RPM's geht das nicht so einfach. Da muss man schon drohen, nach dem Motto, ich nehme Dir jetzt ein paar Bytes weg oder ich schreibe das ganze RPM ding neu.

Hier ist es sehr detailiert und ausführlich (natürlich fehlerhaft) beschrieben:
http://docs.fedoraproject.org/en-US/Fed ... 03s05.html" onclick="window.open(this.href);return false;

Es kann doch wohl nicht sein, dass man für einfachste Funktionen das ein jedes Setup-Paket bieten sollte so viele Stunden braucht.
Damit das Setup überhaupt so geht wie ich will habe ich meiner EXE einfach noch ein paar Command-Line Parameter verpasst, so dass ich aus dem Setup heraus noch wenigstens Aktionen abhängig von der INI Datei machen kann.

Innno-Setup (Windows) ist da schon viel eleganter, damit kann man sogar ALLES MÖGLICHE als Pascal-Script hinterlegen.

Wenn es sowas für Linux gäbe, dann würde damit z.B. die EXE installiert und entsprechend die Einträge in den Paketverwaltungen generiert, so dass man das ganze auch über die Paketverwaltung wieder deinstalliert werden könnte. Die Paketverwaltung ruft dann wiederum eine "Uninstall-Exe" auf die einen führt und Benutzer-Eingaben zu lässt (was jetzt meine EXE macht).
EleLa - Elektronik Lagerverwaltung - www.elela.de

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

Re: Mein Projekt als RPM/DEB Paket packen?

Beitrag von creed steiger »

Hilft dir das bei deinem Problem:
http://www.ibm.com/developerworks/linux ... index.html" onclick="window.open(this.href);return false;

MmVisual
Beiträge: 1605
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4.2 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Mein Projekt als RPM/DEB Paket packen?

Beitrag von MmVisual »

Vielleicht sollten die rpm Entwickler sich doch mal dazu erniedrigen lassen und ein %uninstall oder %remove für die spec Datei zuzulassen.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Bora4d
Beiträge: 290
Registriert: Mo 24. Dez 2007, 13:14
OS, Lazarus, FPC: WinXP-Pro-Sp3, Xubuntu 12.04, (Laz 1.1-SVN Mai2012, FPC 2.6.1 / 2.6.0-Linux)
CPU-Target: AMD64X2

Re: Mein Projekt als RPM/DEB Paket packen?

Beitrag von Bora4d »

Ich habe es noch nicht benutzt aber hier gibt's etwas:
http://kde-apps.org/content/show.php/RP ... tent=33228

Und wenn du schon so viel über rpms gelernt hast kannst du ja vielleicht ein RPM-/DEB-Maker mit Lazarus machen :lol:

MmVisual
Beiträge: 1605
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4.2 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Mein Projekt als RPM/DEB Paket packen?

Beitrag von MmVisual »

Ich habe nicht so viel Ahnung von dem ganzen. Ich habe eine gute Software geschrieben (Freeware) und ein User hat sich bereit erklärt mir ein RPM zu erstellen, einfach weil er dazu lust hatte.
Ich habe das ganze dann immer getestet, aber immer hat irgend etwas nicht geklappt, dann habe ich selbst mal danach geschaut. Also 95% war schon fertig, nur die letzten Kniffe haben noch gefehlt.
Ausserdem kenne ich mich nicht sonderlich gut mit Linux aus. Also ich kann es nicht.

Hier ist der Link zur spec:
http://linux.singollo.de/repo:rpm_selbst_erstellen" onclick="window.open(this.href);return false;
EleLa - Elektronik Lagerverwaltung - www.elela.de

carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: Mein Projekt als RPM/DEB Paket packen?

Beitrag von carli »

Meiner Meinung nach sollte ein Install-Maker (msi, dmg, rpm, deb) zum Standardumfang von Lazarus gehören.

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: Mein Projekt als RPM/DEB Paket packen?

Beitrag von Scotty »

Unter MacOS funktionieren Installer nochmal ganz anders (wenn denn überhaupt solche genutzt werden), ergo: Lazarus <> Installer.

marcov
Beiträge: 1103
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: Mein Projekt als RPM/DEB Paket packen?

Beitrag von marcov »

carli hat geschrieben:Meiner Meinung nach sollte ein Install-Maker (msi, dmg, rpm, deb) zum Standardumfang von Lazarus gehören.
Packages sind kein "installers", und in generellen ist *nix nicht Windows. Wie schneller man sich daran gewohnt, wie besser.

Antworten