Updaten von FreeBSD funktioniert nicht richtig

MHage

Member
Hallo Zusammen,


ich würde gerne FreeBSD 5.3 als Server einsetzen. Um herauszufinden, wo für mich einige Probleme auftauchen könnten, habe ich zunächst auf einem anderen Rechner eine Desktop Installation durchgeführt. Es hat mich Tage gekostet, alles so zu konfigurieren wie ich es mir vorstellte. Das grosse "Update" Fragezeichen bleibt allerdings bestehen.

Hier in diesen Forum gibt es beinahe hunderte Anleitungen und Beiträge zu Thema Aktualisieren der Ports und neu bauen des Systems. Genau dabei habe ich mir nun schon 4 mal mein System unbrauchbar gemacht. Das updaten der Ports stellt kein Problem dar, jedoch das aktualisieren einzelner Anwendungen.

Wie gehe ich z.B. vor, wenn ich ein aktuelles OpenOffice nutzen möchte? Ports aktualisieren und aus den Ports installieren....

Das kann gut gehen, muss aber nicht. Bei Firefox z.B. wurden einige abhängigkeiten aktualisiert (pango, atk usw), und hinterher liefen einige Anwendungen nicht mehr.

Daraufhin habe ich mit portupgrade -a alles neu übersetzen lassen. Hat sehr lange gedauert, und das System läuft trotzdem nicht mehr....

So etwas kann ich mir auf einem Server nicht erlauben. Auf einem Server möchte ich nicht das System neu bauen müssen nur um an einige Sicherheitsupdates zu kommen. Dabei das Risiko des System Stillstandes einzugehen.

Ich möchte hier nicht einzelne Lösungen zu oben wage beschriebenen Problemen, sondern vielmehr einen Weg das System ohne Risiko zu aktualisieren. Geht wirklich kein Weg an den Ports vorbei? Bei welcher Methode besteht das geringste Risiko?


Gruß
MHage
 
Beim lesen habe ich mich gefragt, ob du mit "make" oder "portinstall" arbeitest. "portinstall -R firefox" updatet dir auch die abhängigkeiten und außerdem aktualisiert es dir danach die pkgdb. "portupgrade -a" ist irgendwie nicht sooo super sinnvoll,wenn man nicht weiß das es sich auch lohnt.

Hoffe das hilft dir.
 
jup, dacht ich mir, besser ist:
portinstall -v <portname>
-v gibt dir lediglich eine sehr ausführliche Ausgabe
<portname> den findest immer über den portstree raus oder über http://www.freebsd.org/ports

portupgrade <portname>
geht natürlich auch...

so sollten keine problem beim updaten oder installieren eines ports auftauchen.

vie spass noch
 
Ich bin selbst halblaie, also lege nicht jedes wort auf die Goldwage...

Wie gehe ich z.B. vor, wenn ich ein aktuelles OpenOffice nutzen möchte? Ports aktualisieren und aus den Ports installieren....
Kannst du, allerdings würde ich bei OOo eher Binäre Pakete nehmen, weil das kompilieren aus den Ports doch sehr lange dauert. Ansonsten aber prinzipiell:

1. Du benötigst einen aktuellen portstree, den du am besten mit cvsup installierst / aktualisiert.
2. Du solltest idealerweise den port sysutils/portupgrade installiert haben
3. Als root (oder su) portupgrade -N $NAME_DES_PORTS eingeben

Das kann gut gehen, muss aber nicht. Bei Firefox z.B. wurden einige abhängigkeiten aktualisiert (pango, atk usw), und hinterher liefen einige Anwendungen nicht mehr.
Mmmh, seltsam. ein vergleichbares Problem habe ich noch nicht gehabt... Bist du nach obiger Methode vorgegangen?
Was passierte, wenn du ein portupgrade -f $KAPUTTER_PORT eingegeben hast. Ging es dannach?

Daraufhin habe ich mit portupgrade -a alles neu übersetzen lassen. Hat sehr lange gedauert, und das System läuft trotzdem nicht mehr....
DAS ist wirklich seltsam....

Hattest du vorher das System oder nur die Ports aktualisiert.
Nach einem make world hatte ich auch schon Probleme.
Und du verwendest FreeBSD 5.3?

