[Gentoo] wie das System am besten aktuell halten?

Lesenswerte Artikel, Anleitungen und Diskussionen
andreask2
RSAC
Posts: 701
Joined: 2004-01-27 14:16
Location: Aachen

[Gentoo] wie das System am besten aktuell halten?

Post by andreask2 » 2005-09-02 16:52

Hallo!

Wenn ich Gentoo auf meinen Root-Servern einsetze, will ich nicht einmal die Woche oder einmal am Tag einen cronjob mit

Code: Select all

emerge sync && emerge --update --newuse --deep world


durchführen. Automatisch schonmal gar nicht, wäre auf einem Server viel zu riskant, IMHO.

Und auch so muss man nicht jedes Update das in Portage einfließt direkt installieren. Bei Servern kommt es eher drauf an, dass sie zuverlässig und mit neusten Sicherherheits-Patches laufen, und nicht endlos mit Updates beschäftigt sind, mit allen damit verbundenen Problemen (zusätzliche Systemlast, downtime, Probleme mit wenig getesteten Updates, ständige Konfigurations-Anpassungen...).

Natürlich muss man sicherheitskritische Updates einspielen - sofern das eigene System hierfür tatsächlich anfällig ist, in vielen Fällen auch kritische Bug-Fixes. Das trifft vor allem für Pakete wie den Kernel, Server-Software, öffentliche PHP-Scripte und verwendete Bibliotheken zu. Auf der anderen Seite muss man aber nicht unbedingt jedes gcc, glibc, baslayout oder wget Update mitnehmen. Allgemein macht es auch eher selten Sinn überhaupt eine Software zu aktualisieren, wenn man deren neue Features nicht braucht, solange keine sicherheits- oder stabilitäts-kritischen Bugs behoben wurden. Natürlich muss man dabei Gentoo ein bisschen aufpassen, dass man da nicht zu sehr hinterherhinkt, allerdings habe ich hier bisher keine schlechten Erfahrungen gemacht, die unterstützten Versionen in Portage sind IMHO meist gut durchdacht.

Aber wie macht man das jetzt am besten in der Praxis? Ich würde mal schätzen, dass ich nur wenige % der Updates die mir

Code: Select all

emerge --update --newuse --deep --pretend --verbose world


anzeigt wirklich benötige. Ist mit -pv allerdings hilfreich für eine Ã?bersicht für welche Pakete welche Updates verfügbar sind. Heute mache ich das so, dass ich mit regelmäßig diese Ausgabe per mail zuschicke, die vorhandenen Updates ansehe, und ggfs. Pakete manuell aktualisiere. Meistens halte ich mich aber mit Hilfe von http://www.gentoo-portage.com auf dem neusten Stand, da kann man nämlich seine installierten Pakete angeben, und erhält dann regelmäßig Mails und/oder RSS-Meldungen bei Updates dieser Pakete.

Wie macht Ihr das?

Wenn ich ein Paket gefunden habe das ich aktualisieren will (z.B. PHP), aktualisiere ich das meist wie folgt:

Code: Select all

emerge php
(ohne --update und --deep)

Das aktualisiert natürlich nur dieses eine Paket. Aber wenn ich --update oder auch --deep verwende, will emerge so viele unnötige Pakete aktualisieren (z.B. GCC, Perl...), und wieso soll ich unbedingt alle Pakete die PHP oder eines der benötigten Pakete braucht aktualisieren, wenn die vorhandenen noch OK sind (also keine sicherheitskritischen Bugs enthalten) und alles funktioniert?

Bei solchen Paketen ist das ganze noch sehr einfach. Aber es kommt ja immer wieder vor, dass auch Probleme in Bibliotheken wie zlib oder openssl gefunden werden, die von sehr vielen Programmen gelinkt werden.

Gut, einige der Abhängigkeiten kennt man und kann entsprechende Pakete neu kompilieren/emergen, und sonst behelfe ich mir mit equery aus dem gentoolkit:

Code: Select all

# equery depends openssl

