Para la práctica se utilizará una máquina virtual con Solaris 11.3 x86 instalado.
Los archivos descargados desde Oracle deben colocarse en una carpeta dentro de la máquina virtual, en nuestro caso utilizamos /var/tmp.
Los archivos de install-repo.ksh y MD5 Checksums, deben crearse con con el editor VI y con los nombres que se muestran a continuación:
-rwxr-xr-x 1 admin staff 11612 Jul 7 12:53 install-repo.ksh
-rw-r--r-- 1 admin staff 1475997866 Jul 25 20:19 p23635596_1100_Solaris86-64_1of3.zip
-rw-r--r-- 1 admin staff 1625430414 Jul 25 20:21 p23635596_1100_Solaris86-64_2of3.zip
-rw-r--r-- 1 admin staff 1136404052 Jul 25 19:59 p23635596_1100_Solaris86-64_3of3.zip
-rw-r--r-- 1 admin staff 46854 Jul 26 02:08 p23635598_1100_Solaris86-64.zip
-rw-rw-r-- 1 admin staff 73527 Jul 19 16:46 readme-11_3_10_5_0.html
-rw-rw-r-- 1 admin staff 54031 Jul 19 16:46 readme-11_3_10_5_0.txt
-rw-r--r-- 1 admin staff 3922 Jul 7 12:53 README-zipped-repo.txt
-rw-r--r-- 1 admin staff 207 Jul 7 13:09 sol-11_3_10_5_0-incr-repo_md5sums.txt
Se debe crear una carpeta donde se guardará el repositorio, en nuestro caso creamos la carpeta siguiente:
admin@reposol11:~$ mkdir /TECNIUX/repo
El siguiente paso es ejecutar el script para la creación del repositorio, el uso del comando se muestra a continuación:
USAGE:
install-repo.ksh -d dest [-s zipsrc] [-i image-name] [-c] [-v] [-I] [-y]
-d dest = destination directory to hold repository
-s zipsrc = full path to directory holding zip files. default: current directory
-i image = name of image: e.g. sol-11_2-repo. default: name found in directory
-c = compare checksums of downloaded zip files
-v = verify repo after unzipping (minimum Solaris 11.1.7 required)
-I = create an ISO image
-y = add to existing repository without prompting for yes or no. Use
with caution.
Destination directory will contain top-level ISO files including README.
Repository is directly under destination.
ISO image is created in current directory, or zipsrc directory from -s argument.
En nuestro caso utilizamos la siguiente sintaxis:
$ sudo ./install-repo.ksh -d /TECNIUX/repo -I -c -v
La salida es muy similar a la siguiente:
Comparing checksums of downloaded files...done. Checksums match.
IPS repository exists at destination /tank/repos/dev
Current version: 0.175.3.0.0.25
Do you want to add to this repository? (y/n) y
Uncompressing sol-11_3-repo_1of5.zip...done.
Uncompressing sol-11_3-repo_2of5.zip...done.
Uncompressing sol-11_3-repo_3of5.zip...done.
Uncompressing sol-11_3-repo_4of5.zip...done.
Uncompressing sol-11_3-repo_5of5.zip...done.
Repository can be found in /tank/repos/dev.
Initiating repository rebuild.
Initiating repository verification.
Building ISO image...done.
ISO image can be found at:
/tank/downloads/sol-11_3-repo.iso
Instructions for using the ISO image can be found at:
/tank/repos/dev/README-repo-iso.txt
Para comprobar la versión de repositorio utilizamos el siguiente comando:
admin@reposol11:~$ pkgrepo -s /TECNIUX/repo info
PUBLISHER PACKAGES STATUS UPDATED
solaris 5891 online 2016-07-26T15:20:22.693447Z
El siguiente paso es configurar el publisher para que apunte al repositorio local que hemos creado:
admin@reposol11:~$ pkg set-publisher -G '*' -M '*' -g file:///TECNIUX/repo solaris
Comprobamos que el publisher apunta hacia el repositorio local:
admin@reposol11:~$ pkg publisher
PUBLISHER TYPE STATUS P LOCATION
solaris origin online F file:///TECNIUX/repo/
El siguiente paso consiste en validar las actualizaciones de paquetes disponibles, al usar la opción -n se realiza la comprobación de paquetes sin aplicarlos:
admin@reposol11:~$ sudo pkg update -n
Password:
No updates available for this image.
* En este caso ya se encuentra actualizada por lo cual no reporta paquetes adicionales.
Al terminar la actualización se realiza un reboot, posteriormente es posible comprobar versiones a través del siguiente comando:
admin@reposol11:~$ pkg info entire
Name: entire
Summary: entire incorporation including Support Repository Update (Oracle Solaris 11.3.10.5.0).
Description: This package constrains system package versions to the same
build. WARNING: Proper system update and correct package
selection depend on the presence of this incorporation.
Removing this package will result in an unsupported system.
For more information see:
https://support.oracle.com/rs?type=doc&id=2045311.1
Category: Meta Packages/Incorporations
State: Installed
Publisher: solaris
Version: 0.5.11 (Oracle Solaris 11.3.10.5.0)
Build Release: 5.11
Branch: 0.175.3.10.0.5.0
Packaging Date: July 6, 2016 06:45:49 PM
Size: 5.46 kB
FMRI: pkg://solaris/entire@0.5.11,5.11-0.175.3.10.0.5.0:20160706T184549Z
REFERENCIAS: Estas referencias contienen muchos detalles útiles adicionales a la información que tenemos aquí.
- http://www.unixarena.com/2014/08/solaris-11-ips-repository-issues-and-fixes.html
- https://docs.oracle.com/cd/E36784_01/html/E36802/tspkginstall.html