Ich raffs net: ports und z.B neuen Firefox installieren

borsti007

Well-Known Member
Nach einiger Zeit möchte ich wieder näher mit BSD beschäftigen. Irgendwie habe ich ein Verständnisproblem in Bezug auf die Ports.

Aktuell habe ich diese Version installiert:

FreeBSD freebsd. 9.0-RELEASE-p3 FreeBSD 9.0-RELEASE-p3 #0: Tue Jun 12 02:52:29 UTC 2012 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64


Installiert habe ich momentan Firefox 9.0.1 und würde gerne eine neuere Version vom FF installieren. "FreeBSD Ports Search" sagt mir, wenn ich nach "Firefox" "http://www.freebsd.org/cgi/ports.cgi?query=Firefox&stype=all" suche, dass es eine Version firefox-i18n-10.0.10 oder firefox-i18n-16.0.2 gibt.

Den Portstree hatte ich mit "portsnap fetch update" aktualisiert. Mache ich nun aber ein "make install clean" in "/usr/ports/www/firefox-i18n", rattert er eine ganze
Litternei runter, was er alles added und bringt fast am Ende ein "Patching for firefox-i18n-9.0.1", was letztendlich mit Error Code 1 beendet wird. Letztendlich bleibt es bei der 901.

Kann mir einer sagen was ich verkehrt mache? Wie komme ich nun eine neue Softwareversion auf den Rechner?

"pkg_add -r firefox-i18n-16.0.2 " wird z.B. nix gefunden.

Die Sache mit dem Firefox war jetzt nur ein Beispiel, weil ich da gerade dran hänge.
 
Also pkg_* wird endlich sterben. Es ist eine sehr unkluge Idee pkg_* mit dem Portstree auf dem selben System um die Wette shared Libs zerlegen zu lassen. Entscheide dich: Ports oder pkg_*.
 
Das habe ich schon mitbekommen, dass ein Mix aus Portstree und pkg problematisch werden kann. Ändert aber nichts am eigentlichen Problem: aktuelleren Firefox installieren
 
Schonmal versucht, zuerst den momentanen FF zu deinstallieren ("make deinstall") und dann den neu kompilierten neu zu installieren ("make reinstall")?
 
Eine mögliche Lösung wäre:
- Firefox deinstallieren (z.B. mit pkg_delete Paketname, den Paketname kannst Du z.B. herausfinden mit pkg_info | grep firefox )
- cd /usr/ports/www/firefox && make install clean (das kann dauern ...)