[ Searching for packages depending on openssl... ]
dev-db/mysql-4.0.25-r2
dev-lang/python-2.3.3-r1
dev-lang/php-5.1.0_rc1
mail-mta/postfix-2.1.5-r1
net-libs/libwww-5.4.0-r2
net-misc/curl-7.11.0
net-misc/openssh-3.9_p1-r1
net-misc/neon-0.24.7
net-misc/wget-1.9.1-r3
Das fragt gegenüber emerge --update --deep nicht die Abhängigkeiten von openssl selbst ab, sondern welche Pakete von openssl abhängen (also welche Pakete openssl linken) - was gerade bei Bibliotheken sehr viel sinnvoller ist. Komischerweise fehlt in obigem Listing mod_ssl - obowhl das je eigentlich auch aktualisiert werden müsste.

Ich gucke mir dann halt die Abhängigkeiten an, und lasse emerge halt Sachen wie openssh, postfix, mysql... neu kompilieren.

Oder übersehe ich hier ein praktisches Feature in Portage? Fast alle Tipps/Anleitungen zu Portage Updates finde ich erhlich gesagt total übertrieben, zumindest für einen Server.

Wie macht Ihr das?

Weiß jemand was über den aktuellen Stand von emerge security? Das wäre sehr praktisch in meinen Augen. Allerdings wird vermutlich auch das nicht die entsprechenden Abhängigkeiten berücksichtigen. Und glsa-check finde ich irgendwie etwas unhandlich.


Viele Grüße
Andreas

User avatar
Joe User
Project Manager
Project Manager
Posts: 11583
Joined: 2003-02-27 01:00
Location: Hamburg

Re: [Gentoo] wie das System am besten aktuell halten?

Post by Joe User » 2005-09-02 17:52

Ich führe regelmässig emerge --sync && emerge -pDuv world durch, um mir die verfügbaren Updates anzeigen zu lassen. Wenn kritische Pakete dabei sind, werden mit emerge -Du world && etc-update die verfügbaren Updates (egal ob sicherheitsrelevant, oder nicht) eingepielt. Zum Update der von Shared-Libs abhängigen Pakete gibt es revdep-rebuild und falls Perl oder Python einen Versionbump bekommen, gibt es perl-cleaner respektive python-updater. Sollten Updates für glibc, gcc, oder binutils verfügbar sein, sehe ich mir das jeweilige Changelog an und führe gegebenenfalls ein emerge -De world && emerge -De world && etc-update durch, um eine stabilere und sicherere Basis (Toolchain) zu erhalten, was insbesondere bei einem Hardened-System wichtig ist.

HTH
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

outofbound
Posts: 470
Joined: 2002-05-14 13:02
Location: Karlsruhe City

Re: [Gentoo] wie das System am besten aktuell halten?

Post by outofbound » 2005-09-02 18:32

Ich schliesse mich Joe an. Ausser, dass ich das ganze natürlich erst auf einem 1:1- Replikat mache...

Gruss,

Out

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: [Gentoo] wie das System am besten aktuell halten?

Post by Roger Wilco » 2005-09-02 19:26

OutOfBound wrote:Ich schliesse mich Joe an. Ausser, dass ich das ganze natürlich erst auf einem 1:1- Replikat mache...
Feigling. ;)

Um sicherheitskritische Updates nicht zu verpassen ist glsa-check in Kombination mit grep ziemlich nett. Wenn man nicht eh schon die üblichen Mailinglisten liest...

Ansonsten sporadisch ein `emerge --sync && emerge -upDv world`, wie wohl jeder hier.

andreask2
RSAC
Posts: 701
Joined: 2004-01-27 14:16
Location: Aachen

Re: [Gentoo] wie das System am besten aktuell halten?

Post by andreask2 » 2005-09-02 20:04

