System Updaten, aber wie?

berndix

Member
Hallo Forum,

ich bin recht neu hier, deshalb erst einmal ein allgemeines Grüazi. :D
Ich habe mir vor ca. einer Woche das 6.1 Release installiert und wollte auch gleich in die vollen, nämlich eine Jail einrichten. Das klappte auch alles recht gut, so dass ich von FreeBSD recht begeistert bin. Überzeugt hat es mich in einigen Punkten schon lange... ;)

Aber um mal auf den Punkt zu kommen: Ich habe schon im FreeBSD-Handbuch und in der Wiki einiges zu Updates durchgelesen, aber wie gehe ich denn da am geschicktesten vor? Vielleicht sollte ich noch erwähnen, dass ich gerne einen Server Zuhause betreiben möchte, der soll allerdings so rock-solid, wie möglich sein, also dass man diesen auch in einem produktivem Umfeld laufen lassen kann. Was mache ich, nachdem die Installation erfolgreich verlaufen ist?
cvsup? portsupdate? pkg_add aus dem Stable-Zweig? Bin aufgrund der vielen Mechanismen wirklich überfordert. :zitter:

Grüße
Bernd
 
Hallo,

durch Suche in diesem Forum wirst Du sicherlich einiges zu diesem Thema finden,
auch im wiki steht einiges darüber.

ich würde Dir allerdings empfehlen, die entsprechenden Kapitel im Handbuch zu lesen, und bei konkreten Problemen nochmal nachfragen.
(Ich benutze sysupdate aus den ports, das den Vorgang automatisiert.)
 
Ich würde dir freebsd-update aus den Ports vorschlagen, wenn du denn den GENERIC-Kernel benutzt. In meinen Augen eine sehr saubere und schnelle Methode. Näheres dazu im wiki, glaube ich, und natürlich in der entsprechenden man-page.
Bei den Ports kann es immer mal wieder vorkommen, dass etwas nicht kompiliert, aus welchen Gründen auch immer. Ich weiß ja nicht, was du alles benutzen willst aber wenn du dir nicht viel Arbeit machen willst, nimm halt einfach die Packages, da diese relativ aktuell sind und zudem können sich keine Fehler beim Kompilieren einschleichen. Aber nicht jede Software ist als Package erhältlich.
Am allersichersten ist natürlich der Weg über die Ports, da du dann deine Software komplett an dein System anpassen kannst und eventuelle Sicherheitslücken damit umgehst. Aber näheres dazu im Handbuch oder wiki.

Ich selber nehme immer die Ports, hab aber auch nur ein Desktop-System am Laufen und keine wichtigen Daten.
 
Danke erstmal für die Antworten. Ich suche eigentlich nach einer einfachen und sicheren Methode, aktuelle System-Updates durch zu führen, sprich das Stopfen von Sicherheitslöchern (und nur das - keine zwanghafte Aktualisierung auf neuere Versionen). Wie ich ja geschrieben habe ist es kein Desktop-System, sondern ein Server, auf dem mal ein NFS und Samba, sowie Apache und Postfix in einer Jail laufen sollen. Deshalb dachte ich, dass ich wenigstens diese Dienste und den Kernel (natürlich) möglichst "up2date" halten sollte - nicht dass noch ein Schlimmer Finger einbricht, weil eine Lücke 3 Monate bekannt ist und ich diese noch nicht geschlossen habe. ;)

Ich komme aus der Linux-Szene, ich bin häufige Updates gewohnt (v.a. welche die nach hinten los gehen :grumble:) Sprich nach einer Installation von debian oder ubuntu (was ich hauptsächlich noch nutze), mache ich zuerst immer ein apt-get dist-upgrade, aber vielleicht muss ich da einfach umdenken und wieder Vertrauen finden, dass SW, die 3 Monate alt ist dennoch keine Lücken aufweist (oder sie noch nicht gefunden sind ;) ).
Gruß
Bernd
 
Hier hast du aber ja die Trennung vom Base-System und den Ports. Das Base-System hälst du zum Beispiel mit freebsd-update auf dem aktuellsten Stand. Da werden nur Sicherheitslöcher gestopft. Guck dir das Programm einfach mal an, ich denke, das willst du haben. Diese Variante ist extrem einfach und dazu ziemlich sicher, wenn du dem Ersteller des Programms vertraust ;)
Und die Ports oder Packages kannst du dann nach Belieben aktualisieren. Portsnap und portupgrade sind die Stichworte für die Ports. Die Updates laufen natürlich auf ähnliche Art und Weise wie unter Linux ab. Lies dir einfach die entsprechenden Kapitel im Handbuch oder die Artikel im wiki durch und du weißt dann so ziemlich genau, was nötig ist.
 
