User Tools

Site Tools


mld:entwicklung:54_entwicklungsumgebung

Differences

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

Link to this comparison view

mld:entwicklung:54_entwicklungsumgebung [2017/08/13 11:28]
clausmuus [2.3 Docker Container erstellen]
mld:entwicklung:54_entwicklungsumgebung [2021/05/28 15:51] (current)
clausmuus
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 How-to build for MLD-5.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 Pakete zu bauen.+Da wir immer nach neuen Mitstreitern suchen und einige sicher von der MLD angetan sind, aber nicht wissen wie die Entwicklung ​von Paketen abläuft, möchte ​wir hiermit ein Step-by-Step How-to build for MLD-5.x ​zusammenstellen. Dieser Teil richtet sich nicht nur an Entwickler ​neuer Pakete, sondern kann von jedem User Schritt für Schritt nachgestellt werden, um selbst die bereitge­stellten Pakete zu bauen.
  
 ===== 2 Vorbereitung ===== ===== 2 Vorbereitung =====
Line 9: Line 9:
 Im Folgenden gehen wir auf den 5.4 MLD-Entwicklungszweig ein, bei dem wir als Basis Debian 9 (Stretch) in einem Docker Container einsetzen. Im Folgenden gehen wir auf den 5.4 MLD-Entwicklungszweig ein, bei dem wir als Basis Debian 9 (Stretch) in einem Docker Container einsetzen.
  
-|^  WICHTIG ​ | Da das Bauen von MLD Paketen viel Platz brauchen ​kannkann dies zu Problemen ​führen, ​wenn die Entwicklungsumgebung unter MLD eingerichtet wird. Wer plant umfangreichere Arbeiten durchzuführen,​ sollte den Ordner /​var/​lib/​docker auf eine getrennte ​große btrfs Partition verlegen. | +|^  WICHTIG ​ | Das Bauen von MLD Paketen ​kann viel Platz brauchen, ​was zu Problemen ​führt ​wenn die Entwicklungsumgebung unter MLD eingerichtet wird. Wer plant umfangreichere Arbeiten durchzuführen,​ sollte den Ordner /​var/​lib/​docker auf eine große btrfs Partition verlegen. |
  
 ==== 2.1 Docker unter MLD installieren ==== ==== 2.1 Docker unter MLD installieren ====
Line 24: Line 23:
 cd /​root/​devel</​code>​ cd /​root/​devel</​code>​
 <code bash>​nano Dockerfile</​code>​ <code bash>​nano Dockerfile</​code>​
-Jetzt das unten stehende in das Dockerfile einfügen und speichern:+Das unten stehende in das Dockerfile einfügen und speichern:
 <​code>​ <​code>​
 FROM debian:​stretch FROM debian:​stretch
Line 40: Line 39:
 RUN git clone http://​minidvblinux.de/​git-5/​MLD.git MLD \ RUN git clone http://​minidvblinux.de/​git-5/​MLD.git MLD \
  &&​ cd MLD \  &&​ cd MLD \
- && ​for name in ISO LOGO apt base btrfs busybox dpkg hid init initramfs kernel ldconfig network psplash ssh syslinux udev vfat xfs; do make checkout name=$name; done+ &&​ make checkout_base
  
 # MLD Paket Abhängigkeiten installieren # MLD Paket Abhängigkeiten installieren
Line 46: Line 45:
  &&​ apt-get install -y $(make deps)  &&​ apt-get install -y $(make deps)
 </​code>​ </​code>​
 +
 +|^  TIPP  | Wer nicht die testing Version sondern z.B. eine Entwicklungsumgebung für die MLD-5.3 Stable haben möchte, fügt im Dockerfile nach der Zeile '' ​ && cd MLD \''​ diese Zeilen ein: '' ​ && git checkout 5.3 && echo "​.SILENT:​\nCLASS = stable"​ > Makefile.config \''​ |
 +
 +|^  TIPP  | Wer nicht eine Entwicklungsumgebung für die MLD-5.4 sondern eine für die MLD-5.5 haben möchte, ersetzt im Dockerfile in der ersten Zeile das '​stretch'​ durch ein '​buster'​ und fügt nach der Zeile '' ​ && cd MLD \''​ diese Zeilen ein: '' ​ && echo "​.SILENT:​\nDISTRI_VER = 5.5" > Makefile.config \''​ |
 +
 +Auf ARM Systemen (z.B. dem RPI 2) muss die erste Zeile des Dockerfile geändert werden:
 +<code bash>​uname -m | grep -q armv7l && sed "​s|FROM .*|FROM arm32v7/​debian:​stretch|"​ -i Dockerfile</​code>​
 +
 Anschließend das MLD Devel Docker Image erstellen: Anschließend das MLD Devel Docker Image erstellen:
