Skip to content

Compare: Home

Showing with 4 additions and 0 deletions.
  1. +4 −0 Home.md
4 changes: 4 additions & 0 deletions Home.md

Neues Package für /pkg Pfad:

  • We need a build script for the new package. The build-script should be self-contained. So it aside from running it as the build user to install the package into /pkg, it may also be run with you username to install the package to somewhere you may write to ( e.g. /dev/shm or /scratch/local ). So a suggested way to to develop the build script is, to do it under you username to a local installation directory first:

    • Clone git@github.molgen.mpg.de:mariux64/pkg-scripts.git (or pull latest changes )
    • Start with TEMPLATE.sh or the script of a previous version of your software or with a recent script.
    • Change the prefix to a writable local directory ( /dev/shm , /scratzch/local ) insetad of /pkg
    • Develop your script until it is able to build the package for your username.
    • Change the prefix back to /pkg and follow the next sections:
  • Package reservieren:

    Als root@afk das neue Package in /project/config/src/mxpkg mit dem Keyworkd BUILD einbauen und verteilen:

    ssh afk
    sudo -s
    cd /project/config/src
    vi mxpkg
    make
    

    Make verteilt die Datei auf alle Systeme nach /etc/mxpkg und triggert, dass alle Systeme ihre /pkg automount-map (/etc/automount/auto.pkg) daraus neu bauen. Normalerweise sind /pkg-Pfade read-only, aber durch das keyword BUILD werden die Pfade für Packages, die gerade gebaut werden, read-write gemountet.

  • Im eigenen clone von diesem Repository neues build-Script anlegen. z.B.:

    git pull
    cp example-1.0-0.build.sh example-1.1-0.build.sh
    vi example-1.1-0.build.sh    # update version-number
    git add example-1.1-0.build.sh
    git commit -m"Add example-1.1-0"
    
  • Optional als normal-user testen (s.u.)

    Wichtig ist hier, das eigene '*build.home.tmp' Geraffel zu löschen, sonst geht man beim nächsten Schritt evtl. baden (permission denied).

  • Package bauen

    sudo tools/build.sh example-1.1-0

    Beim build werden sicher oft Fehler auftreten, was zu einem Abbruch des builds führen sollte. Man kann sich dem Iterativ nähern:

    vi example-1.1-0.build.sh     # fixe einen Fehler
    sudo tools/build.sh example-1.1-0
    

    bis es klappt. Da die späteren Aufrufe aber nicht mehr bei Null anfangen, sondern in einem Verzeichnis, in dem von den vorherigen Versuchen schon Dateien rumliegen (was gut ist, damit die Iteration oben schneller geht), sollte man zum Schluss sicherstellen, dass das Script nunmehr in der Lage ist, von Null zu bauen. Das build.sh script hat eine Option --purge um alle alten Relikt-Dateien (einschließlich der Downloads) zu löschen.

    Nach Fehlerkorrekturen also ganz zum Schluss

    sudo tools/build.sh example-1.1-0 --purge

    Und bitte auch alle Änderungen am build-Script committen:

    git add example-1.1-0.build.sh
    git commit -v
    git push
    
  • Package zumachen

    Als root@afk aus /project/config/src/mxpkg das Keyword BUILD bei dem Package entfernen

    ssh afk
    sudo -s
    cd /project/config/src
    vi mxpkg
    make
    

Debug build problems

  • Einfach mal als build-user selber in den ausgepackten Sourcen rumediteiren und "make" uns sowas versuchen:
    sudo su - build
    cd /package/pkg/example-.1.2.3-0
    # whatever... 
    
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ to do it under you username to a local installation directory first:
git commit -m"Add example-1.1-0"
```

* Optional als normal-user testen (s.u.)

Wichtig ist hier, das eigene '*build.home.tmp' Geraffel zu löschen, sonst geht man beim nächsten Schritt evtl. baden (permission denied).

* Package bauen

`sudo tools/build.sh example-1.1-0`
Expand Down