Instalando software en OpenVMS (II)

En la anterior entrada conseguí configurar la simulación para tener un paquete de software accesible para la simulación. En concreto, el paquete DECSet que tiene una serie de herramientas para desarrollo. El objeto de este post es ver los pasos a seguir para instalar el software. Afortunadamente hay un manual detallado de instalación de ese paquete que voy a intentar seguir al pie de la letra.

En la anterior entrada dejábamos el CDROM creado con el instalable montado en la máquina virtual:

inst-012

En primer lugar compruebo que el sistema tenga suficientes recursos para la instalación:

inst-013

Parece que la cosa no pinta bien, en el manual dice como asignar recursos con la utilidad autogen así que me pongo a ello. Para empezar, edito el fichero SYS$SYSTEM:MODPARAMS.DAT y añado las líneas correspondientes a los parámetros MIN_GBLPAGES y MIN_GBLSECTIONS.

inst-015

A continuación utilizo AUTOGEN para generar los parámetros del sistema y rearrancar:


$ @SYS$UPDATE:AUTOGEN GETDATA REBOOT

Una vez rearranca, compruebo que ahora hay más recursos:

inst-014

Ahora empieza la parte divertida. Tengo que instalar el paquete que es un fichero ZIP y tengo que llevarme el paquete al OpenVMS. Ahora mismo no tengo ninguna manera de hacerlo a través de la red así que, el único medio que tengo disponible es la unidad de CDROM virtual.