Hier hast du aber ja die Trennung vom Base-System und den Ports. Das Base-System hälst du zum Beispiel mit freebsd-update auf dem aktuellsten Stand.
--> *riesen Licht aufgeh*

Falls das im Handbuch drin steht, muss ich es überlesen haben. Danke. :)
 
Hallo,

erstmal willkommen im Forum!
Aus den Posts ging es schon hervor, aber hier mal als kleine Checkliste
1. Base-System updaten
Hier ist alles rund um das Betriebssystem zu finden. Update kannst Du per cvsup Mechanismus machen. Dieser gleicht Deine lokalen Sourcen mit dem des cvs-Server ab. Anschließend kannst Du per make buildworld und make buildkernel das System kompilieren. Dies ist im Handbuch auf www.freebsd.org im deutschen Teil sehr gut beschrieben. Wichtig: Halte die Schritte so ein wie es da steht.

2. Upgrade der Ports
Hier drunter fallen die Programme, die man sich mal eben so schnell installiert, seien es Windowmanager (KDE,GNOME) oder Netzwerkutilities oder aber auch Programmiertools. Es gibt verschiedene Möglichkeiten diese zu updaten, um Dein System sicher zu halten solltest Du also auch hier tätig werden und die aktuellen Ports installieren. Erstmal musst/solltest Du Deine lokale Portsdatenbank (zu finden unter /usr/ports updaten. Es gibt verschiedene Möglichkeiten, cvsup, portsnap etc. Mein Favorit ist portsnap -> portsnap -fetch und portsnap -extract und der portstree (Sourcen) ist aktualisiert. Anschließend musst Du natürlich die bereits installierten Programme updaten. Dies macht portupgrade ganz gut. Ich benutze es immer mit: portupgrade -arRPM BATCH=yes
Gucke aber auf jeden Fall vorher in die /usr/ports/UPDATING ob es bestimmte Dinge zu beachten gibt. Das Handbuch beschreibt die Schritte auch noch ausführlicher als ich es jetzt kann. Wollte Dir nur einen groben Leitfaden geben.

Viele Grüße,
Durandal
 
Ich würde dir freebsd-update aus den Ports vorschlagen, wenn du denn den GENERIC-Kernel benutzt. In meinen Augen eine sehr saubere und schnelle Methode.
Nur als Anmerkung: freebsd-update ist ab 6.2 Teil der Base.
 
Hallo,

ich habe gestern mal versucht, xorg und gnome2 via ftp, besser via pgk_add -r zu installieren. Der Server wird ja via PACKAGESITE angepasst (wie im wiki beschrieben). Ich musste dabei folgendes - für mich verhehrendes - feststellen: Während z.B. ftp://ftp2.freebsd.org/pub/FreeBSD/ports/i386/packages-stable/www/ keine Version von Firefox 1.5 existiert, gibts es wohl eine bei ftp://ftp2.de.freebsd.org/pub/FreeBSD/ports/i386/packages-stable/www/. Auch im Latest-Verzeichnis gibt es Unterschiede bezüglich des Datums.

Hat man also je nach FTP-Server Glück oder Pech? Die Gnome-Version 2.12 von der CD läuft gut, die 2.14er vom ftp2.de... hingegen nicht ganz. Auch FF 1.5.0.7 statet nicht - die Fehlermeldung habe ich leider nicht mehr im Kopf, es war irgendeine Lib, die er nicht fand.

Grüße
Bernd
 
Zuletzt bearbeitet:
zum libproblem:
schau mal was
pkg_info -W *libname*
sagt und diesen port kannst du mal mit
portupgrade -f *portname*
neu installieren, wenn das nicht hilft wird dreckig :D
in diesem sinne nochmal danke an yamagi(wars glaub ich), der mir diesen tollen tipp gegeben hatte. obwohl ich ihn schonmal kannte, hab ich daran nie gedacht. was lernen wir daraus? öfters mal was vergessen und schon kann man sich wieder über neu gelernte sachen freuen :D
 
Im Wiki wird aber ein ganz anderer Server empfohlen! Und diese Empfehlung gilt auch für Personen aus Deutschland!!

Schön und im Handbuch stehen die Dinger dennoch drin. Sorry. Außerdem dachte ich mir, warum den Schweizern die Bandbreite in die Tiefe reisen, wenn ein Mirror um die Ecke steht. Und was das mit den Personen aus Dt. angeht, weiß ich nu wirklich nicht, was das soll?!
Ferner heißt es im Handbuch http://www.freebsd.org/doc/de_DE.ISO8859-1/books/handbook/mirrors-ftp.html
Länder-Spiegel stellen die neusten Versionen für die beliebtesten Architekturen bereit, sie stellen aber unter Umständen nicht das komplette FreeBSD-Archiv bereit. Auf alle Server kann mit anonymous FTP zugegriffen werden, einige Server bieten auch andere Zugriffsmethoden an. Die zur Verfügung stehenden Zugriffsmethoden sind bei jedem Server in Klammern angegeben.

Jetzt würde ich davon ausgehen, dass nur Current, statt Stable existiert, ist aber leider nicht der Fall, oder?! packages-6-stable existiert. Ferner gehe ich als Newbe davon aus, dass
a) die Autoren des Handbuchs wissen was sie schreiben und
b) ein Spiegel ein Spiegel ist. :confused:

