# Update eines sehr alten Systems

## klausjulius

hallo zusammen.

Ich möchte ein stabil laufendes Gentoosystem auf einem Root Server updaten.

Seit 2009 wurde das System nicht mehr upgedatet.

Das System fungiert mit  Postfix-Courier-Mysql als Mailserver und Apache als Webserver.

Nach langem googeln bleiben immer noch ein paar Fragezeichen.

Ich frage mich ob das überhaupt reibungslos geht. Hat das von euch schon mal jemand gemacht?

Wenn ja, mit welchen Erfahrungen? Gibt es dafür ein gutes Howto? Ich hab keins gefunden.

Wie gehe ich dabei am sinvollsten vor ?

Wäre schön von euch zu hören

bis dann

Klausjulius

----------

## boospy

Tjo, ein hartes Unterfangen... 

Die Frage die du dir stellen musst ist natürlich, wie lange der Server nicht erreichbar sein darf. Denn er wird ganz sicher nicht erreichbar sein. 

Wir haben vor ein paar Monaten ein "grafischens" Serversystem mit Gnome2 upgedatet. es lief ca. 2 Jahre. War natürlich viel Zeugs dabei, und es ging natürlich auch nicht alles auf einmal. Im Endeffekt musste Gnome entfernt werden. Gnome updaten ist auch voll kaka. KDE wäre sehr einfach auch nach der langen Zeit, weil immer alle Pakete mit der gleichen Version mitgehen. 

Nun gut. Also so fern der Server nicht grafisch arbeitet, ist es auf jeden Fall möglich, und die wirst es auch durchbekommen. Ich würde mir nach dem sync auf jeden Fall mal einen genauen Updateplan machen, was, und vor allem was wann upgedatet werden soll. Wenn möglich würde ich da python und perl wohl ganz zum Schluss machen. Einzelne essenzielle Dienste zuerst. Danach mal @system... usw. 

lg

boospy

----------

## Tinitus

 *boospy wrote:*   

> Tjo, ein hartes Unterfangen... 
> 
> Die Frage die du dir stellen musst ist natürlich, wie lange der Server nicht erreichbar sein darf. Denn er wird ganz sicher nicht erreichbar sein. 
> 
> Wir haben vor ein paar Monaten ein "grafischens" Serversystem mit Gnome2 upgedatet. es lief ca. 2 Jahre. War natürlich viel Zeugs dabei, und es ging natürlich auch nicht alles auf einmal. Im Endeffekt musste Gnome entfernt werden. Gnome updaten ist auch voll kaka. KDE wäre sehr einfach auch nach der langen Zeit, weil immer alle Pakete mit der gleichen Version mitgehen. 
> ...

 

Zieh Dir doch ein komplettes Backup. Packe es auf eine VM. Zeichne alle Updatevorgänge auf. (z.B Bashhistory) .Teste das System. Entweder spiele das aktualisierte System wieder zurück. Oder nur die erstellten Binärpakete. Oder starte das Update auf dem Rootserversystem noch einmal. 

Ich hoffe der Server "steht" nicht im Internet  :Wink: 

----------

## klausjulius

erstmal vielen Dank für die Antworten.

Ich habe jetzt das ganze System in einer Virtualbox installiert und zum laufen gebracht.

nach einem emerge -uD system und einem emerge -uD world und anschließendem revdep-rebuild habe ich zumindest

ein Update auf eine Version vom Anfang 2010 hinbekommen.

Jetzt frage ich mich, ob es irgendwo ein Archiv für alte Portagetrees und alte Distfiles gibt.

So könnte ich schrittweise das ganze auf den neuesten Stand bringen.

Kennt jemand ein solches Archiv?

danke für eure Hilfe

bis dann

Klausjulius

----------

## Josef.95

 *klausjulius wrote:*   

> Ich habe jetzt das ganze System in einer Virtualbox installiert und zum laufen gebracht. 

  Prima, das heißt du kannst nun gefahrlos versuchen ein Update in in der VM durchzuführen?

