FreeBSD updaten

MateJunk

BSD Fan :-)
Hallo,

seit den letzten Monaten, habe ich mir mal das Wiki im Forum durchforstet/durchgelesen und habe es "lieb" gewonnen ;-).
Durch die Artikel im Wiki bzgl. FreeBSD und update ist mir einiges klarer geworden. Grosser Dank an die Autoren und der Kommunity :-).
Ich musste feststellen, das ich die FreeBSD Doku nicht richtig gelesen habe (wer lesen kann ist klar im Vorteil ;-)
Zitat:
Beachten Sie, dass dies immer noch ein Entwicklungszweig ist und daher zu jedem Zeitpunkt die Quellen von FreeBSD-STABLE verwendbar sein können oder nicht. FreeBSD-STABLE ist Teil des Entwicklungsprozesses und nicht für Endanwender gedacht.
Da ich Jahre lang immer RELENG_4 oder neuerdings RELENG_5 benutzt habe und dann immer nur ein portupgrade -a abgesetzt habe, ist mir schon klar, warum ich damals Wie haelt man FreeBSD "Sauber" ? auf einmal Probs bekommen habe :).
Jetzt bin ich natuerlich auf RELENG_5_4 umgestiegen und benutzt immer zuerst die PKGs (und wenns keine gibt dann die Ports - portupgrade -aP).

Trotzdem habe ich aber noch einpaar Fragen, die mir aus den Wiki Artikeln nicht klar geworden sind:

  • Nachdem was ich im Wiki alles gelesen habe, "verstehe" ich unter einem "sauberen" FreeBSD Update folgendes:
    Ist eine neues Release erschienen, sollte man in naechster Zeit von Release 5.x auf 5.y gehen.

    1. Es wird eine Liste der installierten PKGs mithilfe von pkg_cutleaves -l erstellt.
      Hmm, der output gibt aber die Versionsnummer mit, die portinstall nicht "verwenden" kann. Also wegschneiden ... (gibt ist da vielleicht doch noch eine Kommandozeilen Option die ich ueberlesen habe ?)

    • Danach alle PKGs deinstallieren pkg_deinstall --all und PKGs in /usr/ports/packages loeschen.

    • stable-supfile anpassen:
      *default release=cvs tag=RELENG_5_y
      (Es werden nur die src geupdatet: src-all)
      Danach ein cvsup -L 2 -g stable-supfile make buildworld etc.

    • Dann das Ports Verz. Aktualisieren:
      # portsnap fetch
      # portsnap update
      # cd /usr/ports
      # make fetchindex

    • PKGs mit hilfe von portinstall -P, einem kleinem csh script und der Liste die erstellt worden ist wieder installieren. Natuerlich habe ich die Enviroments PACKAGESITE und PKG_SITES gesetzt.
      Leider scheint portinstall keine Dependencys aufzuloesen, da er nur das PKG installiert, aber nicht die weiteren Pakete die benötigt werden :-(. Es hilft auch kein -R, oder habe ich was uebersehen ?

    • Zum Schluss noch ein pkgdb -F

    • Zwischen durch Aktualisiert man das Ports Verz. (portsnap) und setzt ein portupgrade -aP ab bzw. updatet/Patcht (Security und BugFixes only) das System, bis wieder ein neues Release erscheint und man die Prozedure von neuem Beginnt.

    Ist das "verfahren" fuer ein "Ultra-Stabiles" FreeBSD System Korrekt so ? Oder habe ich wieder etwas uebersehen ?
    Macht ihr das auch so ?



  • Im Artikel 9.1 Produktiver Home-Rechner steht:
    Installieren und aktualisieren Sie Ihre FreeBSD-Installation, falls möglich, innerhalb 14 Tagen nach dem Erscheinen einer neuen FreeBSD-(Release)-Version.
    Zur Zeit gibt es aber nur 5.4-RC1, das ist ja nicht "wirklich" ein "fertiges"-Release. Sprich, ich sollte dann nochmals alles wie in Punkt a. neu installieren, oder ?
Gruss
Joerg
 
Einige Punkte sind zu bemängeln:

1.)
Es wird eine Liste der installierten PKGs mithilfe von pkg_cutleaves -l erstellt. Hmm, der output gibt aber die Versionsnummer mit, die portinstall nicht "verwenden" kann. Also wegschneiden ... (gibt ist da vielleicht doch noch eine Kommandozeilen Option die ich ueberlesen habe ?)
Ja, die Versionsnummern müssen entfernt werden.

