require-package.txt - Version 1.0, 18.11.2004
--------------------------------------------------------------------
Ist-Zustand:
- Als Tag-Inhalt ist bisher erlaubt:
RELATIVER-PFAD-ZU-PAKETNAME [VERSION]
ABSOLUTER-PFAD-ZU-PAKETNAME [VERSION]
Soll-Zustand:
- Als Erweiterung ist zukünftig zusätzlich erlaubt:
PAKETNAME [VERSION]
Beispiel:
eiskernel 1.0.13
Realisierung:
A. Damit eisfair dieses Paket ohne Pfadangabe finden kann,
gibt es ein neues Tag in eis-list.txt, nämlich:
# PFAD-ZU-INDEXDATEI
Beispiel für eis-list.txt:
# index.txt
Diese kann auch in allen davon abgeleiteten xxxx.txt-Dateien
stehen, wobei der Pfad zur Index-Datei immer auf dieselbe
Index-Datei zeigen sollte, damit man nur eine Index-Datei
pflegen muss.
Beispiel für updates/update.txt:
# ../index.txt
B. Die Index-Datei hat folgendes Format:
PAKETNAME VERSION STATUS PFAD
eiskernel 1.0.13 stable updates/eiskernel.tar.gz.info
eiskernel 1.1.0 unstable dev/eiskernel.tar.gz.info
... ... ... ...
Bis pack-eis eine solche Datei automatisch generieren kann,
kann ich ein Shell-Script erstellen, welches diese Index-Datei
automatisch für eisfair.org erstellt.
C. Gründe für das obige Format:
a) pack-eis kann die Index-Datei sehr leicht erzeugen und auf
dem Download-Server ablegen. Ebenso kann es den -Tag
in dynamisch generierte eis-list.txt-Dateien einbauen.
b) Es ist weiterhin möglich, einen Abzug von download.eisfair.org
auf die eisfair-installer-CD zu kopieren. eisfair kann dann die
auf der CD vorliegende Index-Datei offline benutzen, ohne online
pack-eis abfragen zu müssen.
D. Beispiele aus der Realität (pfade für download.eisfair.org):
packages/updates/update.txt:
# Package list of www.eisfair.org
# Copyright Frank Meyer
# Welcome to the offical eisfair package server www.eisfair.org
#
# It is strongly recommended to upgrade your eisfair server to 1.0.7
+ # ../index.txt
# update.tar.gz.info
#
# eiskernel.tar.gz.info
# eiskernel-smp.tar.gz.info
#
#
# Last update 2004/07/31 14:20 fm
packages/index.txt:
eiskernel 1.0.13 stable updates/eiskernel.tar.gz.info
eiskernel 1.1.0 unstable dev/eiskernel.tar.gz.info
Steht nun in der info-Datei des zu installierenden Pakets folgendes:
1. eiskernel
dann wird in der Index-Datei nach dem Stable-Paket mit der
höchsten Nummmer gesucht.
2. eiskernel 1.0.12
dann wird in der Index-Datei nach dem Stable-Paket mit der
höchsten Nummmer gesucht. Genügt diese Version der gewünschten,
wird die stable-Version installiert. Wenn nicht, wird die
non-stable-Version installiert.
Zu entscheiden wäre noch, ob eisfair in diesem Fall fragen sollte:
Found 2 packages:
1. eiskernel version 1.0.13 stable
2. eiskernel version 1.1.0 unstable
Please enter number (1-2): _
Meinetwegen könnte man auf so eine Abfrage verzichten. Wenn
der User eine unstable-Version eines Paketes installieren will,
dann sollte er dies ausdrücklich über die Installation dieses
Paketes selbst tun.
3. eiskernel 1.1.0
Es wird die unstable-Version installiert, da die stable-Version
den Anforderungen nicht genügt.
Ich werde das so am Wochenende in die 1.0.8 einbauen, wenn keine
Gegenargumente kommen. Analog dazu implementiere ich .
Jetzt kommt das dicke Ende:
Alte eisfair-Versionen verstehen das Ganze nicht und werden deshalb
voll auf die Nase fliegen. Hier muss man die Vorab-Installation von
1.0.8 erzwingen (was wiederum bedeutet, daß updates/update.txt für
das Base-Update _auf_ _jeden_ _Fall_ einen Pfad beinhalten muss.
Vorschläge zur Abwärtskompatibilität? Ich schlage vor, eine dicke
Meldung in eis-list.txt einzubauen, daß man als allererstes
updaten muss. Es gäbe aber auch noch einen anderen Weg:
Wir ändern eis-list.txt folgendermaßen ab:
# Package list of www.eisfair.org
# Copyright Frank Meyer
# Welcome to the official eisfair package server www.eisfair.org
#
# Packages will be only visible if you upgrade to eisfair 1.0.8!
# index.txt
# updates/update.txt eisfair system updates and kernel
# web.txt Apache / Squid
# inet-mail-news.txt Inet / Mail / News
# plang.txt Programming Languages and modules
# dns.txt DNS / DHCP
# printer-file.txt Printer / File Services
# eisfax/eisfax.txt FAX services
# db.txt Database packages
# dev/dev.txt Developer Packages - unstable!
# etc.txt Other packages
# http://www.pack-eis.de/vieweislist.php Pack-Eis uploaded user-packages
#
# Last update 2004/10/08 21:34 fabian
Alte eisfair-Versionen verstehen den neuen Tag # nicht
und werden daher diese Zeilen gar nicht anzeigen. Dadurch wird der
User gezwungen, zunächst das Update zu installieren. Hier steht
ja noch der alte Tag .
Ich baue in das eisfair-setup dann ein, daß es auch den Tag
versteht, wobei es dann nur Links anzeigt, dessen
Nummer kleiner oder gleich der aktuellen Version ist. So kann
man Setup-Menüs versionsabhängig aufbauen. Ebenso sinnvoll wäre
vielleicht diese Erweiterung für den Tag , also
# eiskernel.tar.gz.info