@d4mi4n:
Danke für den Tipp! Hat funktioniert. :)

Gruß
Bernd
 
Zuletzt bearbeitet:
Hallo!

Ich fahre mit folgender Vorgehensweise seit ich FreeBSD nutze (so ab 4.9 rum), weitgehend schmerzfrei:

Basis System mit csup (früher cvsup) aktualisieren, ports mit portsnap (seit 6.1 - früher ebenfalls mit cvsup). Beim Basissystem bleibe ich immer am aktuellsten RELENG-Zweig, derzeit also immer noch RELENG_6_1.

Meine cvsup-Datei dafür sieht so aus:

Code:
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELENG_6_1
*default delete use-rel-suffix
*default compress
src-all

In /etc/make sind einige Schalter gesetzt, die das Arbeiten mit csup erleichtern:

Code:
# options for c(v)sup
SUP_UPDATE=yes
SUP=/usr/local/bin/csup
SUPFLAGS=-g -L 1
SUPHOST=cvsup2.at.freebsd.org
SUPFILE=/root/cvsup/freebsd-6.1.supfile
DOCSUPFILE=/root/cvsup/doc.supfile

Wenn jetzt eine Lücke behoben wird:

Code:
cd /usr/src
make cleanworld
make update
make buildworld
make buildkernel KERNCONF=whatever
make installkernel KERNCONF=whatever
make installworld
mergemaster -i
shutdown -r now

...und das Basissystem ist wieder auf dem aktuellen Stand. Den reboot kann man sich auch sparen, wenn sich nicht gerade der Kernel geändert hat, man muß halt betroffene Dienste neu starten.

Bei einem Update des release tags muß man übrigens die checkouts-Datei kopieren/umbenennen. Wenn man also von tag=RELENG_6_1 auf RELENG_6_2 aktualisiert, muß man vor dem Aufruf von csup bzw. make update noch mit cp -p checkouts.cvs\:RELENG_6_1 checkouts.cvs\:RELENG_6_2 die checkouts-Datei kopieren (siehe dazu auch im Usenet)

Die Ports werden auch periodisch aktualisiert, damit verteilt sich der Aufwand ein wenig. Und dank portaudit ist man auch zeitnah informiert, wenn ein Port gerade von einer bekannten Lücke betroffen ist.

Das ist mein Weg. Mir ist klar, dass man auch andere Wege gehen kann und dass jeder Weg seine Vor- aber auch Nachteile hat (mein Weg hat den Nachteil, dass man alles selbst kompiliert und auf schwächerer Hardware kann das durchaus lange dauern).

Ciao.
Markus Mann
];-)
 
Basis System mit csup (früher cvsup) aktualisieren, ports mit portsnap (seit 6.1 - früher ebenfalls mit cvsup). Beim Basissystem bleibe ich immer am aktuellsten RELENG-Zweig, derzeit also immer noch RELENG_6_1.

Hey, von csup hab ich ja noch garnichts mitbekommen. Gut, dass Du das erwähnt hast; ich machs nämlich genauso wie Du (aber auch die Ports mit c(v)sup), hab aber nicht gewusst, dass wir csup im Basissystem haben.

Das hab ich wohl verpennt...
 
Hey, von csup hab ich ja noch garnichts mitbekommen. Gut, dass Du das erwähnt hast; ich machs nämlich genauso wie Du (aber auch die Ports mit c(v)sup), hab aber nicht gewusst, dass wir csup im Basissystem haben.

Das hab ich wohl verpennt...
Ich glaube du hast mich mistverstanden (oder ich jetzt dich). csup hat es bis 6.1 leider nicht ins Basissystem geschafft, aber man kann es verwenden um das Basissystem damit aktuell zu halten (und natürlich auch weiterhin die Ports, wenn man möchte). Für die ports verwende ich seit FreeBSD 6.1 eigentlich nur mehr portsnap.

In RELENG_6 ist csup jedenfalls schon enthalten, daher wird es wohl mit 6.2 ausgeliefert werden. Da muß ich zusehen, dass ich dann die meisten Server auf 6.2 updaten kann - wieder ein Stückchen mehr Eleganz bei der Serverwartung.

Ciao.
Markus Mann
];-)
 
Zurück
Oben