2.)
PKGs mit hilfe von portinstall -P, einem kleinem csh script und der Liste die erstellt worden ist wieder installieren. Natuerlich habe ich die Enviroments PACKAGESITE und PKG_SITES gesetzt.
Leider scheint portinstall keine Dependencys aufzuloesen, da er nur das PKG installiert, aber nicht die weiteren Pakete die benötigt werden :-(. Es hilft auch kein -R, oder habe ich was uebersehen ?
Packages installiert man einfach mit:

Code:
# pkg_add -r <Packagename>
dazu muss PACKAGESITE und PKG_SITES nicht angepasst werden.

3.)
Zum Schluss noch ein pkgdb -F
Die Reihenfolge ist falsch, korrekt ist:
Code:
# /usr/local/sbin/portsnap fetch
# /usr/local/sbin/portsnap update
# portsdb -u
# pkgdb -F
# more /usr/ports/UPDATING
# portupgrade ... oder portinstall ...
Die aktuelleste portsnap-Version aktualisiert die INDEX-Dateien selber, es ist also kein "make fetchindex" mehr notwendig!

4.)
Zur Zeit gibt es aber nur 5.4-RC1, das ist ja nicht "wirklich" ein "fertiges"-Release. Sprich, ich sollte dann nochmals alles wie in Punkt a. neu installieren, oder ?
RC steht für Release Candidate. 5.4-RC1 ist nur eine Testversion von 5.4-Release. Man sollte solange 5.3-Release verwenden, bis die endgültige 5.4-Release-Version erschienen ist.
 
Hallo,

AndreasMeyer schrieb:
2.)
Packages installiert man einfach mit:

Code:
# pkg_add -r <Packagename>
dazu muss PACKAGESITE und PKG_SITES nicht angepasst werden.

Es gibt aber leider zwei Probleme mit pkg_add:

1.)
pkg_add arbeitet nicht mit dem ports Verz. zusammen, also brauch es den genauen Dateinamen (ohne .tbz). Das ist natuerlich wieder etwas arbeit angesagt, wenn ich mir die genauen Dateinamen alle raussuchen muss :(.

2.)
Man kann keinen "Proxy" angeben. Leider kann ich in der Firma nur ueber ein http proxy raus :(. Zu haus gehts natuerlich :).

3.)
Die Reihenfolge ist falsch, korrekt ist:
Code:
# /usr/local/sbin/portsnap fetch
# /usr/local/sbin/portsnap update
# portsdb -u
# pkgdb -F
# more /usr/ports/UPDATING
# portupgrade ... oder portinstall ...
Die aktuelleste portsnap-Version aktualisiert die INDEX-Dateien selber, es ist also kein "make fetchindex" mehr notwendig!

Ah, habe ich mal wieder nicht richtig gelesen. Gut also kein make fetchindex, steht ja auch so im wiki. Danke fuer den Hinweis :).

4.) RC steht für Release Candidate. 5.4-RC1 ist nur eine Testversion von 5.4-Release. Man sollte solange 5.3-Release verwenden, bis die endgültige 5.4-Release-Version erschienen ist.

Okay, also besser erst auf das RELEASE warten und kein RC benutzen.

Dank dir fuer deine Tipps.

Gruss
Joerg
 
MateJunk schrieb:
Okay, also besser erst auf das RELEASE warten und kein RC benutzen.

Für ein stabiles System ist es besser beim aktuellen Release, in dem Falle 5.3, zu bleiben.