Geht wirklich kein Weg an den Ports vorbei? Bei welcher Methode besteht das geringste Risiko?
Naja, eigentlich halt bei Ports. Weil FreeBSD im wesentlichen auf die Installation über Ports ausgelegt ist.
 
Vielen Dank erstmal für die Antworten. Um sicher zu gehen, das ich mich bei weiteren Versuchen nicht mit Altlasten aus bisherigem Unwissen plage, werde ich das System nochmals neu aufsetzen und nach euren Beschreibungen vorgehen.

Ich benutzte übrigens folgendes für cvsup:


*default host=cvsup6.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELENG_5_3
*default delete use-rel-suffix

*default compress
src-all
ports-all tag=.
doc-all tag=.



Hoffe, das nicht schon hierbei ein Fehler entstand.


Gruß
MHage
 
Ich weiß nicht, ob das stört. Bei mir ist
*default base=/usr
und es funktioniert. Allerding sollte es auch nicht stören, wenn cvsup seine Daten in /var/db speichert.
 
Das hier ist mein Ausschnitt der ports-supfile Datei:

/pfad/to/ports-supfile
Code:
*default host=cvsup2.de.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=.
*default delete use-rel-suffix

*default compress
ports-all

Bei den Ports brauchst du kein tag für RELENG_5_3 angeben, da es ja nur einen
aktuellsten Stand gibt. Die Releng Angabe ist nur für das standard-supfile interessant,
um dein Basissystem zu pflegen.

Gruss
Tigion

[Edit] MHage, ich sehe gerade du nimmst ja für die Aktualisierung der Ports und der
Sourcen die selbe Datei, dann ist mein Beitrag ja fast hinfällig ;)
 
Zuletzt bearbeitet:
MHage schrieb:
Ich benutzte übrigens folgendes für cvsup:


*default host=cvsup6.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELENG_5_3
*default delete use-rel-suffix

*default compress
src-all
ports-all tag=.
doc-all tag=.

Hmm...es geht nicht klar hervor, ob das EXAKT dein cvsup-ports-supfile ist. In jedem Fall würde ich dir empfehlen den Bereich für die Sourcen wegzulassen. Mit diesem Supfile zerstörst du dein System.

Die Ports müssen immer mit "*default release=cvs tag=." erneuert werden. NUR dann hast du das aktuellste und auch NUR dann haut es mit deinen Abhängigkeiten hin.
Benutzt du aber den cvs tag=. auch für die Sources so haust du dir beim nächsten Systemupdate CURRENT auf den Rechner, also den Development-Zweig der extrem instabil ist. Hier MUSS "*default release=cvs tag=RELENG_5_3" stehen. Also mach dir 2 supfiles. Eines für die Ports und eines für die Sources.

Noch ein Hinweis am Rand:
Benutz doch am besten einen cvsup-Server in deiner Nähe, denn das könnte nicht nur die Geschwindigkeit erhöhen, sondern entlastet auch die Server. Die deutschen cvsup-Server findest du hier:
http://www.freebsd.org/doc/en_US.IS...ANDBOOK-MIRRORS-CHAPTER-SGML-MIRRORS-DE-CVSUP
 
Hi,

ich habe den Rat von AndreasMeyer befolgt und die Seite des Wiki's fast auswendig gelernt. :)

Nachdem ich das System komplett neu aufgesetzt hatte, habe ich mich erneut an die Installation von Firefox gemacht, die ja zuvor gescheitert war. Ich habe dabei portinstall benutzt, mir die man-page angesehen und ein wenig mit den Optionen rumprobiert. Einzig mit 'portinstall -R' hat es schliesslich funktioniert. Hat zwar eine kleine Ewigkeit gedauert, aber nun läuft es.

Nur habe ich bisher den Unterschied zwischen den Optionen -r und -R noch nicht verstanden und woher weiß ich, wann ich was benutzen muss. -N war auch noch mit dabei, hat aber ebenfalls nicht funktioniert, weil er diverse Abhängigkeiten nicht aktualisieren wollte.

Es ist also wie so oft.... Es geht und keiner weiß warum :ugly:

Vielleicht kann mir noch jemand Licht ins Dunkel bringen?!


Vielen Dank schon mal

MHage


P.S. Kann man eigentlich automatisieren, das er nur die Ausgabe von 'portaudit -Fda' aktualisiert?
 
