Creative Commons License
Excepto donde se indique otra cosa, todo el contenido de este lugar está bajo una licencia de Creative Commons.
Taquiones > diario > 2007 > 03 > 27 > Aeat: Plataforma Informativa 2.30

Aeat: Plataforma Informativa 2.30

Estoy intentando instalar el programa Plataforma Informativa de la Agencia Tributaria en mi sistema Debian AMD64, que debería funcionar en cuanto me aclare con la máquina virtual.

De momento estas son notas dispersas a las que debo dar posteriormente un aspecto coherente.

Paquetes instalados

Inspeccionando

Una vez descargado el paquete desde la página web de la Agencia Tributaria y comprobados los códigos MD5 de los mismos, abrimos el programa principal y verificamos visualmente su contenido.

Se trata de un instalador shell con la siguiente firma:

USE.SH - InstallAnywhere (tm) UNIX Self Extractor Version 7.0.0

y que hace referencia a una variable de entorno llamada LAX_DEBUG para activar mensajes de depuración.

Instalando

Procedemos a exportar la variable de entorno LAX_DEBUG y lanzamos el instalador:

$ export LAX_DEBUG=1
$ sh informativas230.bin
Preparing to install...
Checking for POSIX df.
Found POSIX df.
Checking tail options...
Using tail -n 1.
True location of the self extractor: /db/home/victor/downloads/informativas230.bin
Creating installer data directory: /tmp/install.dir.26925
Creating installer data directory: /tmp/install.dir.26925/InstallerData
Gathering free-space information...
Space needed to complete the self-extraction: 3868 blocks
Available space: 2063568 blocks
Available blocks: 2063568    Needed blocks: 3868 (block = 512 bytes)
This installation does not contain a VM.
Extracting the installation resources from the installer archive...
Extracting install.zip from informativas230.bin to /tmp/install.dir.26925/InstallerData/installer.zip ...
Extracting to padded done, exit code = 0
Extracting from padded to zip done, exit code = 0
Creating disk1 data directory: /tmp/install.dir.26925/InstallerData/Disk1
Creating instdata data directory: /tmp/install.dir.26925/InstallerData/Disk1/InstData
Extracting resources from informativas230.bin to /tmp/install.dir.26925/InstallerData/Disk1/InstData/Resource1.zip ...
Extracting done, exit code = 0
Configuring the installer for this system's environment...

========= Analyzing UNIX Environment =================================
Setting UNIX (linux) flavor specifics.
Importing UNIX environment into LAX properties.
Checking for POSIX awk.

========= Analyzing LAX ==============================================
LAX found............................ OK.
LAX properties read.................. OK.

========= Finding VM =================================================
Valid VM types.......................... J2 J1 MSJ MRJ J4
Expanded Valid VM types.................  JRE_J2 JDK_J2 JRE_J1 JDK_J1 MSJ  MRJ  J4
WARNING! No valid lax.nl.current.vm available.
/usr/xpg4/bin:/home/victor/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
Searching for VMs in PATH:
Looking in:............................. /usr/xpg4/bin
Looking in:............................. /home/victor/bin
Looking in:............................. /usr/local/bin
Looking in:............................. /usr/bin
Found VM:............................. /usr/bin/java
Version:............................. 1.1.7
Looking in:............................. /bin
Looking in:............................. /usr/bin/X11
Found VM:............................. /usr/bin/X11/java
Version:............................. 1.1.7
Looking in:............................. /usr/games
Looking in:............................. /bin
Looking in:............................. /usr/bin
Found VM:............................. /usr/bin/java
Version:............................. 1.1.7
Looking in:............................. /sbin
Looking in:............................. /usr/sbin
Looking in:............................. /usr/local/bin
* Using VM:............................. /etc/alternatives/kaffe-system/bin/java
checking for NPTL + JVM vulernability...
NPTL detected! checking for vulnerable JVM....

========= Virtual Machine Options ====================================
LAX properties incorporated............. OK.
classpath............................... "/tmp/install.dir.26925/InstallerData:/tmp/install.dir.26925/InstallerData/installer.zip"
main class.............................. "com.zerog.ia.installer.Main"
.lax file path.......................... "/tmp/install.dir.26925/temp.lax"
user directory.......................... "/tmp/install.dir.26925"
stdout to............................... "console"
sterr to................................ "console"
install directory....................... ""
JIT..................................... none
option (verify)......................... off
option (verbosity)...................... none
option (garbage collection extent)...... none
option (garbage collection thread)...... none
option (native stack max size).......... none
option (java stack max size)............ none
option (java heap max size)............. 50331648
option (java heap initial size)......... 16777216
option (lax.nl.java.option.additional).. none
dirname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
/bin/ls: error while loading shared libraries: librt.so.1: cannot open shared object file: No such file or directory
basename: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
dirname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
basename: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