Joe User wrote:Wenn kritische Pakete dabei sind, werden mit emerge -Du world && etc-update die verfügbaren Updates (egal ob sicherheitsrelevant, oder nicht) eingepielt.
Oh, das hätte ich jetzt ehrlich gesagt nicht gedacht. Ich finde emerge -Du world hat evtl. viel zu viele Nebeneffekte, die man nicht wirklich alle überblicken kann. Z.B. beim rootie-wiki von CC (gut, das ist vermutlich kein Gentoo...), da wird z.B. durch ein emerge -Du world auf einmal PHP4.3 durch PHP4.4 ersetzt, welches nicht binär-kompatibel ist, und wie man am rootie-wiki sieht, welches auf einmal für unschöne Fehlemeldungen in PHP-Applikationen sorgt. Gut, in diesem Fall würde ich das als Fehler der Programmierer der Wiki-Software betrachten, allerdings wird in wenigen Wochen PHP 5 in Portage als stabil deklariert, was dazu führen müsste, dass PHP 4 durch PHP 5 ersetzt wird (weiß allerdings nicht wie das exakt laufen wird, da sich an den neuen PHP-Paketen _einiges_ geändert hat). Vergleichbares gilt für das neue Apache-Layout, solche Sachen kann man doch nicht einfach mit emerge -Du world drüberbügeln?!
Joe User wrote:Zum Update der von Shared-Libs abhängigen Pakete gibt es revdep-rebuild
Guter Tipp, Danke!

andreask2
RSAC
Posts: 701
Joined: 2004-01-27 14:16
Location: Aachen

Re: [Gentoo] wie das System am besten aktuell halten?

Post by andreask2 » 2005-09-03 10:14

Roger Wilco wrote:Ansonsten sporadisch ein `emerge --sync && emerge -upDv world`, wie wohl jeder hier.
Aber aktualisierst Du dann die Pakete letztendlich mit emerge paket1 paket2 paket3 oder wie Joe mit emerge -Du world?

User avatar
Joe User
Project Manager
Project Manager
Posts: 11583
Joined: 2003-02-27 01:00
Location: Hamburg

Re: [Gentoo] wie das System am besten aktuell halten?

Post by Joe User » 2005-09-03 10:26

andreask2 wrote:Oh, das hätte ich jetzt ehrlich gesagt nicht gedacht. Ich finde emerge -Du world hat evtl. viel zu viele Nebeneffekte, die man nicht wirklich alle überblicken kann.
Im Zweifel gibt es neben der eigenen Erfahrung auch die Changelogs (Gentoo/Upstream) und diverse andere Informationsmöglichkeiten. Zudem sind bei ACCEPT_KEYWORDS="$ARCH" kaum Nebeneffekte zu erwarten und wer ACCEPT_KEYWORDS="~$ARCH" setzt ( :roll: ), muss halt mit gelegentlichen Problemen rechnen.
andreask2 wrote:allerdings wird in wenigen Wochen PHP 5 in Portage als stabil deklariert, was dazu führen müsste, dass PHP 4 durch PHP 5 ersetzt wird (weiß allerdings nicht wie das exakt laufen wird, da sich an den neuen PHP-Paketen _einiges_ geändert hat).
Für solche Fälle gibt es /etc/portage/package.[un]mask.
andreask2 wrote:Vergleichbares gilt für das neue Apache-Layout, solche Sachen kann man doch nicht einfach mit emerge -Du world drüberbügeln?!
Man kann, zumal solche (in diesem Fall sinnvollen) Ã?nderungen normalerweise Wochen/Monate im Voraus angekündigt werden. Andererseits: Wie oft kommen solche Ã?nderungen vor? (BTW: Admins, welche die paar Minuten zur Reorganisation/Rekonfiguration nicht aufbringen wollen, sollten ernsthaft über einen Branchenwechsel nachdenken.)

Gentoo ist im Vergleich zu anderen Distributionen zwar etwas aufwendiger zu Administrieren, dafür erhält man (seit Version 2005.0) aber auch ein stabiles, sicheres und dennoch aktuelles Serversystem.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

basiaf
Posts: 18
Joined: 2005-05-01 23:13

Re: [Gentoo] wie das System am besten aktuell halten?

Post by basiaf » 2005-09-03 11:31

...und ganz nebenbei ists ja auch nicht aufwendig auf dem Server die updates einzuspielen, wenn man die vorher auf seinem identischem Testsystem kompiliert und auf dem rooti nur die Packages lädt... Oder lässt hier jemand so sachen wie glibc auf einem Produktivsystem kompilieren ?

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: [Gentoo] wie das System am besten aktuell halten?