-<code bash>​docker build -t mld/devel:1./​root/​devel</​code>​+<code bash>​docker build -t mld/devel:5./​root/​devel</​code>​
  
 ==== 2.3 Docker Container erstellen ==== ==== 2.3 Docker Container erstellen ====
  
 Jetzt wird ein Docker Container auf Basis des mld/devel Images erstellt: Jetzt wird ein Docker Container auf Basis des mld/devel Images erstellt:
-<code bash>​docker create -it --name MLD mld/devel:1.0</​code>​+<code bash>​docker create -it --name MLD mld/devel:5.4</​code>​
  
 ==== 2.4 Docker Container starten ==== ==== 2.4 Docker Container starten ====
Line 60: Line 67:
 ==== 2.5 Docker Container verwenden ==== ==== 2.5 Docker Container verwenden ====
  
-Zuerst ​muss der Container betreten ​werden:+Zuerst ​wird der Container betreten:
 <code bash>​docker exec -it MLD bash</​code>​ <code bash>​docker exec -it MLD bash</​code>​
  
Line 78: Line 85:
  
  
-Einzelnes Paket bauen (Beispiel hier nun dvb):+Einzelnes Paket bauen (Beispiel hier nun apt):
 <code bash>cd apt <code bash>cd apt
 make</​code>​ make</​code>​
Line 107: Line 114:
  
 Wenn die benötigten Abhängigkeiten installiert werden sollen geht das so: Wenn die benötigten Abhängigkeiten installiert werden sollen geht das so:
-<code bash>​sudo apt-get install $(make deps)</​code>​+<code bash>​sudo apt install $(make deps)</​code>​ 
 + 
 +|^  Hinweis ​ | Leider funktionieren einige Debian Bibliotheken nicht korrekt auf dem RPI. Daher ist es erforderlich zusätzlich eine Raspbian Paketquelle hinzuzufügen:​ ''​ echo 'deb http://​raspbian.raspberrypi.org/​raspbian/​ stretch main' >> /​etc/​apt/​sources.list ''​ und anschließend ein ''​ apt update; apt upgrade ''​ auszuführen. |
  
 Ein Paket neu kompilieren und bauen lassen (Beispiel dvb): Ein Paket neu kompilieren und bauen lassen (Beispiel dvb):
Line 149: Line 158:
 ==== 5.2 GIT ==== ==== 5.2 GIT ====
 Ein kleines Tutorial findest du [[mld:​tutorials:​git|hier]] Ein kleines Tutorial findest du [[mld:​tutorials:​git|hier]]
 +
 +==== 5.3 Nicht als root arbeiten ====
 +Wer nicht als root arbeiten möchte, egal ob im Docker Container oder einer vollwertigen Debian Installation,​ muss sicher stellen, dass der PATH auch auf die sbin Verzeichnisse verweist. Das geht z.B. mit diesem Befehl:
 +<code bash>​echo '​export PATH=/​usr/​local/​sbin:/​usr/​sbin:/​sbin:​$PATH'​ > /​etc/​profile.d/​sbin.sh
  
 ===== 6 Änderungen und Neuerungen bei der MLD-5 ===== ===== 6 Änderungen und Neuerungen bei der MLD-5 =====
mld/entwicklung/54_entwicklungsumgebung.1502616483.txt.gz · Last modified: 2017/08/13 05:28 (external edit)