1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

synth Unterscheidung der Ports

Dieses Thema im Forum "FreeBSD - Anwendungen und Ports" wurde erstellt von Mardor, 7 Dezember 2017 um 12:27 Uhr.

  1. Mardor

    Mardor Member

    Registriert seit:
    29 November 2007
    Beiträge:
    520
    Hallo,

    wenn ich einen Host mit beispielsweise zwei Jails habe. In einem soll beispielsweise owncloud mit sqlite und beim anderen mysql benutzt werden. Wie kann ich dies mit synth umsetzen.

    Wenn ich mit make -C die Abhängigkeit festlege und mit synth das pkg file erstelle dann mit make -C die andere Abhängigkeit für das zweite Jail erstelle, wie kann dies mit synth realisiert werden. Der Name wird sich meiner Meinung nach ja nicht anhand der gewählten Abhängigkeiten verändern.

    Gruß Mardor
     
  2. Binfort

    Binfort Member

    Registriert seit:
    2 März 2006
    Beiträge:
    203
    Ort:
    HH
    Vor synth hast du das mit mit portmaster per Jail lösen können, ich denke nicht das dieser spezielle Fall einfach zu lösen ist.

    Entweder die Konfig der Pakete bleibt in allen Jails gleich, oder du benutzt poudriere, oder du kompilierst per make im Jail.
     
  3. Mardor

    Mardor Member

    Registriert seit:
    29 November 2007
    Beiträge:
    520
    Hallo Binfort,

    poudriere ist eben vom Aufwand schon ne ganz andere Hausnummer und make ist scheint mir (auch wenn ich es extrem selten benutzt habe (nur zur Installation von portmaster)) auch ziemlich problembehaftet bzgl. fehleranfällig.

    Vielleicht war mein beispiel mit Owncloud etwas weit weg von der Praxis, aber ist denn die Anforderung seine Ports je nach Jail nach den eigenen Wünschen zu erstellen so selbsten.

    Wie macht Ihr/Du das denn wenn du einen Jail hast ?

    Guß Mardor
     
  4. Binfort

    Binfort Member

    Registriert seit:
    2 März 2006
    Beiträge:
    203
    Ort:
    HH
    In meinen Jails laufen größtenteils die selben Anwendungen in gleichen Konfigurationen, ich könnte prima mit synth arbeiten.

    Parallel habe ich auf einem Server im Testbetrieb Host und drei Jails nur mit Binärpaketen aufgesetzt. Der Nachteil ist eben, dass ich mit den default Optionen der Pakte leben muss - was für meine Zwecke völlig in Ordnung ist. Der ungeheure Vorteil liegt beim sehr schnellen Installieren bzw. beim Aktualisieren.

    Sicherlich, einen Plan B braucht es dennoch. Als vor ein paar Jahren die Binärpakete über Nacht möglicherweise kompromittiert waren, wurde von der Verwendung logischerweise abgeraten.

    Für so einen (o.ä.) Fall würde ich zukünftig auf synth setzen. Pakete via poudriere hatte ich mir in ner VM angesehen, mag jeder von halten was er will, mir persönlich ist es zu fett.
     
  5. Mardor

    Mardor Member

    Registriert seit:
    29 November 2007
    Beiträge:
    520
    Hi,

    bei mir läuft eben eine Owncloud, ein Wordpress, ein Dokuwiki, IRC Server, Jump SSH Server etc. etc und jeden eben in einem anderen Jail.
    Mit portmaster war es einfach, nämlich einfach per selbstgeschriebenem Script ins Verzeichnis wechseln und portmaster -a durchführen.

    Bei synth sieht das anders aus. Alleine schon der Zwang die Pakete auf dem Host zu kompilieren anstatt im Jail selbst. Auch muss der Security Level unter 2 gesetzt werden, da ansonsten die mounts von synth nicht funktionieren. Die Rücksetzung des Security Level bedeutet dann weiter, dass der Host neu gestartet werden muss und dann danach pefs wieder neu gemountet weden muss usw usw usw .... also ein extremer Rattenschwanz.

    Und dann eben wird alles extrem unflexibel wenn ich nur eine Version beispielsweise des Apache haben darf/kann.

    Gruß Mardor
     
  6. gadean

    gadean Member

    Registriert seit:
    26 Oktober 2013
    Beiträge:
    177
    Wenn du verschiedene Repository haben willst, wirst du glaube ich mit synth nicht weit kommen (zumindest habe ich nichts in der Manpage gefunden).

    Ich hab erst vor paar Tagen angefangen mit poudriere zu spielen, bisher sieht es extrem simple aus und innerhalb kürzester Zeit erzielt man Erfolge. Damit könntest du zum Beispiel mehrere Repos erstellen (eins das Owncloud mit SQLite hat und das andere mit MySQL / eins für jede Jail / was auch immer) und das jeweilige Repo das gebraucht wird in der Jail bekannt machen.

    Aber am Ende läuft es bei allem aufs selbe hinaus, die Pakete werden aus den Quellen gebaut, genauso wie wenn du in www/apache gehst und dort make aufrufst (nur in einer sauberen Umgebung und das Ergebnis wird in ein Lokales Repo geworfen).

    Edit:DigitalOcean hat da eine relativ gut zu verstehende "Anleitung" zu poudriere, wobei ich den Schritt mit dem Signing ausgelassen habe und keinen Webserver aufgesetzt habe: How To Set Up a Poudriere Build System to Create Packages for your FreeBSD Servers
    Dazu noch aus dem Handbuch 10.5. Poudriere und 4.6. Building Packages with Poudriere als zusätzliche Informationsquelle.

    Und meine quick&dirty Notizen (ich benutz dort zfs, die Pfade müssen angepasst werden):
    Code:
    portsnap fetch update
    cd /usr/ports/ports-mgmt/poudriere && make config && make install clean
    ee /usr/local/etc/poudriere.conf
    cp /etc/make.conf /usr/local/etc/poudriere.d/
    ee /usr/local/etc/poudriere.d/portlist
    mkdir -p /usr/local/etc/pkg/repos
    printf "FreeBSD: {\n  enabled: no\n}\n" >> /usr/local/etc/pkg/repos/FreeBSD.conf
    printf "poudriere: {\n  enabled: yes,\n  url: "\"file:///poudriere/data/packages/<jail_name>-<ports_tree_name>\""\n}\n" >> /usr/local/etc/pkg/repos/poudriere.conf
    pkg update
    
    # create build jail
    # poudriere jail -c -j <jail_name> -v <version>
    poudriere jail -c -j 11_1-RELEASE_amd64 -v 11.1-RELEASE -a amd64
    
    # creates a ports tree
    # poudriere ports -c
    poudriere ports -c [-p <ports_tree_name>]
    
    # list build jails
    poudriere jail -l
    
    # update build jail
    poudriere jail -u -j <jail_name>
    
    # list ports trees
    poudriere ports -l
    
    # update ports tree
    poudriere ports -u [-p <ports_tree_name>]
    
    # pruning no longer needed distfiles
    poudriere distclean [-p <ports_tree_name>] [-y]
    
    # check new or changed options
    poudriere options -j <jail_name> [-p <ports_tree_name>] -f /usr/local/etc/poudriere.d/portlist
    
    # check all options
    poudriere options -c -j <jail_name> [-p <ports_tree_name>] -f /usr/local/etc/poudriere.d/portlist
    
    # build ports
    poudriere bulk -j <jail_name> [-p <ports_tree_name>] -f /usr/local/etc/poudriere.d/portlist
    
    # Webserver interface and package repo
    server {
        listen 80 default;
        server_name server_domain_or_IP;
        root /usr/local/share/poudriere/html;
    
        location /data {
            alias /poudriere/data/logs/bulk;
            autoindex on;
        }
    
        location /packages {
            root /poudriere/data;
            autoindex on;
        }
    }
     
  7. Mardor

    Mardor Member

    Registriert seit:
    29 November 2007
    Beiträge:
    520
    Hallo Gadean,

    wie sieht es denn mit poudriere genau aus. Wie gut ist den poudriere mit dem Handling von Abhängigkeiten ?
    Die Benutzung von purem make meide ich aktuell, weil ich immer wieder von Problemen von Abhängigkeiten höre.

    Gruß Mardor
     
  8. gadean

    gadean Member

    Registriert seit:
    26 Oktober 2013
    Beiträge:
    177
    Ich versteh nicht welche Probleme du mit Abhänigkeiten hast, entweder der Port funktioniert oder nicht, da spielt es keine Rolle ob du synth, poudriere oder von Hand arbeitest und wenn der Port "funktioniert" aber du ihn nicht auf deinem System bauen kannst, liegt es doch an der Umgebung in der du ihn bauen willst.

    Der elementare Unterschied zwischen synth/poudiere und von Hand arbeiten (make) ist nur das du bei synth/poudiere eine saubere, absolut leere Umgebung hast in der die Pakete gebaut werden, alles andere ist doch "gleich"?

    Oder liege ich falsch? Kann auch sein, wie gesagt, ich beschäftige mich auch erst seit kurzem damit, hab zuvor die Ports immer von Hand gebaut und aktualisiert.
     
  9. Binfort

    Binfort Member

    Registriert seit:
    2 März 2006
    Beiträge:
    203
    Ort:
    HH
    Die angesprochene leere Umgebung gibt es imho nur bei poudriere.

    Synth nutzt die Umgebung des Hosts zum kompilieren, aber es installiert nichts was nicht benötigt wird. Ich versuche nach Möglichkeit so wenig wie möglich im Host zu installieren, somit ist die Umgebung recht "sauber".

    Poudriere dagegen baut in eigenen Jails, einfach gesagt machst du ein Profil Konfig A und eins Konfig B, poudriere baut dann in separaten Jails und stellt separate Repos bereit.
     
    gadean gefällt das.
  10. Mardor

    Mardor Member

    Registriert seit:
    29 November 2007
    Beiträge:
    520
    Vielen Dank für deinen Hinweis.
    Von der Vergangenheit weis ich, dass portmaster ja auch aus der Source kompiliert. Meine Meinung war, dass der Unterschied zwischen make und portmaster in der besseren Auflösung der Abhängigkeit liegt.

    Was wäre dann sonst der Unterschied ?

    Gruß Mardor
     
  11. Mardor

    Mardor Member

    Registriert seit:
    29 November 2007
    Beiträge:
    520
    Die Anleitung hatte ich auch gefunden. Gut zu wissen, dass das Signing weggelassen werden kann, das hat mich nämlich abgeschreckt.

    Gruß Mardor
     
  12. Binfort

    Binfort Member

    Registriert seit:
    2 März 2006
    Beiträge:
    203
    Ort:
    HH
    Make baut dir die Abhängigkeiten des einen Ports in dem es angeworfen wird automatisch mit. Wenn im späteren Verlauf des Builds eine Abhängigkeit Konfigurationsoptionen anbietet, bleibt der Build solange stehen bis diese beantwortet werden. Dies kann man umgehen indem im Port ein make config-recursive vor dem eigentlichen make kommt. Dennoch konnte es passieren dass der Build mittendrin stockte weil irgendeine kleine Fitzeloption abgefragt wurde...

    Portmaster erledigte dies eigentlich recht zuverlässig und automatisch vor dem Build. Zudem konnte portmaster alle Ports des Systems in einem Rutsch bearbeiten. Klar, es blieb mal stehen wenn irgendwo ein Paket/Port erst deinstalliert werden musste, um es dann zu aktualisieren... aber in den letzten Jahren habe ich das Tool ziemlich gerne benutzt.
     
  13. holgerw

    holgerw Well-Known Member

    Registriert seit:
    29 Februar 2016
    Beiträge:
    1.185
    Ort:
    Simtshausen - Hessen
    Hallo,

    ich bin zwar eher Amateur in Sachen poudriere, aber das baut mir ein komplettes Repo mit plasma5, da wird alles an notwendigen Abhängigkeiten mit gebaut.
     
  14. KobRheTilla

    KobRheTilla used register

    Registriert seit:
    20 Januar 2011
    Beiträge:
    1.184
    Solche Annahmen habe ich hier schon öfters gesehen, sie sind falsch.
    Portmaster/Portupgrade macht auch nix anderes als make aufzurufen, eben wie man es per Hand machen würde. Es gibt nur einen offiziellen Weg, einen Port zu bauen und installieren und der geht über make - alle anderen Tools sind Wrapper außen drum.

    Es ist also identisch, wenn ich etwas mit portmaster installiere oder einfach ins Portverzeichnis gehe und dort make install clean aufrufe.

    Rob
     
    gadean und ralli gefällt das.
  15. SolarCatcher

    SolarCatcher Active Member

    Registriert seit:
    24 August 2006
    Beiträge:
    713
    Doch, das sollte recht einfach zu bewerkstelligen sein. Du kannst in Synth nämlich verschiedene Profile anlegen. Du könntest Dir also zwei unterschiedliche Profile anlegen, mit mindestens unterschiedlichen "Packages directory" und "Port options directory". Gestartet wird standardsmäßig ein "default" Profile, das Du festlegen kannst. Weiter unten in der Man Page wird aber erklärt, wie über eine Umgebungsvariable schon vor dem Start von Synth das zu verwendende Profil festlegen kannst. Damit könntest Du in einem winzigen Skript für beide Jails unterschiedliche Repos mit unterschiedlichen Optionen bauen. Nicht ausprobiert, aber ich bin da sehr sicher, weil ich die unterschiedlichen Profile auch schon verwendet habe.
     
    Binfort und gadean gefällt das.
  16. ralli

    ralli Well-Known Member

    Registriert seit:
    1 Juni 2012
    Beiträge:
    1.771
    Bravo @KobRheTilla , endlich redet mal jemand Klartext. Manchmal habe ich den Eindruck, das einfache Dinge unötigerweise kompliziert werden, warum auch immer.
     
  17. SolarCatcher

    SolarCatcher Active Member

    Registriert seit:
    24 August 2006
    Beiträge:
    713
    Nur um sicher zu stellen, dass das hier keiner falsch versteht: Portmaster, Synth und Poudriere bieten z.T. eine ganze Menge zusätzlicher Features. Für das Bauen (inkl. dem Berücksichtigen aller Abhängigkeiten) mag das am Ende keinen Unterschied machen, aber es gibt schon gute Gründe, warum sich hier verschiedene Menschen recht viel Mühe damit gemacht haben, solche Tools zu entwickeln. Und warum so viele von uns diese und nicht einfach Make verwenden.
     
  18. ralli

    ralli Well-Known Member

    Registriert seit:
    1 Juni 2012
    Beiträge:
    1.771
    Das verstehe und respektiere ich. Ich will um Gottes willen keinen Flameware entfachen, sondern einfach nur verstehen. Sind diese zusätzlichen Optionen grundsätzlich wichtig für alles oder nur für wenige Spezialfälle? Ich frage deshalb, weil ich mich ja jetzt etwas tiefer in diese Materie einarbeiten will.
     
  19. zuglufttier

    zuglufttier Well-Known Member

    Registriert seit:
    2 November 2004
    Beiträge:
    1.653
    Ort:
    Ostfriesland
    Wenn du keine Optionen bei den Ports benötigst, warum nimmst du denn nicht gleich Pakete?
     
  20. Binfort

    Binfort Member

    Registriert seit:
    2 März 2006
    Beiträge:
    203
    Ort:
    HH
    Scheint als driften wir langsam ins OT...

    Zurück zum Thema, @SolarCatcher zeigt doch die Lösung:
    FreeBSD kommt hier primär auf Servern zum Einsatz, für mich ist das normal. Ein Host - mehrere Jails. Wenn zwischen den Jails die Konfig der Ports abweicht, ich aber auf kompilierte Ports statt binärer Pakete angewiesen bin, dann ist das für mich die Lösung - besser, die Alternative zu poudriere.

    Was sagt der TE?
     
  21. ralli

    ralli Well-Known Member

    Registriert seit:
    1 Juni 2012
    Beiträge:
    1.771
    Das mache ich schon lange. Äußerst selten benutze ich die Ports. Deshalb frage ich mich ja auch, ob sich dafür das Einarbeiten mit Poudriere oder synth lohnt. Ich höre jetzt aber auch auf zu fragen, sonst wird es wirklich zu sehr OT.