Magst du von diesem System mal den aktuellen Stand, sprich, die "emerge --info" posten?!

----------

## blice

Seit 2009 hat sich im tree und dem ganzem system verdammt viel getan, auch viele dienste und tools haben sich geändert.

D.h. es werden etliche Stolperfallen aufkommen, eine reelle gefahr den Server unbrauchbar zumachen.

Die idee mit der virtualbox ist gut  :Wink: 

ich würde mir aber trotzdem überlegen, ob es nicht effektiver ist,  Backups von den daten zu ziehen (passwörter, user, und den /var ordner) und einfach neu aufzusetzen. 

Allein die kompiliererei bis man von 2009 auf stand 2012 ist ..

----------

## klausjulius

 *Josef.95 wrote:*   

>  *klausjulius wrote:*   Ich habe jetzt das ganze System in einer Virtualbox installiert und zum laufen gebracht.   Prima, das heißt du kannst nun gefahrlos versuchen ein Update in in der VM durchzuführen?
> 
> Magst du von diesem System mal den aktuellen Stand, sprich, die "emerge --info" posten?!

 

Hallo Josef.95,

danke für deine Antwort. Unten ist meine aktuelle emerge --info.

Ich hab auch einen Portage gefunden mit dem ich weitermachen kann.

Momentanes Problem ist, das alle binutils-2.21.1.tar.bz2 mit dem Fehler "Filesize does not match recorded size"

abgelehnt werden. Kann man das Tar File nicht selbst entpacken?

Ich hatte weiter vor alle Distfiles und Portage Trees zu packen und auf den zu updatenden Rechner zu schieben, um 

dann mich von Stufe zu Stufe zu hangeln.

Bis auf das Problem mit binutils sieht es momentan ganz gut aus ????!!!??????  :Wink: 

bis dann

Klausjulius

```

Portage 2.1.10.11 (default/linux/amd64/10.0, gcc-4.3.4, glibc-2.10.1-r1, 2.6.27-gentoo-r8 x86_64)

=================================================================

System uname: Linux-2.6.27-gentoo-r8-x86_64-Intel-R-_Core-TM-_i7_CPU_920_@_2.67GHz-with-gentoo-2.0.3

Timestamp of tree: Tue, 30 Aug 2011 00:45:01 +0000

ccache version 2.4 [enabled]

app-shells/bash:          4.1_p9

dev-lang/python:          2.4.4-r13, 2.5.2-r7, 2.6.4-r1, 2.7.1-r1, 3.1.3-r1

dev-util/ccache:          2.4-r7

dev-util/pkgconfig:       0.23

sys-apps/baselayout:      2.0.3

sys-apps/openrc:          0.8.3-r1

sys-apps/sandbox:         2.4

sys-devel/autoconf:       2.68

sys-devel/automake:       1.7.9-r1, 1.10.3, 1.11.1

sys-devel/binutils:       2.18-r3

sys-devel/gcc:            4.1.2, 4.3.4

sys-devel/gcc-config:     1.4.1-r1

sys-devel/libtool:        2.2.6b

sys-devel/make:           3.81

sys-kernel/linux-headers: 2.6.36.1 (virtual/os-headers)

sys-libs/glibc:           2.10.1-r1

Repositories: gentoo

ACCEPT_KEYWORDS="amd64"

ACCEPT_LICENSE="* -@EULA"

CBUILD="x86_64-pc-linux-gnu"

CFLAGS="-march=k8 -O2 -pipe"

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"

CXXFLAGS="-march=k8 -O2 -pipe"

DISTDIR="/usr/portage/distfiles"

FEATURES="assume-digests binpkg-logs ccache distlocks ebuild-locks fixlafiles fixpackages news parallel-fetch sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"

FFLAGS=""

GENTOO_MIRRORS="http://mirror.lug.udel.edu/pub/gentoo/  http://gentoo.webm.ru/  ftp://212.86.229.22/pub/gentoo/  http://de-mirror.org/gentoo/ https://www.bknaus.de/packages/i686/  http://gomel.soft.telecom.by:8080/admin/gentoo/  http://21cma.bao.ac.cn/gentoo/ http://www.las.ic.unicamp.br/pub/librix/repository/amd64/unstable/20100805-2308/  http://gentoo.mneisen.org/ ftp://mirrors.evolva.ro/gentoo/ ftp://ftp.klid.dk/gentoo/ http://ftp.linux.ee/pub/gentoo/distfiles/ http://distfiles.gentoo.bg/"

LDFLAGS="-Wl,-O1 -Wl,--as-needed"

LINGUAS="de en"

MAKEOPTS="-j3"

PKGDIR="/usr/portage/packages"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY=""

SYNC="rsync://rsync.gentoo.org/gentoo-portage"

USE="a52 aalib acl amavis amd64 apache2 authlib berkdb bzip2 cgi cli cracklib crypt ctype curl curlwrappers cxx dba dcraw dri extensions fam ffmpeg flatfile fortran freetype gd gdbm gif gpm gs iconv imagemagick imap innodb jbig jpeg jpeg2k logrotate maildir maildrop mmx modules mp3 mpeg mudflap multilib mysql mysqli ncurses nls nptl nptlonly openmp pam pcre pdo pear perl php pic png posix pppd python readline sasl sdl session sharedext simplexml slp smime sockets sse sse2 ssh ssl svg sysfs tcpd tesseract threads tiff tokenizer truetype unicode usb utf8 vhosts xml xml2 xmlreader xmlrpc xmlwriter xorg xsl zip zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="de en" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="virtualbox" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"

Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

```