Desweiteren ist es hilfreich:
- pkg-descr Datei lesen, existiert für jeden Port, da steht z.B., dass firefox-i18n "Language packs for Firefox" sind
- Handbuch lesen (z.B. http://www.freebsd.org/doc/de/books/handbook/ports-using.html#ports-skeleton )
- Port-/Paketmanager wie portmaster erleichtern den Umgang mit Ports (z.B. automatische Suche nach updatebaren Ports, Abfrage aller Kompilieroptionen vor Kompiliervorgängen, ...)
 
Es ist eine sehr unkluge Idee pkg_* mit dem Portstree auf dem selben System um die Wette shared Libs zerlegen zu lassen. Entscheide dich: Ports oder pkg_*.

Dazu habe ich eine Frage. Man liest immer wieder, dass man Xorg mit den Paketen installieren kann und danach über die Ports dann immer aktuell halten kann. Das widerspricht doch deiner Aussage oder?
 
Das kann man schon machen, vor allem am Anfang ist das eher unproblematisch aber später kann es passieren, dass die Ports überall neuere Versionen verlangen und dann passt das alles nicht mehr zusammen.

Was gut funktioniert ist zunächst alles mögliche über Packages zu installieren, um dann später die Ports zu verwenden.
 
Das kann man schon machen, vor allem am Anfang ist das eher unproblematisch aber später kann es passieren, dass die Ports überall neuere Versionen verlangen und dann passt das alles nicht mehr zusammen.
Wenn die Ports neuere Versionen verlangen, werden diese doch automatisch mit kompiliert und installiert. Nur umgekehrt gibt es Probleme: Ein Port einer Shared library wurde schon geupdatet, dann will man z. B. Firefox als Paket installieren, aber weil die Pakete der aktuellen Release schon leicht veraltet sind, verläßt sich Firefox auf eine ältere Version der Shared lib - und bumm!
Das ist aber auch kein Beinbruch, das habe ich ggf. schon von Hand hingebogen, z. B. mittels /etc/libmap.conf.
 
da stellt sich mir die Frage, woher der FF in der Version 901 denn kommt.
Vermutlich war er auf deinem Installationsmedium? und du hattest den von dort installiert?
Dann gilt sicher, dass nicht nur der FF inzwischen veraltet ist, sondern sehr viel mehr auf deinem System upgedatet werden sollte, was dann auch den Bedarf erklären könnte, den du da erlebt hast.
Mach dich darauf gefasst, dass es in den wenigsten Fällen gelingt einfach den Update eines einzelnen Programmes zu versuchen. Es dürfte eher notwendig sein, sehr viele Abhängigkeiten ebenfalls zu erneuern und das kann ein ganzer Rattenschwanz werden.

Deshalb würde ich eine komplette Aktualisierung des Systems vorschlagen. Also, alles, was du bisher drauf hast, einmal komplett durch erneuern. portmaster kann dabei auch helfen, pkg_upgrade kann das auch und mit pkgng kenne ich mich noch nicht aus.
Wenn du Ports nimmst, wirst du früher oder später alles aus den Ports brauchen, weil die Versionen auseinander driften. Versuch es deshalb lieber zunächst mit Paketen alleine klar zu kommen.
 
pit234a: Du willst ihn leiden sehen oder?

Nimm dir portmaster und etwas Zeit um dein System stets aktuell zu halten. Portmaster ist ein wunderbares Tool solange man nur wenige Systeme aktuell halten muss. Sobald es mehr werden muss etwas anderes her. Für FreeBSD 8.3 und 9.1+ ist meine Empfehlung dafür poudriere und pkgng.
 
Welche Parameter verwendet ihr für "portmaster" für die Updates?
Ich kontrolliere es mit folgendem:
Code:
portmaster -L --index-only | awk '/ [Nn]ew / {print substr($0,9,9999)}'
 
Bei mir läuft das immer so:

Portstree aktualisieren.
Code:
portsnap fetch update

Nachsehen welche ports aktualisiert werden können z.B. mit:
Code:
pkg_version -v | grep 'port has'

/usr/ports/UPDATING lesen, ob ein entsprechender Eintrag vorhanden ist und diesen auch befolgen !!!
Code:
$PAGER /usr/ports/UPDATING

Ports bauen:
Code:
portmaster -B -D -a

Hoffen, das alles klappt:)
 
Ich mache es genau so wie sterum. Nur das ich die Pakete die zu aktualisieren sind etwas anders abfrage:
Code:
pkg_version -vIL=
 
In der portmaster Manpage steht doch, wie man sich am Besten die veralteten Ports ausgibt, einfach C&P:

Code:
 portmaster -L | egrep -B1 '(ew|ort) version|Aborting|installed|dependencies|IGNORE|marked|Reason:|MOVED|deleted|exist|update' | grep -v '^--'
 
Schonmal versucht, zuerst den momentanen FF zu deinstallieren ("make deinstall") und dann den neu kompilierten neu zu installieren ("make reinstall")?

Noch nicht. Werde ich morgen mal probieren. War zwei Tage nicht da. Danke.
 
pit234a: Du willst ihn leiden sehen oder?

Nimm dir portmaster und etwas Zeit um dein System stets aktuell zu halten. Portmaster ist ein wunderbares Tool solange man nur wenige Systeme aktuell halten muss. Sobald es mehr werden muss etwas anderes her. Für FreeBSD 8.3 und 9.1+ ist meine Empfehlung dafür poudriere und pkgng.

Aus Fehlern lernt man. :) Ich bin noch am Fummeln und Probieren, daher ist nichts von Wert auf dem Rechner.
 
Back
Top