Release -> Stable Packages ...

Midian

Well-Known Member
Ich wollte auf meiner NAS Box eben ein Package installieren, und wurde mit folgendem begrüßt:

Code:
Error: Unable to get ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9.0-release/Latest/murmur.tbz: File unavailable (e.g., file not found, no access)
pkg_add: unable to fetch 'ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9.0-release/Latest/murmur.tbz' by URL

In der Zwischenzeit habe ich (Laie wie ich bin) rausgefunden, dass das wohl daran liegt, dass der Release-Zweig nur zum Release angelegt wurde (und damit wohl durch das 9.1 Release weggefallen ist), und nur der 9.0 Stable-Zweig weiterhin aktualisiert wird.
Ich habe daher:

Code:
export PACKAGESITE=ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9-stable/Latest/

Und kann nun wieder Packages installieren. Problem: Habe bswp. portupgrade installiert (war vorher nicht auf dem System), dies kann ich aber nicht ausführen:

Code:
~> pkg_add -r portupgrade
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9-stable/Latest/portupgrade.tbz... Done.
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9-stable/All/ruby-1.8.7.371,1.tbz... Done.

====
Note that some of the standard libraries are provided as separate
ports since they require extra dependencies:

	converters/ruby-iconv	iconv module

	databases/ruby-gdbm:	GDBM module

	x11-toolkits/ruby-tk:	Tcl/Tk modules
	japanese/ruby-tk:	Tcl/Tk modules for Japanized Tcl/Tk

	lang/ruby-mode.el:	Emacs lisp modules

Install them as occasion demands.
====

Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9-stable/All/db41-4.1.25_4.tbz... Done.
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9-stable/All/ruby18-bdb-0.6.6.tbz... Done.

------------------------------------------------------------------------------
      Fill ALT_PKGDEP section in pkgtools.conf file for portupgrade to be
      aware of alternative dependencies you use.
      E.g.
      ALT_PKGDEP = {
        # Use the -nox11 port when another port depends on category/portexample
        'category/portexample' => 'category/portexample-nox11',
      }

      Note also, portupgrade knows nothing about how to handle ports with
      different suffixes (E.g. -nox11). So you should explicitly define
      variables (E.g. WITHOUT_X11=yes) for the ports in /etc/make.conf or
      pkgtools.conf (MAKE_ARGS section) files.
------------------------------------------------------------------------------

~> portupgrade 
/usr/local/lib/libruby18.so.18: Undefined symbol "_ThreadRuneLocale"

Habe dann aus Verzweiflung (weil portupgrade ja nicht funkioniert) versucht, das perl Package per pkg_add zu aktualisieren:

Code:
~> pkg_add -rf perl  
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9-stable/Latest/perl.tbz... Done.
pkg_add: package 'perl-5.14.2_3' conflicts with perl-5.12.4_3
pkg_add: -f specified; proceeding anyway
Removing stale symlinks from /usr/bin...
    Removing /usr/bin/perl
    Removing /usr/bin/perl5
Done.
Creating various symlinks in /usr/bin...
    Symlinking /usr/local/bin/perl5.14.2 to /usr/bin/perl
    Symlinking /usr/local/bin/perl5.14.2 to /usr/bin/perl5
Done.
/usr/local/lib/perl5/5.14.2/mach/CORE/libperl.so: Undefined symbol "_ThreadRuneLocale"Cleaning up /etc/make.conf... Done.
Spamming /etc/make.conf... Done.

perl hat nun das gleiche undefined-reference Problem :rolleyes:

Da habe ich wohl ein kleines Unheil angerichtet. Wie mach ich das richtig, bzw. wie reparier ich die Situation? :confused:


Nebenbei noch eine Frage: Wieso "erkennen" weder pkg_info noch pkg_delete dass das perl Package installiert ist?

Code:
~> pkg_info | grep perl
p5-Error-0.17016    Perl module to provide Error/exception support for perl: Er
perl-5.12.4_3       Practical Extraction and Report Language
perl-5.14.2_3       Practical Extraction and Report Language
~> pkg_info perl       
pkg_info: can't find package 'perl' installed or in a file!
~> pkg_delete perl
pkg_delete: no such package 'perl' installed
 
Also, erstmal sollte man erklären was schief gelaufen ist: FreeBSD ist abwärtskompatibel, aber nicht aufwärtskompatibel. Das heißt, du kannst ältere Anwendungen und Pakete auf neueren Systemen ausführen, aber neuere Anwendungen und Pakete nicht auf älteren Systemen. Zumindest unter der Bedingung, dass du alle Abhängigkeiten erfüllt bekommst. Neuere Pakete auf älteren Systemen geht in Stable-Zweigen oft, aber ist eben nicht garantiert. Und bei dir hat es versagt. Es gab Änderungen zwischen 9.0-RELEASE und 9-STABLE die verhindern, dass dein 9.0-RELEASE die 9-STABLE Anwendungen ausführen kann.

Um aus dem Schlamassel wieder herauszukommen, hast du zwei Möglichkeiten:
1. Du kannst alle aus 9-STABLE gezogenen Pakete mit Portmaster aus deinen lokalen Ports neubauen. Damit passen sie wieder auf das System.
2. Du kannst auf 9.1 aktualisieren, für das es inwzsichen wieder Pakete gibt und die nehmen. Das ist schmerzlos und wird eher früher als später eh notwendig sein, denn 9.0 ist schon seit Beginn des Monats EOL.
 
Also, erstmal sollte man erklären was schief gelaufen ist: FreeBSD ist abwärtskompatibel, aber nicht aufwärtskompatibel. Das heißt, du kannst ältere Anwendungen und Pakete auf neueren Systemen ausführen, aber neuere Anwendungen und Pakete nicht auf älteren Systemen. Zumindest unter der Bedingung, dass du alle Abhängigkeiten erfüllt bekommst. Neuere Pakete auf älteren Systemen geht in Stable-Zweigen oft, aber ist eben nicht garantiert. Und bei dir hat es versagt. Es gab Änderungen zwischen 9.0-RELEASE und 9-STABLE die verhindern, dass dein 9.0-RELEASE die 9-STABLE Anwendungen ausführen kann.

Um aus dem Schlamassel wieder herauszukommen, hast du zwei Möglichkeiten:
1. Du kannst alle aus 9-STABLE gezogenen Pakete mit Portmaster aus deinen lokalen Ports neubauen. Damit passen sie wieder auf das System.
2. Du kannst auf 9.1 aktualisieren, für das es inwzsichen wieder Pakete gibt und die nehmen. Das ist schmerzlos und wird eher früher als später eh notwendig sein, denn 9.0 ist schon seit Beginn des Monats EOL.

Ah okay, das wusste ich nicht. Ich dachte 9.0 ist 9.0, und es sollte keine Probleme geben ...

Andere Frage: Auf welchem Zweig sollte man sich denn befinden, damit das nicht alle paar Monate wieder passiert? Bzw. wie ist da so der gängige Weg, mit neuen Releases, Updates usw.? Wann bspw. gibt es einen 9.1-STABLE Zweig?

Noch eine Frage: Wenn ich nun auf 9.1 aktualisiere (ich würde das machen wie hier beschrieben), muss ich vorher dann noch das perl und das portupgrade Paket reparieren, oder kann ich das so lassen?
 
Zurück
Oben