linux install utility a lá rpm
-
Wollt fragen ob wer lust hat bei meinem installer (für linux) mit zu machen. vom grundprinzip ähnlich wie rpm:
anhand von nem source paket und ner datei, die die info zum kompilieren enthält wird das paket erst kompiliert, und dann installiert, wobei die installierten dateien mit einigen informationen bzgl dieses paketes in ner lokal gespeicherten datenbank abgelegt werden. so ist es möglich bequem nachzuschauen, ob man das paket installiert hat, welche version, welche dateien es beinhaltet. und das beste: man kann es wieder schön deinstallieren.
wer z.b. ein lfs system hat und keine lust hat den rpm zu installieren, wäre mit sowas gut beraten.
kleines anwendungsbeispiel:
Paket: apache-1.3.2.tar.gz
InfoFile: apache-1.3.2.srcinfo enthät dann z.b.:
paketdateiname, die befehle zum kompileren, versionsnummer etc. man übergibt jetzt dem installer die info datei, der kompiliert und installiert und macht nen datenbank eintrag der ca so aussieht:name: apache
version: 1.3.2
kommentar: wenn was bwesonderes.
dateien
<dateiliste>verstanden oder?
wer lust hat, der kann sich bei mir melden
-
ich überlege gerade einen Automake, Autoconf und configure Ersatz zu schreiben, dass ist ja so was ähnliches.
Die Dateien sollen ungefäh die Syntax haben
# demo [Section Name: check Work: Configure] > if !library(test,1.00) { echo "library test 1.00 not found ... try to install" if !install(test,1.00) # asks before installing! { echo "please install the test 1.00 library by hand" exit } } > [Section Name: all Work: Compile] - Compile File: demo.cc Language: C++ Output: demo Library: m Standard: ISO C++ 98 Optimize Warnings - - Compile File: obj.c Language: C Output: obj.o Optimize Warnings - [Section Name: clean Work: clean] - Remove File: *.o - [Section Name: copy Work: install] - Copy File: demo To: $BINDIR -
Das Programm sammelt bereits Informationen über das System, die Installierten Programme/Librarys etc., so dass das teilweise langwierige configure entfällt, außerdem ist es Platform unabhängig und kann entspr. Compiler benutzen und ist nicht auf einen festgelegt
Mit - leitet/beendet man Anweisungen, es gibt ein paar Standard Anweisungen, man kann aber auch eigene schreiben, mit einer Script Sprache. Mit > leitet man Anweisungen in einer Script Sprache ein und mit > beendet man diese auch
[Section Name: <Name> Work: <Descr>]
teilt das Programm in Sektionen ein
install
erledigt alles, was man zum installieren braucht
install -prefix=/usr/local
installiert nach /usr/local anstelle in das def. Verzeichniss
-
Hmm, kennst Du Portage, Korbinian?
-
ne warum=
-
Weil Portage genau das kann, was Dein Tool können sollte.
@kingruedi: Portage hat auch ein Dependency-System, nur arbeitet es nicht so low-level, wie das, was du im Sinn haben dürftest...
-
ja so in etwa stell ich mir meins auch vor.
hab aber noch n paar sachen, warum ich wahrscheinlich n xml format nehm:
kann damit leicht mehree pakete in eine datei hauen
das listen feature (paketlisten und dependencies) werden dann bisschen leichter (der installer soll mal für ne eigene distri werden)bei mir schauts genau gesagt so aus(wahrscheinlich):
<package>
<id>apache-1.3.2</id>
<version>1.3.2</version>
<buildprocedure>
<command>./configure --prefix=/usr</command>
<command>make</command>
<command>make install</command>
</buildprocedure>
<!-- in der datei, die dann in der datenbank gespeichert wird: -->
<filelist>
<file>/usr/apache/bin/httpd</file>
<dir>/usr/apache</dir>
</filelist>
</package>das ganze is nicht ganz so modular wie deins.
-
@nman
ja das stimmt. rpm kanns auch. aber ich will ja eben unabhängig von einer distribution bleiben (was ich weder mit rpm noch mit portage kann). es wird auf ein ähnliches rauskommen (das is klar) nur eben, dass du es für jede distri hernehmen kannst und entsprechend dafür kompilieren.
-
Original erstellt von Korbinian:
...aber ich will ja eben unabhängig von einer distribution bleiben (was ich weder mit rpm noch mit portage kann).Das ist überhaupt kein Problem, ein Freund von mir verwendet Portage (mit kleineren Modifikationen) auf einem "Debian-Frankenstein-Linux"!
(LunarLinux verwendet auch ein Ports-ähnliches System!)
-
Original erstellt von Korbinian:
kann damit leicht mehree pakete in eine datei hauenBei Portage nennt man so etwas Meta-EBuilds und Gentoo hat einige davon!
-
Original erstellt von nman:
... und Gentoo hat einige davon!jo gentoo hat. /me will aber ne eigene distri
-
Original erstellt von Korbinian:
jo gentoo hat. /me will aber ne eigene distriIch wollte damit nur Deiner "geht bei Portage nicht/ nur schwer"-These etwas entgegensetzen!