User Tools

Site Tools


mld:entwicklung:400_entwicklungsumgebung

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

mld:entwicklung:400_entwicklungsumgebung [2014/03/11 07:26]
P3f [3.3 Aktualisieren der Entwicklungsumgebung]
mld:entwicklung:400_entwicklungsumgebung [2015/03/11 17:33] (current)
Line 3: Line 3:
 ===== 1 Vorwort ===== ===== 1 Vorwort =====
  
-Da wir immer nach neuen Mitstreitern suchen und einige sicher von der MLD angetan sind, aber doch verschreckt von der Entwicklungsumgebung,​ möchte ich hiermit mal ein Step-by-Step ​Howto build for MLD-4.x zusammen tippen. Dieser Teil richtet sich nicht nur an potentielle Entwickler, sondern kann von jedem neuen User Schritt für Schritt nachgestellt werden, um selbst die bereitge­stellten Addons zu bauen.+Da wir immer nach neuen Mitstreitern suchen und einige sicher von der MLD angetan sind, aber doch verschreckt von der Entwicklungsumgebung,​ möchte ich hiermit mal ein Step-by-Step ​How-to ​build for MLD-4.x zusammen tippen. Dieser Teil richtet sich nicht nur an potentielle Entwickler, sondern kann von jedem neuen User Schritt für Schritt nachgestellt werden, um selbst die bereitge­stellten Addons zu bauen.
  
 ===== 2 Vorbereitung ===== ===== 2 Vorbereitung =====
  
-Da MLD-4.x auf Ubuntu basiert, ist es sinnvoll, auch ein neueres Ubuntu zum Entwickeln zu nutzen. Im Folgenden gehe ich auf den neusten ​Entwicklungszweig ein und deswegen wird ein Ubuntu ​Raring ​(13.04) Derivat benötigt. Hierbei ist es egal ob es Kubuntu, Ubuntu, Linux Mint usw. ist. Es muss einfach nur auf Version ​13.04 aufbauen.+Da MLD-4.x auf Ubuntu basiert, ist es sinnvoll, auch ein neueres Ubuntu zum Entwickeln zu nutzen. Im Folgenden gehe ich auf den neuesten ​Entwicklungszweig einund deswegen wird ein Ubuntu (Trusty Tahr 14.04) Derivat benötigt. Hierbei ist es egalob es Kubuntu, Ubuntu, Lubuntu, Linux Mint  usw. ist. Es muss einfach nur auf Version ​14.04 aufbauen. Die meisten Entwickler hier arbeiten in der Devel Umgebung mit Lubuntu 14.04, aber man kann wie schon erwähnt auch mit jeder anderen Ubuntu 14.04 das machen.
  
-==== 2.1 Ubuntu ​13.04 installieren (Minimal wird nicht empfohlen) ====+==== 2.1 Ubuntu ​14.04 installieren (Minimal wird nicht empfohlen) ====
  
