
PKGNAME:	inka-basis
VERSION:	1.3.7


INHALT:

1.	Das Paket
1.1.	Kurzbeschreibung
1.2.	Die Dateien
1.3.	Lizenz

2.	Umgang mit dem Paket
2.1.	Voraussetzungen
2.2.	Installation/Deinstallation
2.3.	Konfiguration
2.4.	Betrieb

------------------------------------------------------------------------------

1.	Das Paket

1.1.	Kurzbeschreibung

Das Paket ist die Grundlage der inka-Pakete, da es die main-inka-sh.conf
und die lib-inka-std.sh beinhaltet.
Desweiteren bietet das Paket eine Tarball-Paketverwaltung mit zahlreichen
Funktionen und einem interaktiven Programm zur Bedienung.
Die Paketverwaltung bietet im Zusammenspiel mit den Installationsprogrammen
eine Abhaengigkeitsaufloesung der inka-Pakete.
Das Programm inkapkgupdate kann, per cron aufgerufen, regelmaessig auf
ftp-Servern und http-Servern nach Aktualisierungen der Pakete suchen und diese
installieren.
Es werden Versionsnummern mit zwei bis vier Segmenten unterstuetzt.
Als Dateiendungen wird .tar, .tar.bz2, .tar.gz und .tgz unterstuetzt.


1.2.	Die Dateien

GPL-2.0.txt			Gnu General Public License 2.0
LGPL-2.1.txt			Die Gnu Lesser General Public License 2.1
ChangeLog			Enthaelt die Entwicklungsgeschichte des Pakets
README				Diese Datei
install.sh			Installationsprogramm
pkg.inf				Paketinformationen
repl-inka-cnfvar		Ersetzt eine Konfigvariable mit neuem Wert
lib-inka-std.sh			Funktionsbibliothek fuer Standard-Funktionen,
main-inka-sh.conf		Haupt-Konfigurationsdatei fuer inka-Scripte
inkapkginform			zeigt Informationen ueber (nicht)installierte
				  Pakete an
inkapkginstall			Installiert/deinstalliert Pakete
inkapkgupdate			Aktualisiert Programme, bzw. zeigt moegliche
				  Aktualisierungen an
inkapkgupdate.cron		Startdatei fuer cron

inkabasisupdater		Aktualisiert inka-basis, wenn neue Version
				  vorhanden ist
inkabasisupdater.cron		Startdatei fuer cron
inka-pkgmanager			interaktives Programm zur Paketverwaltung
lib-inka-basis.sh		Funktionsbibliothek fuer Programme dieses
				  Pakets, Version 0.0.1
inka-basis.conf			Konfigurationsdatei dieses Pakets
fanfare1.wav			Klangdatei

<PROGRAMM>			Die Textvorlagen der Manpages
<PROGRAMM>.<SEKTION>.gz		Die Manpages der Befehle


1.3.	Lizenz

Diese Software wird unter der Gnu General Public License 2.0 bzw.
unter der Gnu Lesser General Public License 2.1 vertrieben.
Welche Lizenz fuer ein Produkt jeweils zutrifft ist aus einem Vermerk am
Anfang des Quelltextes des jeweiligen Programms ersichtlich.

------------------------------------------------------------------------------

2.	Umgang mit dem Paket

2.1.	Voraussetzungen

Es sind folgende Programme erforderlich:
basename, cat, cd, chmod, chown, clear, cp, cut, echo, find, grep, ln, mkdir,
mv, sort, read, rm, sed, tar, test, wc, wget, w3m.

Wenn von http-Servern aktualisiert werden soll, muss bei Angabe der URL ohne
Datei vom Server eine Datei gesendet werden (z.B. index.html), die Verweise
(Links) enthaelt, die auf die Dateinamen der Pakete zeigen.


2.2.	Installation/Deinstallation

Zuerst muessen die in der Voraussetzung genannten Programme installiert werden.

Dann dieses Paket in das Verzeichnis in dem alle inka-Tarball-Pakete
gespeichert werden sollen kopieren und dort entpacken.
Z.B. '/usr/local/packages/tgz/inka-basis-VERSION/'
Es ist unbedingt darauf zu achten, dass der Verzeichnisname dem Dateinamen
des Tarball-Archivs ohne '.tgz' entspricht!
Anschliessend befindet sich u. a. die Datei 'install.sh' in dem Verzeichnis.
Die Datei 'README' befindet sich im Unterverzeichnis 'doc/'.

Zum Installieren den Befehl './install.sh' benutzen.
Eine eventuell bereits vorhandene Konfigurationsdatei wird nicht ueberschrieben,
sondern als Backup-Datei 'DATEI~' umbenannt.
./install.sh -h gibt Hilfe.

Zur Deinstallation kann das Installationsprogram mit der Option -u oder -U
aufgerufen werden.
Vorhandene programmbezogene Konfigurations- und Benutzerdatendateien werden
bei Angabe von -u nicht geloescht. Bei Angabe von -U werden vorhandene
programmbezogene Konfigurations- und Benutzerdatendateien geloescht,
wenn das moeglich ist.
./install.sh -h gibt Hilfe.


2.3.	Konfiguration

In der Konfigurationsdatei /usr/local/etc/main-inka-sh.conf befinden sich in der 
DIR SECTION folgende Variablen mit den Default-Werten:

TEMPDIR=/tmp
LOCKDIR=$TEMPDIR
LLIBDIR=/usr/local/lib/sh
PROGREG=/usr/local/share/inka-registry