-N Option
------------
Portupgrade und portinstall sind das "gleiche" Programm. Ein "portupgrade -N <Programm" entspricht einem "portinstall <Programm>"

-r und R-Option
------------------
Betrachten wir das ganze auf meinem System. Ich habe alle Programme mit # pkg_add -r installiert. Jetzt möchte ich firefox aus den Ports installieren.

Mit # portinstall firefox funktioniert das nicht, da portinstall eine neuere atk-Version installieren möchte, aber nicht kann, da bereits eine alte Version für gimp installiert wurde:

Code:
--->  Upgrading 'firefox-0.9.3_1' to 'firefox-1.0_6,1' (www/firefox)
--->  Building '/usr/ports/www/firefox'
===>  Found saved configuration for firefox-1.0_6,1
===>  Extracting for firefox-1.0_6,1
=> Checksum OK for firefox-1.0-source.tar.bz2.
===>   firefox-1.0_6,1 depends on file: /usr/local/bin/perl5.8.5 - found

Extracting source (this takes a while) ...

===>  Patching for firefox-1.0_6,1
===>   firefox-1.0_6,1 depends on file: /usr/local/bin/perl5.8.5 - found
===>  Applying FreeBSD patches for firefox-1.0_6,1
===>   firefox-1.0_6,1 depends on executable: zip - found
===>   firefox-1.0_6,1 depends on executable: gmake - found
===>   firefox-1.0_6,1 depends on file: /usr/local/bin/perl5.8.5 - found
===>   firefox-1.0_6,1 depends on executable: pkg-config - found
===>   firefox-1.0_6,1 depends on file: /usr/local/bin/intltool-extract - found
===>   firefox-1.0_6,1 depends on shared library: jpeg.9 - found
===>   firefox-1.0_6,1 depends on shared library: png.5 - found
===>   firefox-1.0_6,1 depends on shared library: mng.1 - found
===>   firefox-1.0_6,1 depends on shared library: Xft.2 - found
===>   firefox-1.0_6,1 depends on shared library: iconv.3 - found
===>   firefox-1.0_6,1 depends on shared library: glib-2.0.400 - found
===>   firefox-1.0_6,1 depends on shared library: atk-1.0.800 - not found
===>    Verifying install for atk-1.0.800 in /usr/ports/accessibility/atk
===>  Extracting for atk-1.8.0 
:
===>  Installing for atk-1.8.0
===>   atk-1.8.0 depends on executable: pkg-config - found
===>   Generating temporary packing list
===>  Checking if accessibility/atk already installed
===>   An older version of accessibility/atk is already installed (atk-1.6.1)
      You may wish to ``make deinstall'' and install this port again
      by ``make reinstall'' to upgrade it properly.
      If you really wish to overwrite the old port of accessibility/atk
      without deleting it first, set the variable "FORCE_PKG_REGISTER"
      in your environment or the "make install" command line.
*** Error code 1

Stop in /usr/ports/accessibility/atk.
*** Error code 1

Stop in /usr/ports/www/firefox.
Mit # portinstall -R firefox oder # portupgrade -RN firefox werden alle von firefox benötigten Programme vor der Installation von firefox aktualisiert, also auch atk!

Interessant ist auch die portupgrade-Option -n, mit welcher ein portupgrade-Testlauf durchgeführt werden kann. Man sieht bei # portinstall -Rrn firefox, dass zwar atk aktualisiert wird, aber nicht gimp und die anderen Programme, welche atk ebenfalls benötigen. Dies hat fatale Folgen: Wird gimp nicht auch aktualisiert, so lässt sich gimp nicht mehr starten, da es die alte Bibliotheksversion von atk sucht!

Dagegen hilft nur ein: # portupgrade -rR atk Die -r - Option veranlasst portupgrade, alle Programme zu aktualisieren, welche ohne atk nicht laufen können. Welche dies sind, verrät: # portupgrade -rn atk

Fazit
-------
Die Verwendung von portupgrade benötigt viel Fingerspitzengefühl und Erfahrung. Wenn man schon portupgrade einsetzen muss, so empfiehlt sich die komplette Programm-Aktualisierung mit:
# portupgrade -a
 
Zuletzt bearbeitet:
Zurück
Oben