----------

## Josef.95

Ist ja schon mal hilfreich das python:2.7 verfügbar ist mit dem man ein aktuelles portage nutzen könnte :)

Ich denke es ist nicht nötig etappenweise mit älteren portage Snapshots vorzugehen - vermutlich ist es das beste es gleich mit einem aktuellen portage-Tree zu versuchen (zudem bist du dann auch gleich das "Problem" mit den alten nicht mehr passenden Cheksums los.) ;)

Versuche es doch zunächst mal wie folgt:

ccache deaktivieren

(Python Interpreter am besten noch auf python2.7 setzen (eselect))

emerge --sync

und dann möglichst als erstes portage auf einen aktuellen Stand bringen.

Dann möglichst früh versuchen den aktuellen gcc zu installieren, und auf diesen umzuschalten. (CFLAGS überprüfen)

Und auch möglichst früh auf einen aktuellen Kernel zu aktualisieren.

Und sich dann um den Rest kümmern.

----------

## klausjulius

 *Josef.95 wrote:*   

> Ist ja schon mal hilfreich das python:2.7 verfügbar ist mit dem man ein aktuelles portage nutzen könnte 
> 
> Ich denke es ist nicht nötig etappenweise mit älteren portage Snapshots vorzugehen - vermutlich ist es das beste es gleich mit einem aktuellen portage-Tree zu versuchen (zudem bist du dann auch gleich das "Problem" mit den alten nicht mehr passenden Cheksums los.) 
> 
> Versuche es doch zunächst mal wie folgt:
> ...

 

Hallo Josef.95,

bin jetzt soweit durch. In der VBox läuft das System nachdem ich 2x ein emerge -uD world auf ältere portagetrees gemacht habe.

das einzige was noch nicht läuft ist amavisd-new. nach dem letzten Update und einem Kernelupdate (da hatte sich ja ziemlich viel geändert)

meldet mir amavis folgendes.

```

ERROR: MISSING REQUIRED BASIC MODULES:

  MIME::Words

  MIME::Head

  MIME::Body

  MIME::Entity

  MIME::Parser

  MIME::Decoder

  MIME::Decoder::Base64

  MIME::Decoder::Binary

  MIME::Decoder::QuotedPrint

  MIME::Decoder::NBit

  MIME::Decoder::UU

  MIME::Decoder::Gzip64

  Net::Server

  Net::Server::PreFork

```