La estrategia que voy a seguir comprende:

  1. Transfiero el paquete a instalar (fichero DECSET_122a.zip a la Raspi usando WinSCP.
  2. En la Raspi descomprimo el paquete en un directorio.
  3. Empleando el programa genisoimage creo una imagen ISO con los contenidos del paquete.
  4. Monto la imagen ISO así creada en la unidad de CD virtual del OpenVMS.
  5. Arranco el OpenVMS y monto la unidad de CD. Copio los contenidos a un directorio de uno de los discos duros y desde ese directorio realizo la instalación.

Bien, pues todo este procedimiento no funciona. Al hacer el unzip en Raspbian al parecer se estropea la estructura de los ficheros del paquete de instalación y al crear la imagen ISO se truncan los nombres de los ficheros a formato 8.3. Tras varias consultas en foros, intentos de reparación de los ficheros y pruebas varias no llego a ninguna parte de esta forma. Así que, con la ayuda de varios foreros, cambio mi estrategia a lo siguiente:

  1. Obtengo el programa UNZIP para OpenVMS.
  2. Transfiero a la Raspi, usando WinSCP el programa UNZIP y el fichero con el paquete a instalar.
  3. En la Raspi creo una imagen con el programa UNZIP y el zip con el paquete.
  4. Monto la imagen en OpenVMS
  5. Arranco OpenVMS y copio los contenidos de la imagen creada a un directorio temporal
  6. Hago el unzip del paquete
  7. Instalo

Voy a ir detallando paso a paso lo que he ido haciendo para no olvidarlo.

1. Obtener UNZIP (y ZIP) para OpenVMS

Afortunadamente, desde el foro de VMS me dirigen a este repositorio donde hay una version binaria de Unzip que descargo. Aprovechando que ya estamos, vuelvo a descargar la imagen de DECSet a instalar, esta vez comprobando los MD5 para garantizar que el fichero se descarga correctamente:

inst-016

inst-017

Por ahora, todo bien.

2. Transfiero los ficheros a la Raspberry:

inst-018

3. Creo la imagen ISO:


pi@rpiopenvms:~ $ ls -l
total 13720
-rw-r--r--  1 pi pi 13858278 Dec 18 21:49 DECSET_122a.zip
drwxr-xr-x  2 pi pi     4096 Dec 18 17:50 iso
drwxr-xr-x 46 pi pi     4096 Dec 15 14:34 simh-master
-rw-r--r--  1 pi pi   178688 Dec 20 20:28 unzip-vax-73-v0600.exe
pi@rpiopenvms:~ $ mkdir decset
pi@rpiopenvms:~ $ mv DECSET_122a.zip decset
pi@rpiopenvms:~ $ mv unzip-vax-73-v0600.exe decset
pi@rpiopenvms:~ $ genisoimage -V decset -o decset.iso decset
I: -input-charset not specified, using utf-8 (detected in locale settings)
71.13% done, estimate finish Fri Dec 21 15:15:31 2018
Total translation table size: 0
Total rockridge attributes bytes: 0
Total directory bytes: 0
Path table size(bytes): 10
Max brk space used 0
7029 extents written (13 MB)

pi@rpiopenvms:~ $ sudo mount -o loop decset.iso iso
mount: /dev/loop0 is write-protected, mounting read-only
pi@rpiopenvms:~ $ ls -l iso
total 13708
-r-xr-xr-x 1 root root 13858278 Dec 18 21:49 decset_1.zip
-r-xr-xr-x 1 root root   178688 Dec 20 20:28 unzip_va.exe
pi@rpiopenvms:~ $ 

 

Bien, he conseguido crear la imagen pero veo que se han truncado los nombres de ficheros en la imagen a 8.3. Esto tengo que tenerlo en cuenta en el siguiente paso.

4. Montar la imagen en el OpenVMS

El primer paso es copiar la imagen al directorio donde almaceno las imágenes:


pi@rpiopenvms:~ $ sudo mv decset.iso /usr/local/vax/images
pi@rpiopenvms:~ $ cd /usr/local/vax/data
pi@rpiopenvms:/usr/local/vax/data $ vi openvms.ini

Edito el fichero openvms.ini para configurar que la máquina monte la imagen recién creada en la unidad de CDROM:

inst-019

5. Arrancar OpenVMS y montar el disco


pi@rpiopenvms:/usr/local/vax/data $ cd ../bin
pi@rpiopenvms:/usr/local/vax/bin $ sudo ./vax /usr/local/vax/data/openvms.ini

MicroVAX 3900 simulator V4.0-0 Current        git commit id: c2b45a26
/usr/local/vax/data/openvms.ini-5> attach nvr /usr/local/vax/data/nvram.bin
NVR: buffering file in memory
/usr/local/vax/data/openvms.ini-20> attach rq0 /usr/local/vax/data/d0.dsk
RQ0: '/usr/local/vax/data/d0.dsk' Contains ODS2 File system
RQ0: Volume Name: OVMSVAXSYS   Format: DECFILE11B   Sectors In Volume: 2940951
/usr/local/vax/data/openvms.ini-21> attach rq1 /usr/local/vax/data/d1.dsk
RQ1: '/usr/local/vax/data/d1.dsk' Contains ODS2 File system
RQ1: Volume Name: DATA1        Format: DECFILE11B   Sectors In Volume: 2940951
/usr/local/vax/data/openvms.ini-22> attach rq2 /usr/local/vax/data/d2.dsk
RQ2: '/usr/local/vax/data/d2.dsk' Contains ODS2 File system
RQ2: Volume Name: DATA2        Format: DECFILE11B   Sectors In Volume: 2940951
/usr/local/vax/data/openvms.ini-25> attach -r rq3 /usr/local/vax/images/decset.iso
RQ3: unit is read only


KA655-B V5.3, VMB 2.7
Performing normal system tests.
40..39..38..37..36..35..34..33..32..31..30..29..28..27..26..25..
24..23..22..21..20..19..18..17..16..15..14..13..12..11..10..09..
08..07..06..05..04..03..
Tests completed.
>>>boot

Una vez arranca, hago login en OpenVMS y monto la unidad de CDROM:


$ MOUNT/OVERRIDE=IDENT DUA3
%MOUNT-I-WRITELOCK, volume is write locked
%MOUNT-I-CDROM_ISO, decset: (1 of 1) , mounted on  _TCVAX$DUA3:
$ dir DUA3:[000000]

Directory DUA3:[000000]

DECSET_1.ZIP;1      UNZIP_VA.EXE;1

Total of 2 files.
$

Creo dos directorios en DUA1:

  • UTILS que va a contener el programa UNZIP
  • DECSET_TMP donde voy a copiar el fichero .zip

Copio a estos directorios los correspondientes ficheros:


$ create/dir dua1:[UTILS]
$ create/dir dua1:[DECSET_TMP]
$ set def dua1:[UTILS]
$ copy dua3:[000000]UN*.* []
$ dir

Directory DUA1:[UTILS]

UNZIP_VA.EXE;1

Total of 1 file.

$ set def dua1:[decset_tmp]
$ show def
  DUA1:[DECSET_TMP]
$ copy dua3:[000000]*.zip []
$ dir

Directory DUA1:[DECSET_TMP]

DECSET_1.ZIP;1

Total of 1 file.
$

A continuación creo un símbolo para poder ejecutar UNZIP:

 
$ UNZIP :== $dua1:[UTILS]UNZIP_VA.EXE
$ show symbol UNZIP
  UNZIP == "$DUA1:[UTILS]UNZIP_VA.EXE"
$ unzip
UnZip 6.00 of 20 April 2009, by Info-ZIP.  For more details see: unzip -v.

Usage: unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir]
  Default action is to extract files in list, except those in xlist, to exdir;
  file[.zip] may be a wildcard.  -Z => ZipInfo mode ("unzip -Z" for usage).