Post by Roger Wilco » 2005-09-03 11:37

andreask2 wrote:Aber aktualisierst Du dann die Pakete letztendlich mit emerge paket1 paket2 paket3 oder wie Joe mit emerge -Du world?
Ich spiele die relevanten Pakete einzeln ein. Wenn es Bibliotheken bzw. Ebuilds mit wichtigen reverse dependencies sind, lasse ich anschließend noch revdep-rebuild laufen.

Gegen `emerge -uD world` spricht für mich, dass sehr viele Ebuild-Aktualisierungen aus Kleinigkeiten bestehen, die mein System nicht betreffen. Warum sollte ich also jeden Versionssprung von foobar-X.Y-r1 nach foobar-X.Y-r2 mitmachen? ;)

User avatar
Joe User
Project Manager
Project Manager
Posts: 11583
Joined: 2003-02-27 01:00
Location: Hamburg

Re: [Gentoo] wie das System am besten aktuell halten?

Post by Joe User » 2005-09-03 17:02

basiaf wrote:Oder lässt hier jemand so sachen wie glibc auf einem Produktivsystem kompilieren ?
Warum nicht? Ein vernünftig konfiguriertes System (limits) stört soetwas nicht.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11583
Joined: 2003-02-27 01:00
Location: Hamburg

Re: [Gentoo] wie das System am besten aktuell halten?

Post by Joe User » 2005-09-03 17:30

Roger Wilco wrote:Warum sollte ich also jeden Versionssprung von foobar-X.Y-r1 nach foobar-X.Y-r2 mitmachen? ;)
Weil je nach Paket (z.B. baselayout) durchaus wichtige Details (z.B. Permissions oder Abhängigkeiten) korrigiert werden, ohne einen "echten" Versionbump vorzunehmen. Es kommt auch vor, dass erst ein *-r*-Bump das Kompilieren von Paketen, welche das gebumpte Paket als Abhängigkeit haben, ermöglicht. Hier hilft dann nur ein Blick ins jeweilige Changelog und/oder Bugzilla...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: [Gentoo] wie das System am besten aktuell halten?

Post by Roger Wilco » 2005-09-03 18:19

Joe User wrote:Weil je nach Paket (z.B. baselayout) durchaus wichtige Details (z.B. Permissions oder Abhängigkeiten) korrigiert werden, ohne einen "echten" Versionbump vorzunehmen. Es kommt auch vor, dass erst ein *-r*-Bump das Kompilieren von Paketen, welche das gebumpte Paket als Abhängigkeit haben, ermöglicht. Hier hilft dann nur ein Blick ins jeweilige Changelog und/oder Bugzilla...
Ich habe nicht gesagt, dass jedes Minor-Release eines Ebuilds unwichtig ist. Aber wenn die einzige Ã?nderung z. B. darin besteht, dass jetzt korrekt ein eigener Benutzer für einen Daemon angelegt wird, den ich schon längst manuell angelegt habe, dann werde ich den neuen Ebuild sicherlich nicht einspielen.
Aber wie du schon gesagt hast, `emerge -l programmname` hilft meistens bei der Entscheidungsfindung...

outofbound
Posts: 470
Joined: 2002-05-14 13:02
Location: Karlsruhe City

Re: [Gentoo] wie das System am besten aktuell halten?

Post by outofbound » 2005-09-04 23:07

Roger Wilco wrote:
OutOfBound wrote:Ich schliesse mich Joe an. Ausser, dass ich das ganze natürlich erst auf einem 1:1- Replikat mache...
Feigling. ;)
Mögen deine Kinder bis sie 30 sind bei dir zu Hause wohnen...
:)

Aber ehrlich. Ich hab 9 Wochen gebraucht, bis ich das Hot- Standby zurechtkonfiguriert hatte. :)

Darauf bau ich mir dann das neue System, teste, und switche dann.
Dann wird nochmal repliziert, und gut ist.

Gruss,

Out