# cat sol-11-1111-repo-full.iso-a sol-11-1111-repo-full.iso-b > sol-11-1111-repo-full.iso
# mkdir /export/repoSolaris11
# mv sol-11-1111-repo-full.iso /export/repoSolaris11/
# mount -F hsfs /export/repoSolaris11/sol-11-1111-repo-full.iso /mnt
# ls /mnt
COPYRIGHT NOTICES README repo
A continuación se deberá sincronizar el contenido de la ISO con el directorio que servirá como repositorio:
# rsync -aP /mnt/repo/ /export/repoSolaris11
sending incremental file list
./
pkg5.repository
publisher/
publisher/solaris/
publisher/solaris/catalog/
publisher/solaris/catalog/catalog.attrs
publisher/solaris/catalog/catalog.base.C
publisher/solaris/catalog/catalog.dependency.C
root@s11template:/var/tmp# umount /mnt
Con el contenido ya en su ubicación final es momento de crear el indice del repositorio:
# pkgrepo -s /export/repoSolaris11 refresh
Initiating repository refresh
El repositorio hara uso de servicios que deberán ser configurados adecuadamente para que sirvan correctamente el software. El servicio publisher se configurará de la siguiente manera para hacer accesible el repositorio por http:
# svccfg -s application/pkg/server setprop pkg/inst_root=/export/repoSolaris11
# svccfg -s application/pkg/server setprop pkg/readonly=true
# svcprop -p pkg/inst_root application/pkg/server /export/repoSolaris11
Podemos verificar que se han guardado los cambios en la configuración y a continuación aplicar las modificaciones refrescando el servicio:
# svcprop application/pkg/server
pkg/address net_address
pkg/cfg_file astring «»
pkg/content_root astring usr/share/lib/pkg
pkg/debug astring «» pkg/file_root astring «»
pkg/log_access astring none
pkg/log_errors astring stderr
pkg/mirror boolean false
pkg/pkg_root astring /
pkg/port count 80
pkg/proxy_base astring «»
pkg/socket_timeout count 60
pkg/sort_file_max_size astring «»
pkg/ssl_cert_file astring «»
pkg/ssl_dialog astring smf
pkg/ssl_key_file astring «»
pkg/threads count 60
pkg/writable_root astring «»
pkg/inst_root astring /export/repoSolaris11
pkg/readonly boolean true
pkg_bui/feed_description ustring «»
pkg_bui/feed_icon ustring web/_themes/pkg-block-icon.png
pkg_bui/feed_logo ustring web/_themes/pkg-block-logo.png
pkg_bui/feed_name ustring package\ repository\ feed
pkg_bui/feed_window count 24
pkg_secure/read_authorization astring solaris.smf.read.pkg-server
pkg_secure/ssl_key_passphrase astring «»
fs/entities fmri svc:/system/filesystem/local
fs/grouping astring require_all
fs/restart_on astring none
fs/type astring service
autofs/entities fmri svc:/system/filesystem/autofs
autofs/grouping astring optional_all
autofs/restart_on astring none
autofs/type astring service
ntp/entities fmri svc:/network/ntp
ntp/grouping astring optional_all
ntp/restart_on astring none
ntp/type astring service
network/entities fmri svc:/milestone/network
network/grouping astring require_all
network/restart_on astring none
network/type astring service
manifestfiles/lib_svc_manifest_application_pkg_pkg-server_xml astring /lib/svc/manifest/application/pkg/pkg-server.xml
general/entity_stability astring Unstable
start/exec astring %{pkg/pkg_root}/lib/svc/method/svc-pkg-depot\ %m
start/timeout_seconds count 0
start/type astring method
stop/exec astring %{pkg/pkg_root}/lib/svc/method/svc-pkg-depot\ %m\ %{restarter/contract}
stop/timeout_seconds count 30
stop/type astring method tm_common_name/C ustring image\ packaging\ repository
# svcadm refresh application/pkg/server
# svcadm enable application/pkg/server
Con esto ya esta el servicio configurado. Ahora, al propio servidor se le puede configurar el publisher local como repositorio principal:
# pkg set-publisher -G ‘*’ -M ‘*’ -g http://localhost:80/ solaris
# pkg publisher
PUBLISHER TYPE STATUS URI
solaris origin online http://localhost:80/
Si quisieramos volver al repositorio de Oracle:
# pkg set-publisher \
> -k /var/pkg/ssl/Oracle_Solaris_11_Support.key.pem \
> -c /var/pkg/ssl/Oracle_Solaris_11_Support.certificate.pem \
> -g https://pkg.oracle.com/solaris/support/ \
> -G http://pkg.oracle.com/solaris/release/ solaris
# pkg publisher
PUBLISHER TYPE STATUS URI
solaris origin online https://pkg.oracle.com/solaris/support/
NOTA: Oracle dispone de dos repositorios, uno público, en el que no publica parches y otro privado que requiere el uso de certificados. Los certificados se consiguen aqui: http://pkg-register.oracle.com/ y es requesito disponer de un CSI válido para obtenerlos.
# pkg update -nv
Packages to install: 6
Packages to update: 238
Mediators to change: 1
Estimated space available: 1.67 GB
Estimated space to be consumed: 1.04 GB
Create boot environment: Yes
Activate boot environment: Yes
Create backup boot environment: No
Rebuild boot archive: Yes
Changed mediators:
mediator java:
version: None -> 1.6 (system default)
Changed packages:
solaris
database/mysql-51/library
None -> 5.1.37,5.11-0.175.0.0.0.2.537:20111019T091844Z
library/apr-util-13/apr-ldap
Con este nuevo sistema podemos sacar un listado de paquetes con actualizaciones disponibles:
# pkg list -u
NAME (PUBLISHER) VERSION IFO
consolidation/SunVTS/SunVTS-incorporation 0.5.11-0.172.0.0.0.0.0 i–
consolidation/X/X-incorporation 0.5.11-0.175.0.0.0.0.1215 i–
consolidation/cacao/cacao-incorporation 0.5.11-0.174.0.0.0.0.0 i–
consolidation/cns/cns-incorporation 0.5.11-0.175.0.0.0.1.0 i–
consolidation/desktop/desktop-incorporation 0.5.11-0.175.0.0.0.2.0 i–
consolidation/desktop/gnome-incorporation 0.5.11-0.175.0.0.0.2.0 i–
consolidation/install/install-incorporation 0.5.11-0.175.0.0.0.2.1482 i–
consolidation/ips/ips-incorporation 0.5.11-0.175.0.0.0.2.2576 i–
consolidation/java/java-incorporation 0.5.11-0.173.0.0.0.0.0 i–
consolidation/l10n/l10n-incorporation 0.5.11-0.175.0.0.0.1.765 i–
consolidation/ldoms/ldoms-incorporation 0.5.11-0.175.0.0.0.1.0 i–
Actualización del Repositorio:
Existen dos repositorios de oracle, uno con los paquetes de la release y otro con los paquetes con actualizaciones y parches. Con el primero es normal que no actualice nada:
# pkgrecv -s http://pkg.oracle.com/solaris/release/ -d /export/repoSolaris11 ‘*’
Processing packages for publisher solaris …
Retrieving and evaluating 4292 package(s)…
En cambio, si configuramos el repositorio de soporte, si que bajará los parches que se han ido añadiendo al repositorio. Para poder configurar este repositorio deberemos disponer de las claves.
# pkgrecv -s https://pkg.oracle.com/solaris/support/ -d /export/repoSolaris11 \
> –key /var/pkg/ssl/Oracle_Solaris_11_Support.key.pem \
> –cert /var/pkg/ssl/Oracle_Solaris_11_Support.certificate.pem ‘*’
Processing packages for publisher solaris …
Retrieving and evaluating 4304 package(s)…
PROCESS ITEMS GET (MB) SEND (MB)
mail/thunderbird 21/391 56.5/2535.6 56.9/8402.3
…
Actualizando un sistema
Una vez tenemos el repositorio local actualizado podríamos parchear un sistema de la siguiente manera
# pkg update
Packages to install: 6
Packages to update: 238
Mediators to change: 1
Create boot environment: Yes
Create backup boot environment: No
DOWNLOAD PKGS FILES XFER (MB)
Completed 244/244 6412/6412 166.1/166.1
PHASE ACTIONS
Removal Phase 1944/1944
Install Phase 2455/2455
Update Phase 8580/8580
PHASE ITEMS
Package State Update Phase 482/482
Package Cache Update Phase 238/238
Image State Update Phase 2/2
A clone of solaris exists and has been updated and activated.
On the next boot the Boot Environment solaris-1 will be mounted on ‘/’.
Reboot when ready to switch to this updated BE.
—————————————————————————
NOTE: Please review release notes posted at:
http://www.oracle.com/pls/topic/lookup?ctx=E23824&id=SERNS
————————————————————————–
Al existir parches de Kernel nos ha creado un nuevo Boot Environment, aunque no lo hayamos especificado explícitamente. Listanto los Boot Enviroments verificamos que se ha creado uno nuevo y se ha activado para el próximo reboot:
# beadm list
BE Active Mountpoint Space Policy Created
— —— ———- —– —— ——-
solaris N / 6.72M static 2012-10-08 17:42
solaris-1 R – 4.04G static 2012-10-10 16:26
# pkg info system/kernel
Name: system/kernel
Summary: Core Kernel
Description: Core operating system kernel, device drivers and other modules.
Category: System/Core
State: Installed
Publisher: solaris
Version: 0.5.11
Build Release: 5.11
Branch: 0.175.0.0.0.2.1
Packaging Date: October 19, 2011 07:57:11 AM
Size: 32.33 MB
FMRI: pkg://solaris/system/kernel@0.5.11,5.11-0.175.0.0.0.2.1:20111019T075711Z
# pkg info system/kernel
Name: system/kernel
Summary: Core Kernel
Description: Core operating system kernel, device drivers and other modules.
Category: System/Core
State: Installed
Publisher: solaris
Version: 0.5.11
Build Release: 5.11
Branch: 0.175.0.11.0.4.1
Packaging Date: August 30, 2012 02:21:42 PM
Size: 32.04 MB
FMRI: pkg://solaris/system/kernel@0.5.11,5.11-0.175.0.11.0.4.1:20120830T142142Z
Vuelta atrás de un parcheo
Siempre que se lanza un parcheo existe la posibilidad de indicarle sobre que Boot Enviroment aplicarlo. Se le puede especificar que cree uno nuevo, donde se instalarán los parches, y posteriormente reiniciar el servidor con ese nuevo Boot Enviroment. El nuevo Boot Enviroment no siempre se crea de forma automática, pero si se lanza una simulacion de la actualización se indica en el resumen de la misma.
Para lanzar una actualización forzando la creación de un nuevo Boot Enviroment lo haremos de la siguiente forma:
root@s11client:~# pkg update –require-new-be –be-name parcheo –accept
Packages to install: 6
Packages to update: 238
Mediators to change: 1
Create boot environment: Yes
Create backup boot environment: No
DOWNLOAD PKGS FILES XFER (MB)
Completed 244/244 6412/6412 166.1/166.1
PHASE ACTIONS
Removal Phase 1944/1944
Install Phase 2455/2455
Update Phase 8580/8580
PHASE ITEMS
Package State Update Phase 482/482
Package Cache Update Phase 238/238
Image State Update Phase 2/2
A clone of solaris exists and has been updated and activated.
On the next boot the Boot Environment parcheo will be mounted on ‘/’.
Reboot when ready to switch to this updated BE.
—————————————————————————
NOTE: Please review release notes posted at:
http://www.oracle.com/pls/topic/lookup?ctx=E23824&id=SERNS
—————————————————————————
Verificaremos el nuevo Boot Enviroment creado y que será el activo en el próximo arranque del servidor. Posteriormente reiniciamos para aplicarlo.
# beadm list
BE Active Mountpoint Space Policy Created
— —— ———- —– —— ——-
parcheo R – 4.15G static 2012-10-11 09:37
solaris N / 502.0K static 2012-10-08 17:42
# init 6
$ beadm list
BE Active Mountpoint Space Policy Created
— —— ———- —– —— ——-
parcheo NR / 4.22G static 2012-10-11 09:37
solaris – – 11.08M static 2012-10-08 17:42
# pkg info system/kernel
Name: system/kernel
Summary: Core Kernel
Description: Core operating system kernel, device drivers and other modules.
Category: System/Core
State: Installed
Publisher: solaris
Version: 0.5.11
Build Release: 5.11
Branch: 0.175.0.11.0.4.1
Packaging Date: August 30, 2012 02:21:42 PM
Size: 32.04 MB
FMRI: pkg://solaris/system/kernel@0.5.11,5.11-0.175.0.11.0.4.1:20120830T142142Z
Si queremos volver atras el parcheo por algún motivo, basta con activar el boot enviroment original y reiniciar:
# beadm activate solaris
# beadm list BE
Active Mountpoint Space Policy Created
— —— ———- —– —— ——-
parcheo N / 810.33M static 2012-10-11 09:37
solaris R – 3.52G static 2012-10-08 17:42
root@s11client:~# init 6
Una vez reinicado vemos que el boot enviroment original es el activo y que la versión de kernel es la que teniamos inicialmente:
# pkg info system/kernel
Name: system/kernel
Summary: Core Kernel
Description: Core operating system kernel, device drivers and other modules.
Category: System/Core
State: Installed
Publisher: solaris
Version: 0.5.11
Build Release: 5.11
Branch: 0.175.0.0.0.2.1
Packaging Date: October 19, 2011 07:57:11 AM
Size: 32.33 MB
FMRI: pkg://solaris/system/kernel@0.5.11,5.11-0.175.0.0.0.2.1:20111019T075711Z
# beadm list BE
Active Mountpoint Space Policy Created
— —— ———- —– —— ——-
parcheo – – 812.17M static 2012-10-11 09:37
solaris NR / 3.57G static 2012-10-08 17:42
Configuración del servicio a traves de proxy
Si no funciona la actualización y da time out es posible que sea debido a la configuración del proxy. Hay que configurar en las propiedades del servicio para que tome el proxy y también en las variables de entorno:
# svccfg -s svc:/application/pkg/system-repository:default setprop config/http_proxy=astring: «http://USUARIO:PASSWORD@X.X.X.X:PPPP»
# svccfg -s svc:/application/pkg/system-repository:default setprop config/https_proxy=astring: «http://USUARIO:PASSWORD@X.X.X.X:PPPP»
Reconfigurar el servicio
# svcadm refresh svc:/application/pkg/system-repository:default
Verificacion de las propiedades:
# svcprop pkg/system-repository | grep proxy
config/http_proxy astring http://USUARIO:PASSWORD@X.X.X.X:PPPP
config/https_proxy astring http://USUARIO:PASSWORD@X.X.X.X:PPPP
Además es recomendable definir las variables de entorno:
# export http_proxy=»http://USUARIO:PASSWORD@X.X.X.X:PPPP»
# export https_proxy=»http://USUARIO:PASSWORD@X.X.X.X:PPPP»