=> define foreign command symbol in LOGIN.COM:  $ unzip :== $dev:[dir]unzip.exe

  -p  extract files to pipe, no messages     -l  list files (short format)
  -f  freshen existing files, create none    -t  test compressed archive data
  -u  update files, create if necessary      -z  display archive comment only
  -v  list verbosely/show version info       -T  timestamp archive to latest
  -x  exclude files that follow (in xlist)   -d  extract files into exdir
modifiers:
  -n  never overwrite or make a new version of an existing file
  -o  always make a new version (-oo: overwrite original) of an existing file
  -q  quiet mode (-qq => quieter)            -a  auto-convert any text files
  -j  junk paths (do not make directories)   -aa treat ALL files as text
  -C  match filenames case-insensitively     -L  make (some) names lowercase
  -X  restore owner/ACL protection info      -V  retain VMS version numbers
  -Y  treat ".nnn" as ";nnn" version         -2  force ODS2 names
  --D restore dir (-D: no) timestamps        -M  pipe through "more" pager
  (Must quote upper-case options, like "-V", unless SET PROC/PARSE=EXTEND.)

See "unzip -hh" or unzip.txt for more help.  Examples:
  unzip data1 -x joe   => extract all files except joe from zipfile data1.zip
  unzip "-V" foo "Bar" (Quote names to preserve case, unless SET PROC/PARS=EXT)
  unzip -fo foo vms.c  => quietly replace existing vms.c if archive file newer
$ 

6. Desomprimir el paquete

Bien, ahora voy a descomprimir el paquete de instalación. Primero lo renombro a su nombre no truncado:

 
$ set def [DECSET_TMP]
$ dir

Directory DUA1:[DECSET_TMP]

DECSET_1.ZIP;1

Total of 1 file.
$ rename DECSET_1.ZIP DECSET_122A.ZIP
$ dir

Directory DUA1:[DECSET_TMP]

DECSET_122A.ZIP;1

Total of 1 file.
$ unzip DECSET_122A.ZIP
Archive:  DUA1:[DECSET_TMP]DECSET_122A.ZIP;1
  inflating: DECSET_A122.A
  inflating: DECSET_A122.B
  inflating: DECSET_A122.C
  inflating: DECSET_A122.D
  inflating: DECSET_A122.E
  inflating: DECSET_A122.F
  inflating: DECSET_A122.G
  inflating: DECSET_A122.H
  inflating: DECSET_A122.I
  inflating: DECSET_A122.J
  inflating: DECSET_A122_IGUIDE.TXT
$ delete decset_122a.zip
%DELETE-E-DELVER, explicit version number or wild card required
$ delete decset_122a.zip;*
$

Parece que todo ha ido OK. Ahora sólo una pequeña comprobación de que los ficheros del paquete de instalación son correctos:

 
$ BACKUP /LIST DECSET_A122.A /SAVE
Listing of save set(s)

Save set:          DECSET_A122.A
Written by:        RAMSHAW
UIC:               [001000,001017]
Date:              29-JUN-1999 15:28:06.64
Command:           BAC [.FILES]*.* DECSET_A122.A/SAV
Operating system:  OpenVMS VAX version V6.2
BACKUP version:    V6.2
CPU ID register:   12000003
Node name:         _EDSDS8::
Written on:        _$15$DKA400:
Block size:        32256
Group size:        10
Buffer count:      247

