Solaris patchen mit PCA
Für das Patchen von Solaris-Systemen empfiehlt sich das Perlskrip
PCA.
Mit Hilfe von PCA ist es möglich, automatisch benötigte Patches ausfindig zu
machen und zu installieren. Genauso lassen sich auch gezielt einzelne
Patches einspielen oder nur downloaden.
Um PCA nutzen zu können, braucht man zwei Dinge. Erstens das Skript selber,
das am Besten nach /usr/bin kopiert wird, und zweitens die
Konfigurationsdatei pca.conf, die nach /etc kopiert werden
muß. Die Patches werden über einen lokalen Proxy heruntergeladen und
installiert. Sollte ein Patch nicht bereits auf dem Proxy abgelegt sein, holt
er ihn über den Campus SunSolve-Account direkt von SunSolve (das kann dann
einige Minuten dauern) und übermittelt ihn an den PCA-Client.
Folgendes benötigt man für PCA:
Eine Beschreibung von PCA befindet sich auf der Homepage des Autors bzw.
läßt sich mit
pca -m
aufrufen. Es folgen einige Beispiele.
Update von PCA selber
Ab und zu muß das PCA-Skript aktualisiert werden, um den Änderungen auf
SunSolve zu folgen. Dies ist dank einer eingebauten Option direkt mit
PCA möglich.
# pca --update=now
New version available: 20081024-01 (current version: 20080911-01)
Changes:
Version 20081024-01
* Read only pca-proxy.conf (not pca.conf) in proxy mode
* Provide more detailed exit status
* Include patch count and sum of patch ages in header
* Fix handling of downloaded files that are too short
* Check whether patch already exists before announcing download
* Fix handling of PTF/ACSLS patches
* Read architecture information from pkginfo output
* Accept wrong entries in the arch column in patchdiag.xref
* Handle special characters in package version string
* Fix erroneous behaviour with checking for patch existance
* Simplify internal handling of extra patch requirements
* Calculate patch age only once
* Apply check: add 116413, 119775, 116831, 116832
* Update list of contributors
Update
Done
Liste aller verfügbaren und nicht installierten Patches
# pca -l
Downloading xref file to /var/tmp/patchdiag.xref
Trying http://inf6/sunpatches/pca-proxy.cgi?
Using /var/tmp/patchdiag.xref from Nov/07/08
Host: e4500 (SunOS 5.10/Generic_137111-08/sparc/sun4u)
List: missing (30/132)
Patch IR CR RSB Age Synopsis
------ -- - -- --- --- -------------------------------------------------------
121430 25 < 29 --- 11 SunOS 5.8 5.9 5.10: Live Upgrade Patch
124863 07 < 08 --- 4 Sun Studio 12: Patch for Sun C++ Compiler
127888 10 < 11 RS- 5 SunOS 5.10: ipf patch
137129 -- < 05 --- 4 SunOS 5.10: format patch
137141 -- < 01 --- 4 SunOS 5.10: Netra topology patch
138104 -- < 01 RS- 4 SunOS 5.10: snoop patch
138106 -- < 02 --- 4 SunOS 5.10: ipseckey and ikeadm patch
138253 -- < 01 RS- 5 SunOS 5.10: /sbin/sh patch
[...]
Liste aller recommended und security Patches
# pca -l missingrs
Using /var/tmp/patchdiag.xref from Nov/07/08
Host: e4500 (SunOS 5.10/Generic_137111-08/sparc/sun4u)
List: missingrs (10/44)
Patch IR CR RSB Age Synopsis
------ -- - -- --- --- -------------------------------------------------------
127888 10 < 11 RS- 5 SunOS 5.10: ipf patch
138104 -- < 01 RS- 4 SunOS 5.10: snoop patch
138253 -- < 01 RS- 5 SunOS 5.10: /sbin/sh patch
138269 -- < 02 RS- 4 SunOS 5.10: devfs patch
138322 -- < 02 RS- 4 SunOS 5.10: Perl patch
138361 -- < 01 RS- 4 SunOS 5.10: snmpXdmid patch
138371 -- < 02 R-- 4 SunOS 5.10: mech_krb5.so.1 patch
138373 -- < 02 RS- 5 SunOS 5.10: fifofs patch
138387 -- < 01 RS- 4 SunOS 5.10: libc.so.1.9 patch
138876 -- < 01 RS- 5 SunOS 5.10: usr/lib/inet/in.dhcpd patch
Suche nach Patches mit einem Suchausdruck
Als Beispiel sollen alle Patches für Sun Studio (und automatisch die
dazugehörigen Abhängigkeiten) gesucht werden. Dies geschieht, indem man
den Suchausdruck mit dem Parameter -p für pattern angibt.
Hier also -p Studio
# pca -l -p Studio
Downloading xref file to /var/tmp/patchdiag.xref
Trying http://inf6/sunpatches/pca-proxy.cgi?
Using /var/tmp/patchdiag.xref from Nov/07/08
Host: inf6 (SunOS 5.10/Generic_120011-14/sparc/sun4u)
List: missing (5/145)
Patch IR CR RSB Age Synopsis
------ -- - -- --- --- -------------------------------------------------------
124861 08 < 09 --- 22 Sun Studio 12: Compiler Common patch for Sun C C++ F77 F95
124863 07 < 08 --- 4 Sun Studio 12: Patch for Sun C++ Compiler
124867 07 < 08 --- 32 Sun Studio 12: Patch for C 5.9 compiler
127000 05 < 06 --- 40 Sun Studio 12: Patch for Fortran 95 8.3 Compiler
127001 01 < 02 --- 47 Sun Studio 12: Patch for Fortran 95 8.3 Dynamic Libraries
Lesen der Beschreibung zu einem Patch
Hier wird die Beschreibung der aktuellen Revision des Patches 127888
angezeigt:
# pca -r 127888
Using /var/tmp/patchdiag.xref from Nov/07/08
Downloading README for 127888-11
Trying http://inf6/sunpatches/pca-proxy.cgi?
Done
Man kann auch eine bestimmte Revision aufrufen, indem man die Nummer mit
einem Bindestrich an die Patchnummer anhängt:
# pca -r 127888-10
Downloading README for 127888-10
Trying http://inf6/sunpatches/pca-proxy.cgi?
Done
Installation von Patches
Um Patches zu installieren, benutzt man statt der Option -l die
Option -i für install. Zusätzlich kann man noch die Option
-V (verbose) angeben, wenn man weitere Details sehen möchte.
Es wird dringend geraten, voher in ein Verzeichnis mit genügend Platz
zu wechseln, z.B. nach /tmp.
Die Patches werden alle vom lokalen PCA-Proxy auf dem Rechner inf6
bezogen, welche sie bei Bedarf von SunSolve herunterlädt. Einmal heruntergeladene
Patches bleiben auf dem Proxy, so daß sie nicht erneut angefordert werden
müssen, bzw. man kann auch ältere Patches einspielen, die nicht (mehr) auf
SunSolve zu finden sind.
Hier als Beispiel die Installation aller recommended/security Patches:
# pca -i missingrs
Using /var/tmp/patchdiag.xref from Nov/07/08
Host: e4500 (SunOS 5.10/Generic_137111-08/sparc/sun4u)
List: missingrs (10/44)
Patch IR CR RSB Age Synopsis
------ -- - -- --- --- -------------------------------------------------------
[...]
138253 -- < 01 RS- 5 SunOS 5.10: /sbin/sh patch
Looking for 138253-01 (3/10)
Trying http://inf6/sunpatches/pca-proxy.cgi?
Done
Installing 138253-01 (3/10)
Unzipping patch
Running patchadd
Done
Reboot required
------------------------------------------------------------------------------
138269 -- < 02 RS- 4 SunOS 5.10: devfs patch
Looking for 138269-02 (4/10)
Trying http://inf6/sunpatches/pca-proxy.cgi?
Done
Installing 138269-02 (4/10)
Unzipping patch
Running patchadd
Done
Reboot recommended
------------------------------------------------------------------------------
138322 -- < 02 RS- 4 SunOS 5.10: Perl patch
Looking for 138322-02 (5/10)
Trying http://inf6/sunpatches/pca-proxy.cgi?
Done
Installing 138322-02 (5/10)
Unzipping patch
Running patchadd
Done
[...]
Installation aller Sun Studio-Patches im Verbose-Modus:
# pca -i -V -p Studio
Option install: 1
Option patchdir: /tmp/.
Option patchurl: http://inf6/sunpatches/pca-proxy.cgi?
Option xrefurl: http://inf6/sunpatches/pca-proxy.cgi?
Option pattern: Studio
Option debug: 1
ARGV: missing
Version: 20081024-01
Config files: /etc/pca.conf
Using /usr/sfw/bin/wget (1.10.2, 11002)
Prerequisites for threads not met, setting threads to 0
Never update
Expanded patch list: missing
xref now : Tue Nov 11 15:00:09 2008
xref current: Tue Nov 11 14:39:25 2008
xref age : 1244
Local file /var/tmp/patchdiag.xref is up to date
Reading from /usr/bin/showrev -p 2>/dev/null
Using /var/tmp/patchdiag.xref from Nov/07/08
Bad patch installed: 127737-02
124861-07 required by 124863: already installed
Host: e4500 (SunOS 5.10/Generic_137111-08/sparc/sun4u)
List: missing (1/4)
Patch IR CR RSB Age Synopsis
------ -- - -- --- --- -------------------------------------------------------
124863 07 < 08 --- 4 Sun Studio 12: Patch for Sun C++ Compiler
Looking for 124863-08 (1/1)
Trying http://inf6/sunpatches/pca-proxy.cgi?
/usr/sfw/bin/wget "http://inf6/sunpatches/pca-proxy.cgi?124863-08" --timeout 3600 -O /tmp/./124863-08.tmp
--15:00:27-- http://inf6/sunpatches/pca-proxy.cgi?124863-08
=> `/tmp/./124863-08.tmp'
Resolving inf6... 129.69.211.16
Connecting to inf6|129.69.211.16|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 36,694,674 (35M) [application/zip]
100%[====================================>] 36,694,674 11.33M/s ETA 00:00
15:02:47 (11.32 MB/s) - `/tmp/./124863-08.tmp' saved [36694674/36694674]
Done
Installing 124863-08 (1/1)
Unzipping patch
Checking for reboot/reconfig in patchinfo
Running patchadd
Starting patchadd at Tue Nov 11 15:02:59 2008
/usr/sbin/patchadd /tmp/pca.12264121672724/124863-08
Validating patches...
Loading patches installed on the system...
Done!
Loading patches requested to install.
Done!
Checking patches that you specified for installation.
Done!
Approved patches will be installed in this order:
124863-08
Checking installed patches...
Verifying sufficient filesystem capacity (dry run method)...
Installing patch packages...
Patch 124863-08 has been successfully installed.
See /var/sadm/patch/124863-08/log for details
Patch packages installed:
SPROcpl
SPROcplx
SPROmrcpl
SPROscl
SPROsclx
SPROstl4a
SPROstl4h
SPROstl4o
SPROstl4x
SPROstl4y
SPROtl7x
SPROtlbn7
SPROtll7
SPROtll7x
Done
------------------------------------------------------------------------------
Download Summary: 1 total, 1 successful, 0 skipped, 0 failed
Install Summary : 1 total, 1 successful, 0 skipped, 0 failed
|