-Wie man ein System installiert muss ich hoffentlich nicht beschreiben,​ ansonsten ist man wohl falsch im Wiki abgebogen oder muss sich z.B. [[http://​wiki.ubuntuusers.de/​Installation|hier]] durchwühlen.+Wie man ein System installiert muss ich hoffentlich nicht beschreiben,​ ansonsten ist man wohl falsch im Wiki abgebogen oder muss sich z. B. [[http://​wiki.ubuntuusers.de/​Installation|hier]] durchwühlen.
  
 ==== 2.2 Ubuntu vorbereiten ==== ==== 2.2 Ubuntu vorbereiten ====
 +Als erstes fügen wir folgende Repository in der Shell oder im Terminal hinzu:
 +<code bash>​sudo add-apt-repository ppa:​samrog131/​ppa && sudo apt-get update
 +sudo add-apt-repository '​ppa:​plexapp/​plexht'​ && sudo apt-get update && sudo apt-get install plexhometheater
 +sudo add-apt-repository 'deb http://​plex.r.worldssl.net/​PlexMediaServer/​ubuntu-repo lucid main' && sudo apt-get update && sudo apt-get install plex-archive-keyring && sudo apt-get update
 +sudo add-apt-repository ppa:​costamagnagianfranco/​ettercap-stable-backports && sudo apt-get update
 +sudo add-apt-repository ppa:​team-xbmc/​ppa && sudo apt-get update
 +sudo add-apt-repository 'deb http://​repository.spotify.com/​ stable non-free'​ && sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 94558F59 && sudo apt-get update
 +sudo /​usr/​share/​doc/​libdvdread4/​install-css.sh</​code>​
  
-Nach der Installation ist es wichtig, Ubuntu auf den neusten ​Stand zu bringen. Das ist wichtig, da die Entwicklungsumgebung so auch Zugriff auf die neusten ​Libraries und Binaries hat. Also in der Shell oder im Terminal folgendes eingeben:+ 
 +Nach der Installation ​und hinzufügen der Repository ​ist es wichtig, Ubuntu auf den neuesten ​Stand zu bringen. Das ist wichtig, da die Entwicklungsumgebung so auch Zugriff auf die neuesten ​Libraries und Binaries hat.
 <code bash>​sudo apt-get update <code bash>​sudo apt-get update
 sudo apt-get dist-upgrade</​code>​ sudo apt-get dist-upgrade</​code>​
  
 Nun noch einige Basis Pakete installieren,​ um an die Entwicklungsumgebung zu kommen: Nun noch einige Basis Pakete installieren,​ um an die Entwicklungsumgebung zu kommen:
-<code bash>​sudo apt-get install subversion make mercurial git-core python-software-properties cvs squashfs-tools ipsvd</​code>​+<code bash>​sudo apt-get install subversion make mercurial git-core python-software-properties cvs squashfs-tools ipsvd gettext wget</​code>​
 ===== 3 MLD Entwicklungsumgebung installieren ===== ===== 3 MLD Entwicklungsumgebung installieren =====
 ==== 3.1 Holen der Entwicklungsumgebung ==== ==== 3.1 Holen der Entwicklungsumgebung ====
Line 28: Line 37:
 <code bash>git clone http://​minidvblinux.de/​git-4/​MLD.git MLD</​code>​ <code bash>git clone http://​minidvblinux.de/​git-4/​MLD.git MLD</​code>​
  
-Wenn dabei etwas schief geht, hat man sicherlich etwas bei Ubuntu vorbereiten vergessen. Nun Wechseln ​wir in den Ordner MLD, welcher schon die wichtigsten Werkzeuge für uns beinhaltet. Man könnte jetzt ein make starten dieses würde aber sofort abbrechen, weil einige benötigte Ubuntu Pakete fehlen. Um nun nicht immer wieder weitere fehlende Ubuntu Pakete installieren zu müssen, rate ich dazu, sich erst einmal die ganze Entwicklungsumgebung zu laden und alle Beziehungen (ab sofort deps) aufzulösen. Klingt schlimmer als es ist:+Wenn dabei etwas schief geht, hat man sicherlich etwas bei Ubuntu vorbereiten vergessen. Nun wechseln ​wir in den Ordner MLD, welcher schon die wichtigsten Werkzeuge für uns beinhaltet. Man könnte jetzt ein make startendieses würde aber sofort abbrechen, weil einige benötigte Ubuntu Pakete fehlen. Um nun nicht immer wieder weitere fehlende Ubuntu Pakete installieren zu müssen, rate ich dazu, sich erst einmal die ganze Entwicklungsumgebung zu laden und alle Beziehungen (ab sofort deps) aufzulösen. Klingt schlimmer als es ist:
  
 <code bash>cd MLD</​code>​ <code bash>cd MLD</​code>​
  
-Nun holen wir erst mal alle Pakete:+Nun holen wir erst mal alle Pakete: ​Hier kann es vorkommen, dass man bei manchen Paketen einen error bekommt und sie nicht heruntergeladen werden können. Ein Grund dafür kann der Internetanbieter sein - und zwar die Telekom (Deutschland auch Österreich) - einfach den Befehl noch ein paar mal durchlaufen lassen, bis alles Pakete heruntergeladen worden sind und dann mit dem nächsten Schritt fortfahren. ​
 <code bash>​make checkout_all</​code>​ <code bash>​make checkout_all</​code>​
  
Line 58: Line 67:
 <code bash>​make</​code>​ <code bash>​make</​code>​
  
-|^  Tipp  |Um geziehlt ​nur ein bestimmtes ISO zu bauen, geht das so:|+|^  Tipp  |Um gezielt ​nur ein bestimmtes ISO zu bauen, geht das so:|
 <code bash>cd ISO <code bash>cd ISO
-make collection=NAME_DES_ISO #(z.b. standard)</​code>​+make collection=NAME_DES_ISO #(z. B. standard)</​code>​
  
 ==== 3.3 Aktualisieren der Entwicklungsumgebung ==== ==== 3.3 Aktualisieren der Entwicklungsumgebung ====
Line 82: Line 91:
 make clean</​code>​ make clean</​code>​
  
-Ein Paket neu bauen ohne das es neu kompiliert wird (Beispiel dvb):+Ein Paket neu bauen ohne dass es neu kompiliert wird (Beispiel dvb):
 <code bash>cd dvb <code bash>cd dvb
 make_clean</​code>​ make_clean</​code>​
  
-|^  Tipp  |Beim Paket vdr und kernel ist es möglich, die vom vdr oder kernel abhängigen Pakete (z.b. beim vdr die plugins) neu bauen zu lassen ohne das diese neu kompiliert werden müssen (Beispiel vdr):|+|^  Tipp  |Beim Paket vdr und kernel ist es möglich, die vom vdr oder kernel abhängigen Pakete (z. B. beim vdr die plugins) neu bauen zu lassenohne dass diese neu kompiliert werden müssen (Beispiel vdr):|
 <code bash>cd vdr <code bash>cd vdr
 make all_depends</​code>​ make all_depends</​code>​
Line 135: Line 144:
 |Priority:​|=>​ ???| |Priority:​|=>​ ???|
 |Maintainer:​|=>​ Name des Paketerstellers| |Maintainer:​|=>​ Name des Paketerstellers|
-|Architecture:​|=>​ auf welcher Umgebung das Paket laufen kann (z.b. i386)| +|Architecture:​|=>​ auf welcher Umgebung das Paket laufen kann (z. B. i386)| 
-|Depends:​|=>​ Abhängikkeiten (z.b. vdr)|+|Depends:​|=>​ Abhängikkeiten (z. B. vdr)|
 |Description:​|=>​ Kurze Beschreibung des Paketes| |Description:​|=>​ Kurze Beschreibung des Paketes|
 |=> Ausführliche Beschreibung,​ die über mehrere Zeilen gehen darf|| |=> Ausführliche Beschreibung,​ die über mehrere Zeilen gehen darf||
Line 146: Line 155:
 in der INSTALL unter uninstall) befand. in der INSTALL unter uninstall) befand.
  