Für ein stabiles Release 5.4 ist es besser, wenn viele die RC's installieren, um schneller und frühzeitiger Ungereimtheiten und Bugs zu finden, was dann das bevorstehenden Release nur besser machen kann :D

Also kurz gesagt, auf der Workstation 5.3 und auf dem Rechner der Freundin 5.4 RC ;)
 
pkg_add arbeitet nicht mit dem ports Verz. zusammen, also brauch es den genauen Dateinamen (ohne .tbz). Das ist natuerlich wieder etwas arbeit angesagt, wenn ich mir die genauen Dateinamen alle raussuchen muss
Bitte lies die Anleitungen genau durch! Es steht unter:

http://wiki.bsdforen.de/index.php/FreeBSD_-_Ports_und_Programme_aktualisieren#Packages

wie Du den genauen Dateinamen herausfindest, Notfalls kannst Du unter:

ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.3-release/

nachsehen, was für Packages angeboten werden.

Man kann keinen "Proxy" angeben.
Doch! Siehe bitte:

http://www.freebsd.ch/doc/de_DE.ISO8859-1/books/handbook/packages-using.html
http://www.freebsd.org/cgi/man.cgi?query=fetch&sektion=3
 
Kann mir bitte Einer erklären, wieso mann beim Aktualisieren des Systems die Packete löschen
muss? Ich selber bin schrittweise ohne Probleme von 4.8 bis 4.11 gegangen ohne einmal die Packete deinstalliert zu haben, erst beim Umstieg auf den 5.er Zweig kam die Neuinstallation, wie vom Handbuch empfohlen. Ich installiere allerdings alles über Ports, die Packete werden
via Portupgrade auf Stand gehalten.
 
Kann mir bitte Einer erklären, wieso mann beim Aktualisieren des Systems die Packete löschen
muss?
Es ist nicht erforderlich, die Pakete zu löschen.

Jedoch ist es bei Release-Wechseln der einfachste, sicherste und oft der schnellste Weg, die installierten Programme zu deinstallieren und die aktuellen Programmversion (möglichst) über die Packages zu installieren. Mit der Deinstallation der Pakete wird verhindert, dass Abhängigkeits-Probleme auftreten können, wie sie zum Beispiel unter:

http://www.bsdforen.de/showthread.php?t=6538

geschildert werden.

Ich persönlich verwende die "Stable-Pakete" wie unter:
http://wiki.bsdforen.de/index.php/F...dingt_die_aktuelle_Programmversion_haben...29 (Kapitel "Ehemaliger Gentoo-Linux-Benutzer")
aufgezeigt. Ich aktualisiere alle 2 Monate die Programme.
 
an MateJunk:
1. Ist das "verfahren" fuer ein "Ultra-Stabiles" FreeBSD System Korrekt so ? Oder habe ich wieder etwas uebersehen ?
Macht ihr das auch so ?
du hast den mergemaster vergessen.

Meine Vorgehensweise ist die folgende:

System akrualisieren:
- Tag im Supfile anpassen, dann cvsup -g -L 2 supfile/system.sup
- System in Single-User-Modus bringen: shutdown -h
- /usr/obj entfernen:
cd /usr/obj
chflags -R noschg *
rm -rf *
- make builworld
- make buildkernel
- make installkernel
- reboot in den Single-User-Modus
- make installwolrd
- Config-Dateien mit Mergemaster aktualisieren

Ports Aktualisieren ( auch zwischen den Releases ):
- portstree aktualisieren mit cvsup -g -L 2 supfile/ports.sup
- portsdb -uU
- script /bla/bla/install_logs/portupgrade.log
- portupgrade -arR ; exit

dann stelle ich ein Schälchen unter den Prozessor für den Fall, dass er zu tropfen anfängt , und gehe schlafen. Am nächsten Morgen ist alles fertig. Falls etwas schief gelaufen ist, schaue ich in dem portupgrade.log nach. Wie gesagt, hat immer ohne Probleme funktioniert. Manchmal passiert es, dass das Eine oder Andere Packet nicht kompiliert, dan wartet man halt eine Woche und probiert es nochmal. Wichtig ist, dass man die Packete mit deren Abhängigkeiten aktualisiert ( -r und -R Schalter beim portupgrade) und die UPDATING liest bevor man mit der Aktualisierung beginnt.

