|
|
Line 1: |
Line 1: |
− | <!-- interwiki - doesn't work! -->
| |
− | <!-- [[en:Module Writing]]-->
| |
− | <!-- [[de:Module Schreiben]]-->
| |
| | | |
− | __TOC__
| |
− |
| |
− | Lunar [[modules|Module]] schreiben kann extrem komplex oder sehr einfach sein und entspricht den Schritten, die nötig sind um ein [[package|Paket]] manuell zu installieren. Allerdings gibt es so viele Variablen, die man berücksichtigen muss, wenn man Module schreibt, dass es schwer ist alles richtig zu machen, wenn man noch keine Erfahrung mit dem Schreiben von Modulen besitzt.
| |
− |
| |
− | ==Bevor du anfängst==
| |
− |
| |
− | Nimm dir kurz Zeit und denke darüber nach ''warum'' du ein neues Modul schreiben möchtest. Es gibt einige Dinge zu berücksichtigen, die dich wieder von dem Gedanken ein Modul zu schreiben abbringen können. Hier ein kurzer Leitfaden...
| |
− |
| |
− | * Prüfe ob es bereits dein Paket in Lunars [[moonbase|Moonbase]] gibt. Nichts ist schlimmer als die selbe Arbeit zweimal zu machen.
| |
− | *Prüfe die Lizenz. Einige Lizenzen sind nicht mit Lunar kompatibel und dein frisch geschriebenes Modul könnte es wegen diesem Lizenzproblem niemals in die [[moonbase|Moonbase]] schaffen. (In diesem Fall könntest du das Modul allerdings auf der Webseite für [[non-free modules|Nicht-freien Module]] einreichen.)
| |
− | *Prüfe die Abhängigkeiten, die für das Modul nötig sind. Siehe ebenfalls ob jene die Anforderungen erfüllen. Manchmal kostet es so viel Zeit ein Modul zu schreiben, dass es sich einfach nicht lohnt.
| |
− | *Prüfe ob du nicht besser dran bist einfach etwas manuell zu installieren oder auf vorkompiliertes zurück zu greifen. Einige Programme kann man zum Beispiel einfach im Heimverzeichnis installieren und selbst wenn ein Modul schön wäre, ist es einfach leichter es so zu installieren.
| |
− |
| |
− | ==Der Angang eines Moduls==
| |
− |
| |
− | Fine einen guten Platz in der [[moonbase|Moonbase]]. Du solltest immer nur unter [[zlocal]] arbeiten. Die [[moonbase|Moonbase]] auf deinem System findest du unter "/var/lib/lunar/moonbase".
| |
− |
| |
− | cd /var/lib/lunar/moonbase/zlocal
| |
− | mkdir mymodule
| |
− | cd mymodule
| |
− |
| |
− | Jedes Modul definiert sich aus einer Gruppe von Dateien und Verzeichnissen, einschließlich der Datei [[DETAILS]], in einem eigenen Verzeichnis. So muss die [[DETAILS]] Datei mindestens aussehen:
| |
− |
| |
− | MODULE=mymodule
| |
− | VERSION=1.0
| |
− | SOURCE=$MODULE-$VERSION.tar.bz2
| |
− | SOURCE_URL=http://my.site.org/files/
| |
− | SOURCE_VFY=sha1:e96df66f703c5ab1a295e216b5035ee14d6202b2
| |
− | WEB_SITE=http://my.site.org/
| |
− | ENTERED=20050808
| |
− | UPDATED=20050808
| |
− | SHORT="Makes module writing easy"
| |
− |
| |
− | cat<<EOF
| |
− | MyModule is a simple tool to explain module writing in
| |
− | detail. It doesn't actually exist but is used as an example
| |
− | for educational purposes.
| |
− | EOF
| |
− |
| |
− | Das ist eine gute Basis für die [[DETAILS]] Datei mit allen benötigten Komponenten. Wie man sehen kann, handelt es sich nur um einfachen Shellcode.
| |
− |
| |
− | ''Alle Lunar Moduldateien sind Bashcode. Das bedeutet, dass du shellspezifischen Zeichen und korrekter Syntax spezielle Aufmerksamkeit widmen musst''
| |
− |
| |
− | Diese [[DETAILS]] Datei kann bereits alles sein, was du für das Schreiben eines Moduls benötigst. Das hängt von der Art und Weise ab, wie "mymodule" kompiliert werden muss.
| |
− |
| |
− | == Modulformat ==
| |
− |
| |
− | Siehe [[Module Basics|Modulgrundlagen]] und [[Module Guidelines|Modulrichtlinien]] für detaillierte Informationen über verfügbare Modulskripte und Modulbeispiele.
| |