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

Synth - Erfahrungen und Beispiele

Dieses Thema im Forum "FreeBSD - Anwendungen und Ports" wurde erstellt von Vril, 6 Juni 2017.

  1. Vril

    Vril Active Member

    Registriert seit:
    4 August 2016
    Beiträge:
    325
    da ueber Synth als Alternative zu Poudriere noch nicht allzuviel hier zu lesen ist,
    mache ich mal nen Thread auf - in dem Erfahrungen, Beispiele etc. sich wiederfinden sollten.

    In einem anderen Thread schrieb @Yamagi:
    deshalb hab ich das "mal wie folgt ausprobiert:
    Code:
    pkg install synth
    pkg install ccache
    in die /.cshrc:
    Code:
    # set ccache varibles
    setenv PATH /usr/local/libexec/ccache:$PATH
    setenv CCACHE_PATH /usr/bin:/usr/local/bin
    setenv CCACHE_DIR /var/cache/ccache
    setenv CCACHE_LOGFILE /var/log/ccache.log
    in die /etc/make.conf:
    Code:
    WITH_CCACHE_BUILD=yes
    ccache initialisieren und defaults ansehen:
    Code:
    ccache -s
    ccache anpassen:
    Code:
    ccache --max-size=8G
    ccache --set-config=cache_dir=/var/cache/ccache
    
    kann man aber auch in die /root/.ccache/ccache.conf direkt reinschreiben:
    max_size = 8G
    cache_dir = /var/cache/ccache

    so .. nun zu synth:
    Code:
    synth status
    configurieren: hier muss nur der ccache-Pfad (Option H) gesetzt werden:
    Code:
    synth configure
    
    nochmal anschauen:
    Code:
    synth status
    nun kann es losgehen:
    Code:
    synth upgrade-system
    das laeuft dann auf Konsole/Terminal im curses-mode, kann aber auch unter
    file:///var/log/synth/Report/index.html
    im Browser betrachtet werden.

    mit ccache -s kann man dann auch mal schauen, wie effizient, welche Auslastungen und Trefferraten
    der Cache hat.

    einzelne Ports installieren:
    Code:
    synth just-build editors/vim editors/libreoffice
    oder halt ne Liste:
    Code:
    synth just-build /tmp/ports.liste
    wobei die Liste dann wohl so aussehen sollte:

    editors/vim
    .
    .
    .
    editors/libreoffice

    synth baut mit den default-options und man erhaelt also das gleiche Ergebnis, wie beim
    Holen der Binaries mittels pkg install

    will man bestimmt Optionen aendern, dann vor synth am Beispiel vim:
    Code:
    make -C /usr/ports/editors/vim config
    und danach natuerlich von synth den Port bauen lassen:
    Code:
    synth just-build editors/vim 
    Abschliessend ist vielleicht ein:
    Code:
    synth purge-distfiles
    sinnvoll

    ........................................................................................................................

    Bitte um Tipps, Ergaenzungen, Hinweise auf Fehler und Unfug :-) .. Danke

    Nachtrag: ich lese grade, dass synth derzeit auf 12 current nicht geht!! - also ich habe 11.0
     
  2. Esjott

    Esjott Member

    Registriert seit:
    5 April 2013
    Beiträge:
    127
    Ort:
    Rendsburger Ecke
    Gleich mal in die bookmarks geschoben, danke für die Kurzfassung!:cool: Wollte mir Synth sowieso mal ansehen...
     
  3. SolarCatcher

    SolarCatcher Active Member

    Registriert seit:
    24 August 2006
    Beiträge:
    713
    @Vril Gute Kurzübersicht. Danke!

    Synth ist für den Start deutlich einfacher als Poudriere. Eigentlich kann man schon ohne irgendwelche zusätzlichen Schritte sofort loslegen.

    Für mich das absolut beste Feature von Synth ist diese Konfigurations-Option
    Code:
      [N] Fetch prebuilt packages  true
    
    Das entspricht ungefähr dem, was Portmaster mit der "-P" Option machte: Es versucht Abhängigkeiten erstmal als Package aus dem Repo zu ziehen und nur wenn das nicht existiert, baut es die Abhängigkeiten auch (wie Synth damit umgeht, dass ein Paket aus dem Repo exisitiert aber möglicherweise nicht die notwendigen Build-Optionen hat, weiß ich allerdings nicht...). Gerade reine Build-Dependencies kann man sich so schön sparen. Das ist etwas, was mich echt wahnsinnig macht bei Poudriere. Da muss man erstmal die ganze Build-Chain bauen, um etwas machen zu können. Und wenn man eine Java-Applikation benötigt, muss man auch OpenJDK oder ähnliches bauen...

    Ich habe Synth eine Weile verwendet, um die 2 bis 3 Ports, die ich selber baue, zu erzeugen (graphics/mozjpeg mit Prefix nach /usr/local/mozjpeg, x11/nvidia-driver ohne Linux,...). Mittlerweile habe ich aber Poudriere am Laufen und wenn es einmal steht, ist das schon flexibler, mächtiger - z.B. musste ich letztens auf meinem 11.0-RELEASE Laptop Pakete für eine 10.3-RELEASE Jail bauen. Sowas geht meines Wissens mit Synth nicht. Auch das Verwalten/Updaten verschiedener Portstrees ist bei Poudriere komfortabel gelöst.
     
  4. Vril

    Vril Active Member

    Registriert seit:
    4 August 2016
    Beiträge:
    325
    an anderer Stelle http://www.bsdforen.de/threads/libreoffice-5-3-3_1.33547/
    hatte @foxit freundlicherweise dargestellt,
    wie man ganz simpel alle installierten Ports "cleart" und neu aufbaut:
    Code:
    pkg query -e "%a == 0" "%n" > /root/pkgliste.txt
    pkg delete -a
    rm -rf /usr/local/*
    pkg-static install pkg
    pkg update -f
    xargs pkg install < /root/pkgliste.txt
    das geht natuerlich mit synth noch einfacher:

    Zuerst die Liste erstellen, hier muss man halt bei pkg query das Format der evaluation condition aendern
    damit der origin in die Liste kommt ( editors/vim statt vim ) - also "n" gegen "o" tauschen:
    Code:
    pkg query -e "%a == 0" "%o" > /root/pkgliste.txt
    dann Pakete und Inhalt von /usr/local/* loeschen:
    Code:
    pkg delete -a
    rm -rf /usr/local/*
    .
    nun wie schon beschrieben: synth und ( gegebenenfalls ccache ) installieren und konfigurieren
    .
    .
    und nun alles neu mit:

    Code:
    synth just-build /root/pkgliste.txt
    ( vor just-build Aufruf noch default-optionen mit make -C anpassen, falls Bedarf ist )
     
    foxit gefällt das.
  5. holgerw

    holgerw Well-Known Member

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

    danke für den Thread zu synth, eine kleine Ergänzung zum Code von @foxit:
    Code:
    pkg delete -a
    Das würde ich noch um ein -f ergänzen
    Code:
    pkg delete -a -f
    sonst bricht pkg irgendwann, wenn es sich selbst am Wickel hat, ab, und dass kann auch - so meine Erfahrung - mittendrin passieren und es bleiben noch zahlreiche nicht entfernte Pakete übrig.
     
  6. foxit

    foxit Moderator Mitarbeiter

    Registriert seit:
    4 Juli 2012
    Beiträge:
    1.433
    Ort:
    /home
    Wenn alle Pakete gelöscht sind und /usr/local/ leer ist, könnte man auch noch /var/db/pkg/ aufräumen.
     
  7. joneum

    joneum FreeBSD Committer

    Registriert seit:
    30 September 2004
    Beiträge:
    779
    Ort:
    Essen
    Soweit ich weiß hat Marino, der Maintainer von Synth, FreeBSD verlassen, daher wird das wohl nicht weiter entwickelt.
     
  8. foxit

    foxit Moderator Mitarbeiter

    Registriert seit:
    4 Juli 2012
    Beiträge:
    1.433
    Ort:
    /home
    Der Port hat einen anderen Maintainer da sollte es keine Probleme geben. Weiter verläuft die Entwicklung ja unabhängig auf github.com [1]. Wo genau siehst du da Probleme?

    [1] https://github.com/jrmarino/synth
     
  9. joneum

    joneum FreeBSD Committer

    Registriert seit:
    30 September 2004
    Beiträge:
    779
    Ort:
    Essen
    Ich meine, dass ich entweder im FreeBSD Forum oder auf einer der ML gelesen habe, dass er, nachdem ihm sein Commit entzogen wurde, die Entwicklung auch für FreeBSD einstellen will.
     
  10. Elwood

    Elwood Naiver Mutmaßlicher Mitarbeiter

    Registriert seit:
    23 Mai 2004
    Beiträge:
    1.933
    Ort:
    Berlin
    Wäre doof, kaum kommt mir synth in den Fokus, dank dieses Threads, schon ist's ein Wackelkandidat?
     
  11. lme

    lme FreeBSD Committer

    Registriert seit:
    6 Mai 2003
    Beiträge:
    2.632
    Synth wird schon noch weiterentwickelt und neue Versionen kommen auch noch recht zügig über den neuen Maintainer in die Ports.

    Nur auf HEAD ist es derzeit nicht lauffähig, weil eine Abhängigkeit kaputt ist.
     
  12. klimaschreck

    klimaschreck Member

    Registriert seit:
    15 Dezember 2007
    Beiträge:
    230
    Eine kleine Frage noch zu synth:
    Ich habe bei der Konfiguration angegeben, dass synth auch Pakete aus den offiziellen Repositories nutzen soll. Ich hatte gehofft, kaum noch Pakete selber bauen zu müssen. Leider ist es nicht so. Jede Woche stellt synth fest, dass ca. 400 Pakete (darunter auch chrome) neu gebaut werden nüssen. Optionen bei den Ports habe ich so gut wie nicht gesetzt. Ausnahme sind firefox und audacity (sonst gibt es keine Einträge in /var/db/ports).

    Gibt es Tipps, wie man die Anzahl der offiziellen Pakete erhöhen kann?
     
  13. bastorran

    bastorran New Member

    Registriert seit:
    25 August 2012
    Beiträge:
    26
    Hallo klimaschreck,

    zu diesem Problem steht etwas im Readme auf der Github-Seite. Ich benutze synth selber nicht, aber es scheint, dass Du die Ports auf den Quarterly-Branch setzen musst (falls Du diesen verwendest). Falls ich es richtig verstanden habe, dann verwendet synth einfach die Ports unter /usr/ports.

    Viele Grüße
    bastorran
     
  14. Vril

    Vril Active Member

    Registriert seit:
    4 August 2016
    Beiträge:
    325
    ich hol das mal wieder nach vorne --- da sich ja jetzt mehrere Leute mit synth befassen,
    kann man hier vielleicht ergänzen oder auch korrigieren
     
  15. SolarCatcher

    SolarCatcher Active Member

    Registriert seit:
    24 August 2006
    Beiträge:
    713
    Danke @Vril ! Das erinnert mich daran, dass ich Synth mal wieder ausprobieren muss... bei nächster Gelegenheit. Mittlerweile bin ich nämlich runter auf 1 selbstgebauten Port (x11/nvidia-driver ohne Linux). Als im Oktober das Quarterly Repo alles neu machte, musste ich auch den nvidia-driver neu bauen. Poudriere hat fast 5 Stunden gewerkelt für diesen einen Popel-Port, weil es natürlich llvm & Co neu bauen muss. Das wäre mit Synth und den richtigen Optionen (s.o.) nicht passiert. Da hätte das vermutlich keine 1/4h gedauert.

    Allerdings: Wenn die pkg-Flavors in 11 Einzug halten, gibt es vielleicht nicht einmal mehr einen Grund für diesen einen Selbstbau-Port. Denn ich denke mal, dass es auch andere gibt, die den nvidia-driver haben wollen, ohne gleich ein ganzes Linux-Basissystem installieren zu müssen.
     
  16. ralli

    ralli Well-Known Member

    Registriert seit:
    1 Juni 2012
    Beiträge:
    1.771
    Danke Walter für die gute Einführung, werde mich dann wohl dem mainstream beugen und mich auch mit Synth beschäftigen.
     
  17. lme

    lme FreeBSD Committer

    Registriert seit:
    6 Mai 2003
    Beiträge:
    2.632
    Poudriere ist Mainstream. ;)
     
  18. ralli

    ralli Well-Known Member

    Registriert seit:
    1 Juni 2012
    Beiträge:
    1.771
    Aha, danke natürlich. Dann komm ich daran wohl auch nicht vorbei. Mal sehen, ob sich der Aufwand lohnt, denn ich baue nur äußerst selten ein Paket und nur dann, wenn es sich nicht vermeiden läßt.;)
     
  19. holgerw

    holgerw Well-Known Member

    Registriert seit:
    29 Februar 2016
    Beiträge:
    1.185
    Ort:
    Simtshausen - Hessen
    Bei Deiner Rechenpower - das schreit doch nach Repobau mit poudriere :D

    Sorry für das OffTopic
     
  20. ralli

    ralli Well-Known Member

    Registriert seit:
    1 Juni 2012
    Beiträge:
    1.771
    Bei so viel Überzeugungsarbeit bröckelt meine Verweigerungshaltung. Kurze Frage dennoch, ist das deutsche Handbuch in Sachen Poudriere aktuell? Nicht das ich nach kurzer Zeit wieder in eine Falle tappe, das wäre sehr frustrierend.
     
  21. Vril

    Vril Active Member

    Registriert seit:
    4 August 2016
    Beiträge:
    325
    so .. jetzt ist synth 2.0 auch schon veraltet -
    wir sind jetzt bei 2.01
     
  22. mr44er

    mr44er Trödel-Troll

    Registriert seit:
    22 September 2013
    Beiträge:
    226
    Ort:
    Reichelsheim
    Die ersten Tappser gingen schief. Hab deine Anleitung (Vril) nachgetackert. prebuilt packages angeschaltet.

    Doch dann:

    Code:
    synth upgrade-system
    Builder mounts detected; attempting to remove them automatically ...
    Dismounting successful!
    Querying system about current package installations.
    Stand by, comparing installed packages against the ports tree.
    
    devel/scons scan aborted because dependency could not be located.
    py27-setuptools>0:devel/py-setuptools@py27 (required dependency of devel/scons) does not exist.
    Scan of devel/yajl failed, it will not be considered.
    Encountered issue with mail/thunderbird or its dependencies
      => py27-sqlite3>0:databases/py-sqlite3@py27 (required dependency of mail/thunderbird) does not exist.
    Scan of mail/thunderbird failed, it will not be considered.
    Encountered issue with devel/py-gobject or its dependencies
      => /usr/local/libdata/pkgconfig/pycairo.pc:graphics/py-cairo@py27 (required dependency of devel/py-gobject) does not exist.
    Scan of devel/py-gobject failed, it will not be considered.
    
    devel/py-enum34 scan aborted because dependency could not be located.
    py27-setuptools>0:devel/py-setuptools@py27 (required dependency of devel/py-enum34) does not exist.
    Scan of x11-drivers/xf86-video-scfb failed, it will not be considered.
    
    graphics/py-pillow scan aborted because dependency could not be located.
    py27-tkinter>0:x11-toolkits/py-tkinter@py27 (required dependency of graphics/py-pillow) does not exist.
    Scan of security/keepass failed, it will not be considered.
    
    textproc/gnome-doc-utils scan aborted because dependency could not be located.
    /usr/local/lib/python2.7/site-packages/libxml2mod.so:textproc/py-libxml2@py27 (required dependency of textproc/gnome-doc-utils) does not exist.
    Scan of sysutils/gnome-mount failed, it will not be considered.
    Encountered issue with databases/py-sqlite3 or its dependencies
      => py27-setuptools>0:devel/py-setuptools@py27 (required dependency of databases/py-sqlite3) does not exist.
    Scan of databases/py-sqlite3 failed, it will not be considered.
    
    devel/meson scan aborted because dependency could not be located.
    py36-setuptools>0:devel/py-setuptools@py36 (required dependency of devel/meson) does not exist.
    Scan of sysutils/mate-power-manager failed, it will not be considered.
    Encountered issue with devel/py-gobject3 or its dependencies
      => /usr/local/libdata/pkgconfig/pycairo.pc:graphics/py-cairo@py27 (required dependency of devel/py-gobject3) does not exist.
    Scan of devel/py-gobject3 failed, it will not be considered.
    
    textproc/itstool scan aborted because dependency could not be located.
    /usr/local/lib/python2.7/site-packages/libxml2.py:textproc/py-libxml2@py27 (required dependency of textproc/itstool) does not exist.
    Scan of graphics/atril failed, it will not be considered.
    Encountered issue with graphics/py-imagesize or its dependencies
      => py27-setuptools>0:devel/py-setuptools@py27 (required dependency of graphics/py-imagesize) does not exist.
    Scan of graphics/py-imagesize failed, it will not be considered.
    
    hier hab ich mal abgeschnitten, es geht so weiter.....
    
    Edith sagt:
    Bis dann am Ende das kommt:
    
    Stand by, updating external repository catalogs ... done.
    Scanning existing packages.
    Queue integrity lost!  (Synth must exit)
    
    
    Bin gestern nämlich auch in die Falle getappt mit portmaster....bei python irgendwas.
     
    Zuletzt bearbeitet: 6 Dezember 2017 um 11:41 Uhr
  23. mordin

    mordin New Member

    Registriert seit:
    31 August 2017
    Beiträge:
    25
    Wir sind jetzt bei 2.02 (ist aber noch nicht im Ports Tree). AFAICT sollte das auch @mr44er's Problem lösen.
     
  24. CrimsonKing

    CrimsonKing Systemzerstörer

    Registriert seit:
    9 März 2012
    Beiträge:
    1.524
    Dass Synth Probleme hat, "Flavors" zu erkennen (s.o.), ist aber dann doch erstaunlich. Ich dachte, darum ging es bei der Version 2.00.
     
  25. mr44er

    mr44er Trödel-Troll

    Registriert seit:
    22 September 2013
    Beiträge:
    226
    Ort:
    Reichelsheim
    War auch mein Gedanke. Ich vermute Henne-Ei-Problem.

    synth just-build devel/py-setuptools databases/sqlite3 ließ sich durchnudeln, brachte mich aber nicht wirklich weiter....das Errorlog wird nur kleiner. :)