========= Display settings ===========================================
hostname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
X display............................... local
UI mode................................. gui

Launching installer...

========= VM Command Line ============================================
options: -Djava.compiler=NONE  -Xmx50331648 -Xms16777216
CLASSPATH:/tmp/install.dir.26925/InstallerData:/tmp/install.dir.26925/InstallerData/installer.zip:
grep: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

========= Forking JAVA =============================================
/bin/sh: error while loading shared libraries: libdl.so.2: cannot open shared object file: No such file or directory

Como puede verse empezamos muy mal. :-(

El problema parece estar en que activa la variable de entorno LD_ASSUME_KERNEL con un valor concreto que hace que falle el enlazado dinámico de librerías. En un comentario de menéame encuentro lo que parece ser una solución y que aplico. Consiste en parchear el archivo comentando todas las líneas en las que aparezca la exportación de dicha variable como en:

cat informativas230.bin | sed "s/export LD_ASSUME_KERNEL/#export LD_ASSUME_KERNEL/" > informativas230.patch.bin

Y ahora al ejecutar el nuevo instalador aparece lo siguiente:

Preparing to install...
Checking for POSIX df.
Found POSIX df.
Checking tail options...
Using tail -n 1.
True location of the self extractor: /db/home/victor/downloads/informativas230.patch.bin
Creating installer data directory: /tmp/install.dir.6093
Creating installer data directory: /tmp/install.dir.6093/InstallerData
Gathering free-space information...
Space needed to complete the self-extraction: 3868 blocks
Available space: 1909456 blocks
Available blocks: 1909456    Needed blocks: 3868 (block = 512 bytes)
This installation does not contain a VM.
Extracting the installation resources from the installer archive...
Extracting install.zip from informativas230.patch.bin to /tmp/install.dir.6093/InstallerData/installer.zip ...
Extracting to padded done, exit code = 0
Extracting from padded to zip done, exit code = 0
Creating disk1 data directory: /tmp/install.dir.6093/InstallerData/Disk1
Creating instdata data directory: /tmp/install.dir.6093/InstallerData/Disk1/InstData
Extracting resources from informativas230.patch.bin to /tmp/install.dir.6093/InstallerData/Disk1/InstData/Resource1.zip ...
Extracting done, exit code = 0
The size of the extracted files to be installed are corrupted.  Please
try to download the installer again and make sure that you download
using 'binary' mode.
Please do not attempt to install this currently downloaded copy.

¿ Copia corrupta ? ¿ Cómo leches lo está calculando ? Pues por tamaño, ni más ni menos, y es que no me fijé bien en la solución propuesta; el truco está en cambiar export LD por #xport LD como en:

cat informativas230.bin | sed "s/export LD_ASSUME_KERNEL/#xport LD_ASSUME_KERNEL/" > informativas230.patch.bin

de manera que el número de bytes permanece constante. Pues vaya protección de contenido :-)

El caso es que ahora que se puede lanzar el instalador, que aunque se hace un lío con las máquinas virtuales de java (supongo que porque son enlaces simbólicos a /etc/alternatives) siempre se le puede indicar que use /usr/bin/java y lo acepta sin más.

El instalador ha dejado las cosas en /home/victor/AEAT/Informativas y sólo resta aplicar el mismo procedimiento con el programa lanzador, pero esta vez utilizando Perl en lugar de sed:

$ cd ~/AEAT/Informativas
$ perl -i -pe 's/export LD_ASSUME/#xport LD_ASSUME/g' Informativas

Otras mejoras

Creando un archivo Desktop para el programa de manera que podamos incluirlo fácilmente en el menú de KDE y otros compatibles con la iniciativa FreeDesktop.

    1 [Desktop Entry]
    2 
    3     Version=1.0
    4     Type=Application
    5     Name=Informativas
    6     Comment=Declaraciones Informativas AEAT
    7     TryExec=informativas
    8     Exec=informativas
    9     Icon=aeat_informativas.png

Y he llegado también a obtener dos logos al respecto: