hagen-bauer.de
Archiv Impressum Datenschutz

    FreeBSD: Pakete selber bauen

    Ich betreibe jetzt seit einigen Jahren FreeBSD Server für meine privaten Dienste und bin bisher immer gut mit den normalen Paketen gefahren.

    Jetzt gab es diese Woche ein kritisches NodeJS Update das eine mögliche Remote Code Execution abgeschaltet hat. Wenn so etwas auftritt dann gibt es immer die Alternative “warten oder selbst kompilieren”

    Irgendwie dauert mit das allerdings jetzt zu lange und ich habe Zeit das mal selbst zu bewerkstelligen. Leider ist auch in der Definition der Ports noch nicht die neue Version enthalten so das ich auch noch diese Definition “patchen” musste.

    Der folgende Ansatz basiert im Wesentliche auf diesem sehr schönen Beitrag plus einige Hinweise von dem Autor in einer privaten Konversation.

    Die Reihenfolge ist:

    • Erstellen eines “Wegwerfjails” für den Buildprozess
    • Patchen der Port Definition
    • Bauen des Installationspaketes
    • Erstellen einer Paketquelle im Ziel Jail und upgraden.

    Zuerst ein Jail erstellen das der Release Version der Zielumgebung entspricht

    bastille bootstrap 14.4-RELEASE
    bastille create nodejs22-14 14.4-RELEASE 10.1.0.99/24 bastille0
    bastille config nodejs22-14 set boot off
    

    Außerdem ist sicherzustellen das aus dem Jail heraus die Firewall den Zugriff auf die diversen Software Seiten zulässt / ermöglicht.

    Dann sicherstellen das die Pakete im “Bau-Jail” aus der gleichen Quelle kommen wie das Zieljail und Pakete aktualisieren. Ich verwende latest und default ist quartely

    bastille console nodejs22-14
    vi /etc/pkg/FreeBSD.conf 
    
    pkg update
    pkg upgrade
    

    Installation von git und download der Quelldefinition

    env ASSUME_ALWAYS_YES=yes pkg bootstrap -f
    pkg install -y git-tiny
    git clone https://git.FreeBSD.org/ports.git /usr/ports
    

    Wenn wir nicht das aktuelle brotli Paket haben scheitert gleich die nodejs Installation

    cd /usr/ports/archivers/brotli/
    make reinstall
    

    Zum jetzigen Zeitpunkt hat die Portkonfiguration allerdings nicht auf die neueste Version gezeigt. Wie ich heute gelernt habe scheint es manchmal auszureichen hier einfach die Version in der Quelle einzutragen.

    cd /usr/ports/www/node22/
    vi  Makefile.version
      NODEJS_PORTVERSION=	22.23.4
    

    und die Version auf 0 zu setzen

    vi Makefile
     PORTREVISION=  0
    

    Damit wir nicht alle Quellen bauen müssen gibt es in dem verlinkten Artikel ein Script, das zuerst prüft welche Pakete fehlen und die werden normal aus den Paketquellen installiert. Der Rest wird gebaut.

    vi build-nodejs22.sh
    -----
    #!/bin/sh
    set -e
    export BATCH=yes
    P=/usr/ports
    
    for o in www/node22; do
        echo "=== $o"
        missing=$(make -C $P/$o missing)
        deps=$(printf '%s\n' "$missing" || true)
        if [ -n "$deps" ]; then
            pkg install -y $deps
        fi
        make -C $P/$o clean package install clean
    done
    ----
     
    chmod +x build-nodejs22.sh
    ./build-nodejs22.sh
    
    

    Am Ende habe ich dann 2 Pakete

    ls /usr/ports/packages/All/
    brotli-1.2.1,1.pkg	node22-22.23.4.pkg
    

    die wir installieren könnten. Es soll jedoch besser sein diese in ein eigenes Repository zu packen und dieses dann als Quelle im Jail einzutragen. Auf dem Host also

    mkdir /root/node22-23-4
    cp /usr/local/bastille/jails/nodejs22-14/root/usr/ports/packages/All/* /root/node22-23-4/
    pkg repo /root/node22-23-4/
      Creating repository in /root/node22-23-4/: 100%
      Packing files for repository: 100%
    
    jail=mstdn2
    
    mkdir -p /usr/local/bastille/jails/$jail/root/var/tmp/node22-local /usr/local/bastille/jails/$jail/root/usr/local/etc/pkg/repos
    cp /root/node22-23-4/* /usr/local/bastille/jails/$jail/root/var/tmp/node22-local
    
    cat > /usr/local/bastille/jails/$jail/root/usr/local/etc/pkg/repos/node22-local.conf <'EOF'
    node22-local: {
      url: "file:///var/tmp/node22-local",
      signature_type: "none",
      priority: 100,
      enabled: yes
    }
    EOF
    
    
     bastille pkg $jail update
     bastille pkg $jail upgrade -g node22
    

    Wenn ich dann in das Jail gehe und die Version prüfe

     bastille console $jail
     node -v
      v22.23.4
    

    Sieht es gut aus :-)

    Sobald dies neue Version in den Paketquellen ist werde ich versuchen wird auf diese zurück zu schwenken.

    Bei Nodejs24 hat das übrigens nicht so gut geklappt. Hier gab es Patches die auf die neueste Version aus den Herstellerquellen nicht angewendet werden konnten. Aber da zum Zeitpunkt des Versuches schon die original Updates am Horizont zu sehen waren habe ich das nicht weiter verfolgt.

    Auch wenn die richtigen Updates bald kommen sollen hat sich die Übung gelohnt. Wer weiß wann ich das noch mal brauchen kann.

    25.10.2026 | Kategorie / FreeBSD / Nodejs / Ports /

    Bromptons in the house

    Wir haben uns eine Lösung hauptpsächlich für die zukünftige Mobilität auf Reisen aber auch als Erweiterung des ÖPNV Radius gegönnt.

    Die erste Runde um den Block war schon gut. Es fährt sich natürlich anders und ich fühle mich ein wenig wie so ein Gockel auf dem Rad.

    Wir freuen uns schon damit im nächsten Urlaub die näheren Umgebungen der Reisestationen zu erkunden.

    Ein zusammengeklapptes schwarzes Faltrad der Marke Brompton

    17.10.2026 | Kategorie / brompton /

    Wieder ein polizeiliches Kommunikationsproblem

    Die Polizei erschießt einen Hund und leitet ein Strafverfahren wegen Bedrohung mit einer Schusswaffe sowie Widerstands gegen Vollstreckungsbeamt*innen ein und gibt das in einer Pressemitteilung bekannt.

    Nach ein paar Tagen kommt dann eine stille “Uppsi” Korrektur. Der Hund war kein Kampfhund sondern ein Chihauha und der Mann war nicht der Gesuchte.

    “funfact”: Das ist wieder ein Eintrag in der Polizeistatistik zu dem Punkt “Angriffe auf Polizeibeamte”

    https://www.nd-aktuell.de/artikel/1203169.ludwigshafen-polizei-korrigiert-pressemitteilung-zu-erschossenem-chihuahua.html

    15.10.2026 | Kategorie / polizeigewalt /

    Erlaubte Geschwindigkeitsübertretungen

    hä?? Warum sollen jetzt autonom fahrende Autos schneller fahren dürfen als Menschen? Unser toller Autominister findet das eine tolle Idee

    Und wer soll dann entscheiden ob es “situationsabhängig” sinnvoll ist in einer 30er Zone 40 zu fahren?

    Im Rahmen der Gespräche im September haben sich das Bundesverkehrsministerium und Tesla darauf verständigt, dass das Fahrerassistenzsystem die zulässige Höchstgeschwindigkeit geringfügig – um maximal zehn Prozent – überschreiten darf. Deutschland hat seine Bereitschaft signalisiert, diesen Ansatz im europäischen Verfahren konstruktiv zu begleiten. Geringfügige Geschwindigkeitsüberschreitungen können situationsabhängig zu einem gleichmäßigeren und flüssigeren Verkehrsablauf beitragen.

    Es ist für meinen persönlichen Verkehrsablauf immer flüssiger schneller zu fahren als erlaubt.

    Screenshot eines Artikels der Verkehrsministeriums

    8.10.2026 | Kategorie / verkehr / autonomesfahren /

    KFW Antrag für Wärmepumpe

    ich bin noch etwas vom Donner gerührt.

    Ich habe gerade einen Antrag für den Zuschuss für eine Wärmepumpe bei der KfW gestellt und innerhalb von 2 Minuten eine Zusage erhalten.

    #Wärmepumpe

    5.10.2026 | Kategorie / wärmepumpe / kfw /

    Füllstand der Gasspeicher in Deutschland

    Ich hatte mich ja mal Anfang des Jahres mit einer Auswertung der Gasspeicherfüllstände beschäftigt.

    So sieht es Ende Semptember aus. Bisher war ja die Politik “der Markt wird es richten”. Jetzt auf einmal stellt man fest das es der Markt wohl doch nicht richtet und es gibt eine Anweisung das die Speicher aufgefüllt werden müssen

    Grafische Darstellung des Füllstandes der deutschen Gasspeicher Ende September 2026

    4.10.2026 | Kategorie / Gasspeicher / Winter /

    Blutspenden

    Hier wieder der übliche Reminder doch an an einen Blutspendetermin zu denken wenn es Euch gesundheitlich möglich ist. Gestern war bei mir die 45. Spende

    Wann geht Ihr wieder spenden? Blutspenden fetzt

    3.10.2026 | Kategorie / Blutspende /

    Schafzeit

    Wenn Ihr mal etwas Entspannung und Natur sucht hier mal ein etwas anderer Tipp. Einfach mal etwas Zeit unter Schafen buchen. Das ist wirklich mal ein Erlebnis. https://eifelschafzeit.de/

    Ich sitze lachend zwischen Schafen.

    6.9.2026 | Kategorie / Natur / Schafzeit /

    Auszüge

    Heute fliegt das zweite Vögelchen aus dem Nest.

    ein noch leerer Anhänger

    6.9.2026 | Kategorie / Kinder / WurzelnUndFlügel /

    Cisco Talos Reputation ändern

    Vor einigen Tagen bin ich über einen Toot von Anne Roth auf die Talos Reputation aufmerksam geworden und haben festgestellt das mein Blog (und einige andere Seiten die auf dem Server laufen) als “Malicious Site” eingestuft worden sind. Ich vermute das liegt an einer Portweiterleitung die dort eingestellt ist.

    Ich habe einen Antrag (Button Submit Web Reputation Ticket) eingestellt und innerhalb eines Tages wurde die Einschätzung meiner IP auf “Neutral” geändert 🙂

    Das soweit zur Qualität eine Dienstes wie Cisco Talos

    2.9.2026 | Kategorie / talos / selfhosting /

    Füllstand der Gasspeicher in Deutschland

    Ich hatte mich ja mal Anfang des Jahres mit einer Auswertung der Gasspeicherfüllstände beschäftigt.

    So sieht es Ende August aus. Die ersten werden schon nervös

    Bei einem extrem kalten Winter werden die Speicher bereits bis Ende Januar 2026 vollständig entleert – eine vollständige Versorgung ist dann bei aktuellen Verbrauchsmustern nicht mehr möglich.

    Grafische Darstellung des Füllstandes der deutschen Gasspeicher Ende August 2026

    1.9.2026 | Kategorie / Gasspeicher / Winter /
Hagen Bauer
image/svg+xml image/svg+xml image/svg+xml

Über diesen Blog

Dies ist ein privater Blog von Hagen Bauer- berufstätiger Vater, Ehemann, Naturliebhaber, Läufer, Camper, technikverliebt.


Serverkonfigurationen

< UberBlogr Webring >

This blog is licensed under a Creative Commons License