-|^  WICHTIG ​ |Sofern im Paket ein init script existiert (/​etc/​init.d/​NAME),​ muss dieses im controls/​postinst Script per "start NAME" (z.b. start alsa) aufgerufen werden. Wenn auch nen stop erforderlich ist, wird der im controls/​prerm Script aufgerufen (z.b. stop alsa). Das ist notwendig, damit Dienste nach dem Installieren sofort gestartet werden, und nicht erst beim nächsten Reboot. Dies ist natürlich nur für die Pakete notwendig, bei denen ein aufruf ​des init Scripts erforderlich ist z.b. alsa wobei hier zwar das starten ​erforderlch ist, das stoppen ​aber nicht.|+|^  WICHTIG ​ |Sofern im Paket ein init script existiert (/​etc/​init.d/​NAME),​ muss dieses im controls/​postinst Script per "start NAME" (z. B. start alsa) aufgerufen werden. Wenn auch ein stop erforderlich ist, wird der im controls/​prerm Script aufgerufen (z. B. stop alsa). Das ist notwendig, damit Dienste nach dem Installieren sofort gestartet werden, und nicht erst beim nächsten Reboot. Dies ist natürlich nur für die Pakete notwendig, bei denen ein Aufruf ​des init Scripts erforderlich istz. B. alsawobei hier zwar das Starten ​erforderlch ist, das Stoppen ​aber nicht.|
  
