Installscript
(→Links: merge) |
(Entfernen von "Vorraussetzungen": checkreq scheint es nicht mehr zu geben, ebensowenig einen ähnlichen Befehl) |
||
(77 dazwischenliegende Versionen von 36 Benutzern werden nicht angezeigt) | |||
Zeile 2: | Zeile 2: | ||
Das Installscript ist ein Tool, mit dem die üblichen Installationsschritte durch eine Sammlung von Skripten erledigt werden. | Das Installscript ist ein Tool, mit dem die üblichen Installationsschritte durch eine Sammlung von Skripten erledigt werden. | ||
− | [[Bild:installscript-0.png|thumb|none|'' | + | {| |
+ | |[[Bild:installscript-0.png|thumb|none|''0.5.8'']] | ||
+ | |[[Bild:installscript-1.jpg|thumb|none|''0.9.8.7'']] | ||
+ | |} | ||
− | == | + | ==Webvideo== |
− | + | Mal eine Installation, als {{vdrportal board|85149|Webvideo}} unter {{wikipedia|openSuSE}} 11.1 auf der {{wikipedia|Konsole}}, mit ''geschnitten''. | |
− | bash> | + | ==Download== |
+ | bash> wget ftp://ftp.tvdr.de/vdr/Tools/vdr-install-script-current.run | ||
==Anleitung== | ==Anleitung== | ||
Zeile 17: | Zeile 21: | ||
Normal werden die lokalen (''locale'') Einstellungen uebernommen. | Normal werden die lokalen (''locale'') Einstellungen uebernommen. | ||
− | Sprich ist die Konsole in Deutsch ('''LC_MESSAGES="de_DE@euro | + | 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. | Einfach, vorm ausfuehren der Scripts. | ||
− | bash> export LANG=de_DE | + | bash> export LANG=de_DE.UTF8 |
Alternativ. | Alternativ. | ||
− | bash> LANG=de_DE | + | bash> LANG=de_DE.UTF8 sh setup.sh |
− | bash> LANG=de_DE | + | bash> LANG=de_DE.UTF8 sh vdr-install-script-current.run |
===Skripte anpassen=== | ===Skripte anpassen=== | ||
Zeile 41: | Zeile 45: | ||
+-- [[Bild:Folder.png]] setup | +-- [[Bild:Folder.png]] setup | ||
+-- [[Bild:Folder.png]] config | +-- [[Bild:Folder.png]] config | ||
+ | |--+ [[installscript-different.conf|'''different.conf''']] | ||
|--+ [[installscript-setup.conf|'''setup.conf''']] | |--+ [[installscript-setup.conf|'''setup.conf''']] | ||
|--+ [[installscript-make.conf|'''make.conf''']] | |--+ [[installscript-make.conf|'''make.conf''']] | ||
|--+ [[installscript-modules.conf|'''modules.conf''']] | |--+ [[installscript-modules.conf|'''modules.conf''']] | ||
|--+ [[installscript-sources.conf|'''sources.conf''']] | |--+ [[installscript-sources.conf|'''sources.conf''']] | ||
− | |||
|--+ [[installscript-keymacros.conf|'''keymacros.conf''']] | |--+ [[installscript-keymacros.conf|'''keymacros.conf''']] | ||
+-- [[Bild:Folder.png]] examples | +-- [[Bild:Folder.png]] examples | ||
Zeile 67: | Zeile 71: | ||
+-- [[Bild:Folder.png]] admin | +-- [[Bild:Folder.png]] admin | ||
+-- [[Bild:Folder.png]] [[installscript-command-cmds|'''command-cmds''']] | +-- [[Bild:Folder.png]] [[installscript-command-cmds|'''command-cmds''']] | ||
− | |||
+-- [[Bild:Folder.png]] [[installscript-plugin-cmds|'''plugin-cmds''']] | +-- [[Bild:Folder.png]] [[installscript-plugin-cmds|'''plugin-cmds''']] | ||
− | |||
+-- [[Bild:Folder.png]] [[installscript-recording-cmds|'''recording-cmds''']] | +-- [[Bild:Folder.png]] [[installscript-recording-cmds|'''recording-cmds''']] | ||
− | |||
+-- [[Bild:Folder.png]] [[installscript-shutdown-cmds|'''shutdown-cmds''']] | +-- [[Bild:Folder.png]] [[installscript-shutdown-cmds|'''shutdown-cmds''']] | ||
− | |||
+-- [[Bild:Folder.png]] [[installscript-start-cmds|'''start-cmds''']] | +-- [[Bild:Folder.png]] [[installscript-start-cmds|'''start-cmds''']] | ||
|--+ [[Bild:Folder.png]] rc | |--+ [[Bild:Folder.png]] rc | ||
Zeile 88: | Zeile 88: | ||
+-- [[Bild:Folder.png]] /usr/local ("'''$INSTALLPREFIX'''") | +-- [[Bild:Folder.png]] /usr/local ("'''$INSTALLPREFIX'''") | ||
+-- [[Bild:Folder.png]] src | +-- [[Bild:Folder.png]] src | ||
− | +-- [[Bild:Folder.png]] VDR | + | +-- [[Bild:Folder.png]] VDR -> vdr-$VERSION |
− | +-- [[Bild:Folder.png]] DVB | + | +-- [[Bild:Folder.png]] DVB -> v4l-dvb-snapshot-$TIMESTAMP |
+-- [[Bild:Folder.png]] stow | +-- [[Bild:Folder.png]] stow | ||
+-- [[Bild:Folder.png]] package | +-- [[Bild:Folder.png]] package | ||
Zeile 102: | Zeile 102: | ||
+-- [[Bild:Folder.png]] podcatcher | +-- [[Bild:Folder.png]] podcatcher | ||
+-- [[Bild:Folder.png]] mldonkey | +-- [[Bild:Folder.png]] mldonkey | ||
− | |||
− | |||
− | |||
− | |||
+-- [[Bild:Folder.png]] vtx | +-- [[Bild:Folder.png]] vtx | ||
+-- [[Bild:Folder.png]] etc | +-- [[Bild:Folder.png]] etc | ||
Zeile 119: | Zeile 115: | ||
+-- [[Bild:Folder.png]] nvram-wakeup | +-- [[Bild:Folder.png]] nvram-wakeup | ||
|--+ nvram-wakeup.conf | |--+ nvram-wakeup.conf | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+-- [[Bild:Folder.png]] vdr ("'''$DISDIR'''") | +-- [[Bild:Folder.png]] vdr ("'''$DISDIR'''") | ||
|--+ setup.conf | |--+ setup.conf | ||
Zeile 132: | Zeile 122: | ||
===Module=== | ===Module=== | ||
====Hinzufügen==== | ====Hinzufügen==== | ||
− | + | Im Mainmenü. | |
− | + | ||
− | + | Oder von '''../preeplugins/<PLUGIN>.bak''' nach '''../preeplugins/<PLUGIN>.cmd''' umbenennen. | |
− | + | ||
====Import==== | ====Import==== | ||
Zeile 141: | Zeile 130: | ||
bash> ./vdr-install-script-<VERSION>.run -- --add="<URL>/<MODUL>" | bash> ./vdr-install-script-<VERSION>.run -- --add="<URL>/<MODUL>" | ||
bash> ./setup.sh --add="<URL>/<MODUL>" | bash> ./setup.sh --add="<URL>/<MODUL>" | ||
− | |||
− | |||
− | |||
− | |||
− | |||
</pre> | </pre> | ||
Zeile 151: | Zeile 135: | ||
* Ein Modul setzt Kernel 2.6.* vorraus... | * 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... | * Bei anderen fehlen Links... | ||
* usw... | * usw... | ||
Zeile 159: | Zeile 143: | ||
<pre> | <pre> | ||
− | + | shell> sh setup.sh --ostype | |
==> real_os_type="Redhat Linux Desktop" | ==> real_os_type="Redhat Linux Desktop" | ||
==> real_os_version="10.0" | ==> real_os_version="10.0" | ||
Zeile 168: | Zeile 152: | ||
<pre> | <pre> | ||
CallDepend() { | CallDepend() { | ||
− | |||
"Arch Linux") | "Arch Linux") | ||
− | if ! pacman -Q libcap libjpeg ; then | + | if ! pacman -Q libcap libjpeg freetype2 fontconfig gettext ; then |
− | pacman -S libcap libjpeg | + | pacman -S libcap libjpeg freetype2 fontconfig gettext |
fi | fi | ||
;; | ;; | ||
"Crux Linux") | "Crux Linux") | ||
− | if ! prt-get isinst libcap libjpeg ; then | + | if ! prt-get isinst libcap libjpeg freetype fontconfig gettext ; then |
− | prt-get depinst libcap libjpeg | + | prt-get depinst libcap libjpeg freetype fontconfig gettext |
fi | fi | ||
;; | ;; | ||
− | "Debian Linux") apt-get install libjpeg62-dev | + | "Debian Linux") apt-get install dialog libcap-dev libjpeg62-dev libfreetype6{,-dev} fontconfig{,-config} libfontconfig1{,-dev} ;; |
− | "Gentoo Linux") emerge | + | "Gentoo Linux") emerge sys-libs/libcap media-libs/jpeg media-libs/freetype media-libs/fontconfig sys-devel/gettext -n ;; |
"SuSE Linux") | "SuSE Linux") | ||
case $real_os_version in | case $real_os_version in | ||
7.3|8.0|8.1|8.2|9.0|9.1) | 7.3|8.0|8.1|8.2|9.0|9.1) | ||
− | if ! rpm -q | + | if ! rpm -q libcap libjpeg ; then |
− | yast -i | + | yast -i libcap libjpeg |
fi | fi | ||
;; | ;; | ||
*) | *) | ||
− | if ! rpm -q | + | if ! rpm -q libcap-devel libjpeg-devel freetype2{,-devel} fontconfig{,-devel} gettext{,-devel} ; then |
− | yast -i | + | yast -i libcap-devel libjpeg-devel freetype2{,-devel} fontconfig{,-devel} gettext{,-devel} |
fi | fi | ||
;; | ;; | ||
Zeile 204: | Zeile 187: | ||
</pre> | </pre> | ||
+ | Wer die Abhängkeiten selbst auflösen möchte, kann diese ''function'' aushebeln. | ||
+ | <pre> | ||
+ | shell> sh setup.sh --without-depends | ||
+ | </pre> | ||
==Tipps== | ==Tipps== | ||
Zeile 219: | Zeile 206: | ||
<pre> | <pre> | ||
− | bash> | + | bash> /usr/local/testumgebung/bin/runvdr start |
− | + | ||
</pre> | </pre> | ||
Zeile 238: | Zeile 224: | ||
===Distributions-spezifisch=== | ===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]]==== | ====[[Gentoo]]==== | ||
Da war etwas mit den MPlayer, siehe [[Gentoo VdrMplayer]] ''USE-Variablen''. | Da war etwas mit den MPlayer, siehe [[Gentoo VdrMplayer]] ''USE-Variablen''. | ||
Zeile 245: | Zeile 234: | ||
====[[SuSE]]==== | ====[[SuSE]]==== | ||
− | + | Community Repositories hinzufügen. (in '''0.9.7.4''' obsolete) | |
+ | |||
+ | shell> yast inst_productsources | ||
+ | shell> yast2 inst_productsources | ||
+ | |||
+ | '''[x] Packman Repository'''<br> | ||
+ | '''[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 {{wikipedia|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== | ==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. | |
− | + | ||
− | + | ===umlaute in vdr menus=== | |
− | + | Wenn Umlaute, nicht richtig dargestellt werden. | |
− | + | Zbs. Kan'''<span style="color:#ff0000;">?</span>'''le anstatt Kan'''<span style="color:#ff0000;">ä</span>'''le im VDR Menu, folgende Variable in der '''[[installscript-vdr.conf|vdr.conf]]''' auskommentieren. | |
− | + | # VDR needs to run in non-UTF8 locale? | |
− | + # | + | - LC_CTYPE="POSIX |
+ | + #LC_CTYPE="POSIX | ||
− | + | ==Wunschliste== | |
==Links== | ==Links== | ||
− | # [ftp://ftp. | + | # [ftp://ftp.tvdr.de/vdr/Tools VDR Ftp] |
# [http://linvdr.org/download/vdr/Tools Download Spiegel] | # [http://linvdr.org/download/vdr/Tools Download Spiegel] | ||
# [http://savannah.gnu.org/projects/stow GNU Stow Projekt Homepage] | # [http://savannah.gnu.org/projects/stow GNU Stow Projekt Homepage] | ||
Zeile 273: | Zeile 298: | ||
# [http://linuxwiki.de/Stow Stow Wiki] | # [http://linuxwiki.de/Stow Stow Wiki] | ||
− | [[Kategorie:Skripte]] | + | [[Kategorie:Skripte]][[Kategorie:Installscript]][[Kategorie:Installationsanleitungen]] |
− | [[Kategorie:Installscript]] | + | |
{{i18n|Installscript}} | {{i18n|Installscript}} |
Aktuelle Version vom 9. Dezember 2012, 18:09 Uhr
Inhaltsverzeichnis |
[Bearbeiten] Was ist das Installscript?
Das Installscript ist ein Tool, mit dem die üblichen Installationsschritte durch eine Sammlung von Skripten erledigt werden.
[Bearbeiten] Webvideo
Mal eine Installation, als Webvideo unter openSuSE 11.1 auf der Konsole, mit geschnitten.
[Bearbeiten] Download
bash> wget ftp://ftp.tvdr.de/vdr/Tools/vdr-install-script-current.run
[Bearbeiten] Anleitung
[Bearbeiten] 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
[Bearbeiten] 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
[Bearbeiten] CMD(s)
Beschreibungen... Links folgen :-)
+-- $DISDIR +-- admin +-- command-cmds +-- plugin-cmds +-- recording-cmds +-- shutdown-cmds +-- start-cmds |--+ rc |--+ rc.d |--+ [...]
[Bearbeiten] 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}
[Bearbeiten] Module
[Bearbeiten] Hinzufügen
Im Mainmenü.
Oder von ../preeplugins/<PLUGIN>.bak nach ../preeplugins/<PLUGIN>.cmd umbenennen.
[Bearbeiten] 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...
[Bearbeiten] 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
[Bearbeiten] Tipps
[Bearbeiten] 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
[Bearbeiten] 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.
[Bearbeiten] Distributions-spezifisch
[Bearbeiten] 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/
[Bearbeiten] Gentoo
Da war etwas mit den MPlayer, siehe Gentoo VdrMplayer USE-Variablen.
[Bearbeiten] 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.
[Bearbeiten] 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
[Bearbeiten] 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
[Bearbeiten] Probleme
[Bearbeiten] 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.
[Bearbeiten]
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