'TEMPDIR' sollte den Namen eines Verzeichnisses enthalten, welches fuer 
schnelle temporaere Zwischenspeicherung genutzt werden kann. 
'LOCKDIR' sollte den Namen eines Verzeichnisses enthalten, welches bei jedem
Neustart des Betriebssystems geleert oder neu angelegt wird, da ansonsten
Programme evtl. nicht mehr funktionieren, wenn deren Lockdateien noch
vorhanden sind.
Die anderen Variablen sollten nicht geaendert werden, wenn nicht auch der
Inhalt der alten Verzeichnisse in die neuen verschoben wird!
LLIBDIR enthaelt die Bibliotheksdateien der inka-Programme.
PROGREG enthaelt die umbenannten pkg.inf-Dateien als Registrierung.

Durch einen Eintrag in der /etc/fstab kann man z.B. eine Ramdisk variabler 
Groesse anlegen und beim Systemstart auf einen vorhandenen Mountpoint mounten 
lassen (im Beispiel /ramdisk):

# DEV	MOUNTPT		FS	MOUNTOPT		DUMP	FSCK
#--------------------------------------------------------------------------
none	/ramdisk	tmpfs	defaults		0	0

In dem Verzeichnis kann (muss aber nicht) (bei Verwendung einer Ramdisk
nach dem mounten der Ramdisk) ein Unterverzeichnis (z.B. 'lock') angelegt
werden. Am besten geschieht dies durch Eintraege in einer beim booten
ausgefuehrten Datei (bei SUSE z.B. /etc/init.d/boot.local).
Dann koennte dieses Unterverzeichnis als Lock-Verzeichnis dienen.


In der Datei '/usr/local/etc/inka-basis.conf' befinden sich folgende
Variablen mit Default-Werten, die den eigenen Beduerfnissen angepasst werden
muessen:

# URLs (Server mit Verzeichnisangabe), von denen installiert werden sollen
# (mit Leerzeichen trennen, jeweils mit abschliessendem Schraegstrich)
# Default: UrlList="http://www.ingokaesmann.de/download/linux/"

# Paketverzeichnis von .tgz, .tar.gz, .tar, .tar.bz2
# Example: PackageDir="/usr/local/packages/tgz"
# Default: PackageDir=""

# Liste der von inkapkgupdate nicht zu ueberpruefenden / nicht
# herunterzuladenden Pakete (mit Leerzeichen trennen)
# Es koennen auch Teile von Paketnamen angegeben werden.
# Example: ExList="example-program-0.1.2.tgz bestpackage-"
# Default: ExList=""

# Bei fehlender Option von inkapkgupdate auszufuehrender Befehl
# -s = nur Anzeige neuer Paketversionen
# -x = Installation neuer Paketversionen
# Values: -s, -x .
# Default: DefCmd="-x"


Bei der Erstinstallation werden einige cron.Dateien angelegt.
Bei Aktualisierungen durch spaetere Versionen werden auch die cron-Dateien
aktualisiert.
Vor dem Bearbeiten der nachfolgend genannten cron-Dateien sollte inkapkgupdate
nicht gestartet werden:
/etc/cron.d/inkapkgupdate.cron
/usr/local/share/inka-basis/inkabasisupdater.cron

Sollte inkapkgupdate doch vor dem Bearbeiten der letztgenannten Datei gestartet
worden sein, ist folgende Datei ebenfalls zu bearbeiten:
/etc/cron.d/inkabasisupdater.cron

In der Datei '/etc/cron.d/inkapkgupdate.cron' befinden sich Angaben fuer cron,
die den eigenen Beduerfnissen angepasst werden muessen:

MAILTO=root
hier sollte der Benutzer eingetragen werden, der Systemmails empfangen soll.

10 20 * * *	root	test -x /usr/local/bin/inkapkgupdate && /usr/local/bin/inkapkgupdate
|  |  | | |
|  |  | | `- Tag der Woche	0-7	(0 oder 7 ist Sonntag)
|  |  | `--- Monat		1-12
|  |  `----- Tag des Monats	1-31
|  `-------- Stunde		0-23
`----------- Minute		0-59

Ein Stern (*) bedeutet, dass jeder moegliche Wert benutzt wird.

Die Datei /usr/local/share/inka-basis/inkabasisupdater.cron
muss ebenfalls konfiguriert werden.

Die Startzeiten von inkapkgupdate und inkabasisupdater sollten einen
Unterschied von wenigstens 10 Minuten haben.

Es ist unbedingt darauf zu achten, dass sich in den cron-Dateien der erste
Tabulator zwischen der Zeitangabe und root und der zweite zwischen root und
dem Befehlsaufruf befindet!
Das gilt auch, wenn Zeilen auskommentiert werden.
Der korrekte Aufbau der Befehlszeilen ist fuer weitere automatische
Aktualisierungen erforderlich.

2.4.	Betrieb

Nach der Installation koennen die Bibliotheken durch einen Aufruf (sogenanntes
sourcen) in ein Script eingebunden werden. Damit stehen die Funktionen der 
Bibliothek dem Script zur Verfuegung.

Die Paketverwaltung wird benutzt, indem 'inka-pkgmanager' aufgerufen wird.
Weitere Informationen zur Bedienung siehe Hilfe-Menue des Programms.

Bei Aufruf einiger Programme durch cron, wird bei Fehlern, notwendigen
Benutzeraktivitaeten oder erfolgten Installationen dem Benutzer eine Mail mit
Informationen geschickt.

<PROGRAMM> -h gibt kurze Hilfe
man <PROGRAMM> gibt ausfuehrliche Informationen


------------------------------------------------------------------------------

Ingo Kaesmann
HTTP: http://www.ingokaesmann.de/

Berlin, den 02.08.2013