-Zu guter letzt gibt es noch (wenn gebraucht) die Datei conffiles. ​Da werden alle Datein ​drin eingetragen (z.b. /​etc/​vdr/​setup.conf),​ die im Paket enthalten und Konfigurations Dateien sind. Die werden dann bei nem deinstallieren ​und vor allem beim Updaten besonders behandelt.+Zu guter letzt gibt es noch (wenn gebraucht) die Datei conffiles. ​Darin werden alle Datein eingetragen (z. B. /​etc/​vdr/​setup.conf),​ die im Paket enthalten und Konfigurations-Dateien sind. Die werden dann bei einem Deinstallieren ​und vor allem beim Updaten besonders behandelt.
  
 |^  Tipp  |Im control Ordner werden beim checkout_old gerne einige prerm und postinst Dateien angelegt, die fast leer sind (11 Byte groß). Die können bedenkenlos gelöscht werden, bevor das neue Paket eingecheckt wird.| |^  Tipp  |Im control Ordner werden beim checkout_old gerne einige prerm und postinst Dateien angelegt, die fast leer sind (11 Byte groß). Die können bedenkenlos gelöscht werden, bevor das neue Paket eingecheckt wird.|
Line 156: Line 165:
 In der MLD-4.x wurde der Ordner !_addons durch den Ordner .packages ersetzt. ​ In der MLD-4.x wurde der Ordner !_addons durch den Ordner .packages ersetzt. ​
  
-|^  Tipp  |Je nach Einstellung eures Systems kann es passieren ​das ihr Ihn nicht seht. Dazu einfach im Dateimanager alle Dateien anzeigen einstellen und schon seht ihr ihn.|+|^  Tipp  |Je nach Einstellung eures Systems kann es passieren, dass ihr Ihn nicht seht. Dazu einfach im Dateimanager alle Dateien anzeigen einstellen und schon seht ihr ihn.|
  
 Im Ordner .packages/​4.0.0/​ befinden sich die erstellten ISOs sowie 2 Ordner mit Namen base und libs. Im Ordner .packages/​4.0.0/​ befinden sich die erstellten ISOs sowie 2 Ordner mit Namen base und libs.
Line 162: Line 171:
 === 6.2.1 Ordner base === === 6.2.1 Ordner base ===
 In diesem befinden sich 2 Ordner: In diesem befinden sich 2 Ordner:
-|control|=>​ Hier befinden ​sich die control Datei aus dem jeweiligen Paketordner ({PACKAGES}/​control/​control) nur das sie hier nicht als control sondern unter dem Namen-Version des Paketes abgelegt ​sind( z.b. alsa-1.0.25-3)| +|control|=>​ Hier befindet ​sich die control Datei aus dem jeweiligen Paketordner ({PACKAGES}/​control/​control) nur dass sie hier nicht als control sondern unter dem Namen-Version des Paketes abgelegt ​ist (z. B. alsa-1.0.25-3)| 
-|packages|=>​ Darin befinden sich die ganzen Standartpakete (z.b. kernel, alsa, vdr...)|+|packages|=>​ Darin befinden sich die ganzen Standartpakete (z. B. kernel, alsa, vdr...)|
  
 === 6.2.2 Ordner libs === === 6.2.2 Ordner libs ===
 |control|=>​ (siehe base)| |control|=>​ (siehe base)|
 |packages|=>​ Darin befinden sich alle von den Paketen benötigten libs| |packages|=>​ Darin befinden sich alle von den Paketen benötigten libs|
mld/entwicklung/400_entwicklungsumgebung.1394519182.txt.gz · Last modified: 2014/03/11 02:26 (external edit)