Habe versucht die Perl-Module nachzuinstallieren, bisher ohne Erfolg.

Weiß jemand vieleicht woran das liegen könnte?

revdep-rebuild, pytho-updater hab ich schon gemacht. Auch ein erneutes emerge -uD amavisd-new hat nichts gebracht.

gibt es ein script welches die Perlmodule wieder einbindet ?

bis dann

Klausjulius

----------

## py-ro

Probier es mal mit

```
perl-cleaner all
```

----------

## klausjulius

 *py-ro wrote:*   

> Probier es mal mit
> 
> ```
> perl-cleaner all
> ```
> ...

 

Hallo py-ro,

danke für deinen Tip. Hab ich ausgeführt, hat aber selbst nichts gebracht.

Aber nachdem ich die Perl Module neu installiert hatte, gehts jetzt.   :Very Happy: 

jetzt muss ich noch alles auf Herz und Nierchen prüfen, dann mach ich mich mit 

schlotternden Knien an den Server.   :Wink: 

danke euch allen

bis dann

Klausjulius

----------

## klausjulius

Hallo zusammen,

jetzt hab ich doch noch ein großes Problem.

psad läuft nicht mehr. psad meldet folgende Fehlermeldung:

```

 * Starting psad ...

Use of uninitialized value $config{"SYSLOG_FACILITY"} in pattern match (m//) at /usr/sbin/psad line 9442.

Use of uninitialized value $config{"SYSLOG_FACILITY"} in pattern match (m//) at /usr/sbin/psad line 9444.

Use of uninitialized value $config{"SYSLOG_FACILITY"} in pattern match (m//) at /usr/sbin/psad line 9446.

Use of uninitialized value $config{"SYSLOG_FACILITY"} in pattern match (m//) at /usr/sbin/psad line 9448.

Use of uninitialized value $config{"SYSLOG_FACILITY"} in pattern match (m//) at /usr/sbin/psad line 9450.

Use of uninitialized value $config{"SYSLOG_FACILITY"} in pattern match (m//) at /usr/sbin/psad line 9452.

Use of uninitialized value $config{"SYSLOG_FACILITY"} in pattern match (m//) at /usr/sbin/psad line 9454.

Use of uninitialized value $config{"SYSLOG_FACILITY"} in pattern match (m//) at /usr/sbin/psad line 9456.

Use of uninitialized value $config{"SYSLOG_PRIORITY"} in pattern match (m//) at /usr/sbin/psad line 9460.

Use of uninitialized value $config{"SYSLOG_PRIORITY"} in pattern match (m//) at /usr/sbin/psad line 9462.

Use of uninitialized value $config{"SYSLOG_PRIORITY"} in pattern match (m//) at /usr/sbin/psad line 9464.

Use of uninitialized value $config{"SYSLOG_PRIORITY"} in pattern match (m//) at /usr/sbin/psad line 9466.

Use of uninitialized value $config{"SYSLOG_PRIORITY"} in pattern match (m//) at /usr/sbin/psad line 9468.

Use of uninitialized value $config{"SYSLOG_PRIORITY"} in pattern match (m//) at /usr/sbin/psad line 9470.

Use of uninitialized value $config{"SYSLOG_PRIORITY"} in pattern match (m//) at /usr/sbin/psad line 9472.

Use of uninitialized value $config{"SYSLOG_PRIORITY"} in pattern match (m//) at /usr/sbin/psad line 9474.

Undefined subroutine &main::closelog called at /usr/sbin/psad line 9478.

 * Failed to start psad

```

Hat jemand ne Ahnung wie ich das beheben kann? Ich kann über Google nichts finden.  :Shocked: 

wäre schön wenn mir da jemand helfen könnte.

bis dann

Klausjulius

----------

## Genone

Vermute mal da fehlt eine Konfigurationseinstellung (SYSLOG_FACILITY) in der zugehörigen Konfigdatei, aber das nur geraten.

----------

