Re: Frage zu UPDATING portupgrade (20070301)

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Mon, 12 Mar 2007 19:11:31 +0100 (CET)

Heino Tiedemann wrote:
> Die Zeit vor Portupgrade (und auch vor mergemaster) muss
> Schlimm gewesen sein.

Bei mergemaster gebe ich Dir recht, bei Portupgrade nicht
unbedingt, aber da gibt es wohl geteilte Ansichten. :-)

> > Bis
> > auf weiteres werde ich dann wohl bei meinem eigenen,
> > einfachen Support-Script bleiben.
>
> Was macht das eigentlich? Beschreibe mal im Groben bitte.

Naja, wie ich schon schrieb, im wesentlichen sichert es
Libraries nötigenfalls nach »lib/compat« und sorgt dafür,
dass Dependencies (»REQUIRED_BY«) erhalten bleiben.

Ich beschreibe mal kurz, wie ich vorgehe. Vielleicht ist
ja für den einen oder anderen ein nützlicher Tip dabei.

Zunächst mal lasse ich jede Nacht ein Script per cron lau-
fen, das /usr/ports updatet. Damit es mir nicht dazwi-
schenfunkt, wenn ich gerade am Rumbasteln bin, prüft es,
ob es irgendwelche "work"-Verzeichnisse gibt -- wenn ja,
wird nichts geupdatet, und ich bekomme stattdessen eine
E-Mail mit einem Hinweis (falls ich nur mal »make clean«
vergessen habe). Das ist das Skript:

http://www.secnetix.de/~olli/scripts/ports-check-update

Dann aktiviere ich »weekly_status_pkg_enable="YES"« in
/etc/periodic.conf. Das bewirkt, dass ich einmal pro Woche
eine Auflistung aller Packages bekomme, die ich installiert
habe und für die es inzwischen Updates gibt. Anhand dieser
Liste kann ich dann entscheiden, ob ich davon tatsächlich
irgendwas updaten möchte. (Die Tatsache, dass es ein Up-
date gibt, heißt ja noch lange nicht, dass man es auch in-
stallieren muss.)

Außerdem empfehle ich _dringend_, portaudit zu installieren
(ports/security/portaudit). Das prüft einmal pro Tag, ob
für die Packages, die man installiert hat, Sicherheits-
probleme bekannt geworden sind, und wenn ja, bekommt man
diese Information gemailt. Diese Packages sollte man dann
ASAP updaten (oder entfernen).

Desweiteren habe ich folgendes kleine Skript geschrieben,
das ebenfalls täglich läuft und schaut, welche Änderungen
es bei den lokal installierten Packages gegeben hat (d.h.
welche geupdatet wurden, welche gelöscht wurden und welche
neu hinzugekommen sind). Das Resultat landet in einem
diff-ähnlichen Format im »daily run output«. Das ist prak-
tisch, wenn sich mehrere Leute um die Kiste kümmern -- so
ist jeder sofort im Bilde, was getan wurde.

http://www.secnetix.de/~olli/scripts/400.status-local-pkg

Zum eigentlichen Updaten verwende ich dann ggf. folgendes
Skript:

http://www.secnetix.de/~olli/scripts/portup

Wer zsh als Shell verwendet, dem würde ich dazu folgendes
Kommando für die ~/.zshrc ans Herz legen:

compctl -s '$(cd /var/db/pkg; /bin/ls -d ???*)' pkg_info pkg_delete portup

Das konfiguriert die <Tab>-Completion für die Kommandos
pkg_info, pkg_delete und portup so, dass die Namen von
installierten Paketen vervollständigt werden, was extrem
praktisch ist: cdrt<TAB> tippen, und es wird automatisch
zu »cdrtools-devel-2.01.01a11,1« expandiert, was ich nicht
gerne manuell eintippen würde. ;-)

Steht nun ein Port zum Updaten an (z.B. weil er in der
Ausgabe vom »weekly_status_pkg_enable« auftaucht), schaue
ich erstmal, ob ich ihn überhaupt updaten will. Wenn ich
den Port kenne, kann ich das anhand der Versionsnummer
meistens schon entscheiden. Wenn nicht, gucke ich ins
CVS-Repository und schaue mir den jüngsten Commit-Kommen-
tar an. Mein »portup«-Skript hat dafür eine Option "-l",
die das bequem automatisch macht. Beispiel: Im letzten
Weekly-Output stand, dass es eine neue Version von pcre
gibt. Also guck ich nach (Ausgabe leicht gekürzt):

   # portup -l pcr<TAB>
   # portup -l pcre-7.0
   revision 1.41
   date: 2007/03/11 19:41:32; author: krion
   Remove devel/pcre-utf8 and enable UTF8 support in devel/pcre by
   default.
   Bump PORTREVISION on all dependent ports.

Aha, UTF8-Support ist jetzt also per Default drin. OK, das
brauch ich zwar im Moment nicht, aber ich update es trotz-
dem:

   # portup pcre-7.0

Das zeigt mir zuerst an, welche Ports von pcre abhängen,
und fragt mich, ob ich pcre wirklich updaten will (ich kann
mir dann überlegen, ob ich die später vielleicht auch up-
daten möchte). Wenn ich bestätige, wird das Update in der
Ports-Collection durchgeführt, wobei die Information über
die bestehenden Abhängigkeiten beibehalten wird. Falls
durch das Update Libraries ersetzt werden, werden die alten
Libraries unter lib/compat gesichert, bevor sie entfernt
werden.

Das Skript ist also nur eine kleine Hilfe beim manuellen
Pflegen der installierten Ports.

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart
FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd
"I started using PostgreSQL around a month ago, and the feeling is
similar to the switch from Linux to FreeBSD in '96 -- 'wow!'."
        -- Oddbjorn Steffensen
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 12 Mar 2007 - 19:12:39 CET

search this site