Installscript
Inhaltsverzeichnis |
Was ist das Installscript?
Das Installscript ist ein Tool, mit dem die üblichen Installationsschritte durch eine Sammlung von Skripten erledigt werden.
Webvideo
Mal eine Installation, als Webvideo unter openSuSE 11.1 auf der Konsole, mit geschnitten.
Voraussetzungen
- Entwicklungsumgebung...
bash> wget ftp://ftp.tvdr.de/vdr/Tools/vdr-install-script-current.run bash> sh vdr-install-script-current.run -- --checkreq
Anleitung
Vorab
- Linux-Grundwissen erforderlich.
- Man sollte schon das eine und auch andere mal einen VDR von Hand kompiliert haben.
- In Deutsch?
Normal werden die lokalen (locale) Einstellungen uebernommen.
Sprich ist die Konsole in Deutsch (LC_MESSAGES="de_DE.UTF8" oder de_DE.iso885915@euro), sind auch die Scripts in Deutsch, sollte das nicht der Fall sein.
Einfach, vorm ausfuehren der Scripts.
bash> export LANG=de_DE.UTF8
Alternativ.
bash> LANG=de_DE.UTF8 sh setup.sh bash> LANG=de_DE.UTF8 sh vdr-install-script-current.run
Skripte anpassen
Entpacken.
bash> sh vdr-install-script-current.run --noexec --target /tmp/vdr bash> cd /tmp/vdr/setup
Folgende Konfigurationsdateien sollte man sich an seine Bedürfnisse anpassen (Beschreibungen befinden sich unter den Links...).
+-- $DISDIR +-- setup +-- config |--+ different.conf |--+ setup.conf |--+ make.conf |--+ modules.conf |--+ sources.conf |--+ keymacros.conf +-- examples +-- plugins +-- mailbox |--+ accounts.conf +-- vdr |--+ vdr.conf
Die meisten Optionen können unabhängig von der setup.conf auf der Komandozeile übergeben werden:
bash> LANG="de_DE@euro" ./setup.sh --help bash> LANG="de_DE@euro" sh vdr-install-script-current.run -- --help
CMD(s)
Beschreibungen... Links folgen :-)
+-- $DISDIR +-- admin +-- command-cmds +-- plugin-cmds +-- recording-cmds +-- shutdown-cmds +-- start-cmds |--+ rc |--+ rc.d |--+ [...]
Struktur
Verzeichnis für die Konfiguration, ist $PREFIX/etc (Standard), es sei denn es wurde anders Definiert.
--prefix=DIR
Das ganze schaut in etwa wie folgt aus, es wurde soweit wie möglich versucht System + VDR zu trennen.
+-- /usr/local ("$INSTALLPREFIX") +-- src +-- VDR -> vdr-$VERSION +-- DVB -> v4l-dvb-snapshot-$TIMESTAMP +-- stow +-- package +-- bin +-- lib +-- doc +-- cache +-- cddb +-- gameboy +-- infosatepg +-- mp3 +-- podcatcher +-- mldonkey +-- vtx +-- etc +-- graphlcd |--+ graphlcd.conf +-- igor |--+ igor.conf +-- lcdproc |--+ LCDd.conf +-- lirc |--+ lircd.conf |--+ lircrc +-- nvram-wakeup |--+ nvram-wakeup.conf +-- vdr ("$DISDIR") |--+ setup.conf +-- vdradmin |--+ vdradmind.{at,bl,conf,done}
Module
Hinzufügen
Im Mainmenü.
Oder von ../preeplugins/<PLUGIN>.bak nach ../preeplugins/<PLUGIN>.cmd umbenennen.
Import
bash> ./vdr-install-script-<VERSION>.run -- --add="<URL>/<MODUL>" bash> ./setup.sh --add="<URL>/<MODUL>"
Achso, wie auch bei den Scripts... alles ungetestet.
- Ein Modul setzt Kernel 2.6.* vorraus...
- Einige sind nicht über den Beta Status hinaus gekommen... (kann ich nicht beurteilen, am besten selbst testen)
- Bei anderen fehlen Links...
- usw...
Erweitern
Scripts für andere Distributionen erweitern, version auslesen.
shell> sh setup.sh --ostype ==> real_os_type="Redhat Linux Desktop" ==> real_os_version="10.0"
Module erweitern.
CallDepend() { "Arch Linux") if ! pacman -Q libcap libjpeg freetype2 fontconfig gettext ; then pacman -S libcap libjpeg freetype2 fontconfig gettext fi ;; "Crux Linux") if ! prt-get isinst libcap libjpeg freetype fontconfig gettext ; then prt-get depinst libcap libjpeg freetype fontconfig gettext fi ;; "Debian Linux") apt-get install dialog libcap-dev libjpeg62-dev libfreetype6{,-dev} fontconfig{,-config} libfontconfig1{,-dev} ;; "Gentoo Linux") emerge sys-libs/libcap media-libs/jpeg media-libs/freetype media-libs/fontconfig sys-devel/gettext -n ;; "SuSE Linux") case $real_os_version in 7.3|8.0|8.1|8.2|9.0|9.1) if ! rpm -q libcap libjpeg ; then yast -i libcap libjpeg fi ;; *) if ! rpm -q libcap-devel libjpeg-devel freetype2{,-devel} fontconfig{,-devel} gettext{,-devel} ; then yast -i libcap-devel libjpeg-devel freetype2{,-devel} fontconfig{,-devel} gettext{,-devel} fi ;; esac ;; + "Redhat Linux Desktop") + if ! <TEST(S)> ; then + <INSTALLATIONS-BEFEHL(E)> <PAKETE> + fi + ;; esac }
Wer die Abhängkeiten selbst auflösen möchte, kann diese function aushebeln.
shell> sh setup.sh --without-depends
Tipps
Mehrere Versionen
Mehrere Versionen von VDR nebenher installieren, einfach --prefix ändern.
bash> ./setup.sh --prefix=/usr/local/testumgebung ^^^^^^ entpricht sonst /usr/local
Dann.
bash> /usr/local/testumgebung/bin/runvdr start
Update
Normal wird beim ausführen von *.run das gröbste überschrieben (alles unterhalb von ../setup). Rest bleibt erhalten... (zbs)
+-- $DISDIR +-- admin +-- plugins
Sollte es bei Versionswechseln zu Fehlern kommen, kann folgende Übergabe Sinnvoll sein.
bash> ./setup.sh --load-default-settings bash> ./vdr-install-script-<VERSION>.run -- --load-default-settings
Damit werden die Standard-Einstellungen geladen.
Distributions-spezifisch
Crux
Der Support für Crux, ist zwar noch drinnen, besser das Port-System nutzen => Crux_2.5#VDR_installation => http://ronny-kornexl.homepage.t-online.de/crux/ports/
Gentoo
Da war etwas mit den MPlayer, siehe Gentoo VdrMplayer USE-Variablen.
Debian
Bei Debian am besten hier schauen Debian - mit 2.6.9er / 2.6.10er Kernel für VDR aufsetzen, für das erweitern der sources.list.
SuSE
Community Repositories hinzufügen. (in 0.9.7.4 obsolete)
shell> yast inst_productsources shell> yast2 inst_productsources
[x] Packman Repository
[x] VideoLan Repository
Kurz:
shell> zypper ar -t YUM ftp://ftp5.gwdg.de/pub/linux/misc/packman/suse/<VERSION> Packman shell> zypper ar -t YUM http://download.videolan.org/pub/videolan/vlc/SuSE/<VERSION> VideoLan
Internationalisierung I18N
Derzeit ist EN / DE vorhanden, hier ein kleine Anleitung, zum hinzufügen anderer Übersetzungen. (Bsp.: fr_FR)
shell> cd setup/locale shell> make shell> cp vdr-install-script.pot fr_FR.po ^^^^^ shell> locale -a | cut -d. -f1
shell> sed -i 's:charset=CHARSET:charset=ISO-8859-15:' fr_FR.po
Jetzt kann in fr_FR.po, die Übersetzung erfolgen.
#: ../admin/shutdown-cmds/procs.run:6 msgid "proc(s) running" msgstr "<übersetzung>"
Zu guter letzt:
shell> make
Probleme
unexpected operator, beim ausführen des Skripts
Bei einem Fehler in der Art:
[: 28: 0: unexpected operator ./setup/setup.sh: 41: Syntax error: Bad substitution
sollte überprüft werden ob der Link von '/bin/sh' auf '/bin/bash' verweist.
Wenn Umlaute, nicht richtig dargestellt werden.
Zbs. Kan?le anstatt Kanäle im VDR Menu, folgende Variable in der vdr.conf auskommentieren.
# VDR needs to run in non-UTF8 locale? - LC_CTYPE="POSIX + #LC_CTYPE="POSIX