PS. Das Zitieren muss ich noch üben 8-)
 
Zuletzt bearbeitet:
Hallo Andreas,

AndreasMeyer schrieb:

Arg ... ja ich sags ja wer lesen kann ist klar im Vorteil. Sorry.


Stimmt :-). Es funzt ! Das ist gut, dann werd ich antsatt portinstall pkg_add -r benutzen und wenn das dann fehlschlaegt, dann erst ein portinstall ... Dann brauch ich auch vorher kein wget installieren :-)

Hatte damals nur unter
# man fetch
nachgeschaut. Da steht nix mit HTTP_PROXY drin.
Da es auch bei eine Test Download ueber den Proxy fehl schlug (wahrscheinlich hatte mal der Proxy wieder irgendwelche Probs in der Firma ...), bin ich davon ausgegangen das es nicht geht. Ich frag mich nur warum in man fetch nicht die HTTP_PROXY angaben unter der Section ENVIRONMENT stehen. Auf man 3 fetch bin ich natuerlich nicht gekommen.

Dank Dir fuer die Tips !

Waere das nicht mal ein Hinweis unter: FreeBSD - Ports und Programme aktualisieren / 2.2 Firewall wert ? Oder eine eigenes Kapitel: Proxy ? So ein Hinweis habe ich im wiki vermisst.
 
Hallo wowka,

Kann mir bitte Einer erklären, wieso mann beim Aktualisieren des Systems die Packete löschen
muss? Ich selber bin schrittweise ohne Probleme von 4.8 bis 4.11 gegangen ohne einmal die Packete deinstalliert zu haben

Naja, wie ich schon am Anfang erklaert habe, habe ich das frueher genauso gemacht bis zu jenem Tag, siehe Wie haelt man FreeBSD "Sauber" ? nach.
Ich habe das Problem nie loesen koenne (kurze Zeit spaeter war meine Platte auch defekt). Meine Vermutung ist, das bei den Release wechseln sich auch zum Beispiel die libc oder theads libs "in der Strukur" aendern und das so etwas portupgrade nicht mitbekommt. Das heisst das die Programme die die libc oder threads verwenden nicht mehr "sauber" laufen.

wowka schrieb:
an MateJunk:

du hast den mergemaster vergessen.

Jaein. Ich habe geschrieben: "make buildworld etc. ..." das etc. sollte diesen update Vorgang beschreiben, so wie es auch im Wiki steht. War halt etwas schreibfaul :)

Meine Vorgehensweise ist die folgende:

System akrualisieren:
- Tag im Supfile anpassen, dann cvsup -g -L 2 supfile/system.sup
- System in Single-User-Modus bringen: shutdown -h
- /usr/obj entfernen:
cd /usr/obj
chflags -R noschg *
rm -rf *
Naja, in den Singel-User-Modus bin ich nie gegangen. Das brauch man ja nur wenn auf einige files das flag schg gesetzt ist, dann sollte man aber auch /bin /sbin bzw. da wo man es noch gesetzt hatt loeschen, sonst schlaegt ein make installworld fehl, oder ?
- make builworld
- make buildkernel
- make installkernel
- reboot in den Single-User-Modus
- make installwolrd
- Config-Dateien mit Mergemaster aktualisieren

Ports Aktualisieren ( auch zwischen den Releases ):
- portstree aktualisieren mit cvsup -g -L 2 supfile/ports.sup
- portsdb -uU
- script /bla/bla/install_logs/portupgrade.log
- portupgrade -arR ; exit

Genau so habe ich das auch immer gemacht, bis zu meinem Problem.
Ausser das ich damals immer als TAG 4-STABLE benutzt habe und kein rR bei portupgrade ...
 
Zurück
Oben