[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]CHECK_COMM_LANG.TPU;1
                                                            3   4-JUN-1997 18:12
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]CMS$DW_IMAGES.DAT;1
                                                            1   1-MAR-1989 12:36
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]CMS$DW_NOTIMAGES.DAT;1
                                                            1  29-SEP-1995 14:13
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]CMS$IMAGES.DAT;1
                                                            1  31-OCT-1996 15:24
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]CMS$IVP.COM;1
                                                           16  26-JUN-1997 16:02
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]CMS$KITINSTAL.COM;1
                                                           50  30-JUN-1997 17:06
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]CMS039.RELEASE_NOTES;1
                                                          139  27-JUN-1997 16:04
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]DECSET122A.RELEASE_NOTES;1
                                                          637  28-JUN-1999 08:05
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]DTM$KITINSTAL.COM;1
                                                           64  30-JUN-1997 17:07
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]DTM038.RELEASE_NOTES;1
                                                           80  27-JUN-1997 16:34
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]ENVMGR$KITINSTAL.COM;1
                                                           47  20-JUN-1997 10:16
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]ENVMGR$KITVERSION.COM;1
                                                            3  20-JUN-1997 12:13
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]ENVMGR012.RELEASE_NOTES;1
                                                           62  27-JUN-1997 16:04
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]KITINSTAL.COM;1
                                                           55  29-JUN-1999 15:18
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]KITVERSION.COM;1
                                                            3  28-JUN-1999 08:11
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]LSE$KITINSTAL.COM;1
                                                           91  30-JUN-1997 17:06
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]LSE045.RELEASE_NOTES;1
                                                          102  27-JUN-1997 16:33
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]MMS$DW_HELP.HLB;1
                                                          207  20-JUN-1997 12:33
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]MMS$KITINSTAL.COM;1
                                                           62  30-JUN-1997 17:15
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]MMS$PROFILE.VUE$DAT;1
                                                            1  13-DEC-1994 18:00
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]MMS$VUE.COM;1
                                                            4  13-DEC-1994 18:08
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]MMS.HLP;1
                                                           80  20-JUN-1997 12:34
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]MMS032.RELEASE_NOTES;1
                                                          122  27-JUN-1997 16:05
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]PCA$KITINSTAL.COM;1
                                                           39  30-JUN-1997 13:53
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]PCA$KITVERSION.COM;1
                                                            5  27-JUN-1997 11:05
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]PCA$SYSTEM_BUILDDEFS.COM;1
                                                            3  27-JUN-1997 14:22
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]PCA045.RELEASE_NOTES;1
                                                           99  27-JUN-1997 16:05
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]SCA$KITINSTAL.COM;1
                                                          114  20-JUN-1997 09:08
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]SCA$KITPARAMS.COM;1
                                                            4  20-JUN-1997 15:19
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]SCA045.RELEASE_NOTES;1
                                                           57  27-JUN-1997 16:55

Total of 30 files, 2152 blocks
End of save set
$

Parece que todo ha ido bien. La instalación en el siguiente post.

Instalando software en OpenVMS (I)

Ya tengo mi OpenVMS ejecutándose en el simulador simh de la Raspberry Pi. Ahora, lo que voy a hacer, es ver cómo se instala un paquete de software en OpenVMS. Mi experiencia con VAX era de desarrollador, no de administrador de sistemas y no recuerdo nada de como se instalan paquetes de software.

Para empezar, voy a intentar instalar el paquete DECSet que comprende una serie de herramientas para desarrollo, entre otras, el editor LSE. Uno de los módulos software que me descargué era precisamente DECSet.

En primer lugar, el paquete que me descargué es un archivo zip, miro los contenidos y veo que son una serie de ficheros con extensiones de la a a la j y un fichero con extensión .txt

inst-002

Al parecer, es un fichero para SO VAX/VMS. Hasta aquí todo bien, pero tengo la duda de cómo hacer llegar este fichero a mi instancia de OpenVMS ejecutándose en el simulador en una Raspberry Pi. En el OpenVMS no tengo servidor FTP así que creo que la mejor forma es creando una imagen .iso y montándola en la unidad de CD que tiene la instancia simulada. La segunda duda es si creo el ISO con el .zip o si lo descomprimo y creo el ISO con los ficheros que contiene.

Me inclino, en principio, por la segunda opción pero antes, voy a comprobar que mi sistema tiene un unzip porque si no la cagada es monumental. Arranco la máquina virtual y veo que no hay UNZIP así que, a por la segunda opción.

Mediante WinSCP copio el fichero zip de mi PC al directorio home de la raspi y hago un unzip del fichero en un directorio creado ad-hoc:

inst-003

Hasta ahora, todo bien. A continuación creo la imagen ISO con la utilidad genisoimage que previamente había instalado en la raspi:

inst-004

Compruebo si el ISO está bien creado:

inst-005

He conseguido montar la imagen en raspbian y accedo a su contenido. Esto tiene buena pinta.

El siguiente paso consiste en copiar la imagen al directorio /usr/local/vax/images y editar el fichero /usr/local/vax/data/openvms.ini modificándolo para que la unidad de CDROM virtual monte esta ISO.

inst-006

inst-007

Ahora, arranco el OpenVMS, me logo en el sistema y miro si los ficheros copiados son accesibles:

inst-008

inst-009

Si miro los dispositivos veo que la unidad de CDROM (DUA3:) no está montada:

inst-010

Procedo a montarla y tras varias y repetidas cagadas encuentro el comando que lo hace:

inst-011

Tengo que recordar que el directorio raíz de la unidad es el [000000]. El primer paso de la instalación que era tener acceso a los instalables está conseguido, ahora a por el segundo la instalación del software. A ver si se da igual.