| Artículos | 01 ENE 1995

Programas desinstaladores para Windows

Tags: Histórico
Magic Eye 1.3, UnInstaller 2.0, Uninstall-it! 1.0 y WinDelete 1.0
Jaime de Yraolagotia.

Utilidades que le permiten desinstalar de forma inteligente las aplicaciones Windows reduciendo el consumo de disco duro y recursos del sistema.

Todos los usuarios coincidirán en afirmar que la instalación de aplicaciones Windows resulta mucho más sencilla, cómoda y vistosa que la instalación de aplicaciones DOS. En Windows usted puede escoger los componentes a instalar, el directorio de destino o decidir las modificaciones a efectuar en AUTOEXEC.BAT y CONFIG.SYS. Y todo ello acompañado de gráficos espectaculares, sonido y pantallas informativas. Pero no se trata tan sólo de adornar la copia de ficheros desde los disquetes al disco duro, sino, principalmente, de integrar el nuevo programa dentro de la complejidad del entorno Windows. Es tal la importancia en Windows de una correcta instalación que existen herramientas de desarrollo cuyo único propósito es construir programas de instalación potentes y flexibles (véase la comparativa entre las herramientas Microsoft Setup e InstallShield publicada en PC World nº 104, Noviembre 94, págs 318-325).

Desde luego, la instalación de aplicaciones se ha resuelto de forma eficiente en el entorno Windows. Pero ¿qué ocurre con el proceso contrario, cuando el usuario quiere desinstalar una aplicación? Si usted borra en el Administrador de Programas el icono de una aplicación, simplemente está borrando el icono, no está eliminando físicamente los ficheros del disco. Bien es cierto que podría borrar manualmente todos los ficheros del directorio donde se almacena un determinado programa, tarea no muy complicada. Pero la instalación de un programa en Windows va mucho más allá que la simple copia de unos ficheros de los disquetes a un directorio del disco duro. Las aplicaciones Windows también copian ficheros en los directorios \WINDOWS y \WINDOWS\SYSTEM, incluyen sus propias acciones en los ficheros INI (ficheros de inicialización), crean iconos y grupos en el Administrador de Programas, sustituyen librerías DLL antiguas, manipulan las entradas de la base de datos de las aplicaciones OLE (fichero REG.DAT), etc.

El resultado es que el entorno Windows va creciendo poco a poco de una forma que al final llega a ser perceptible al usuario. Cada vez tiene menos espacio en disco duro, cada vez hay más ficheros en el directorio \WINDOWS, cada vez es más grande el fichero WIN.INI, cada vez hay más ficheros INI, cada vez se tarda más tiempo en arrancar Windows y gestionar los programas -pues es necesario leer todas las órdenes de los ficheros INI-. El usuario nunca sabe si le sobran ficheros que ya no utiliza, si está cargando controladores para programas que intentó borrar manualmente, si podría suprimir una determinada sección de WIN.INI.

Complejidad de un desinstalador

La solución a estos inconvenientes exige un programa desinstalador. En un primer momento, parece sencilla la tarea -y, por consiguiente, el diseño- de un desinstalador. Simplemente ha de ser un programa residente que se active antes de la instalación de los programas y que siga la pista de todas las acciones que realice el programa de instalación. Sin embargo, no se trata de algo tan sencillo. En primer lugar, muchos instaladores reinicializan Windows al finalizar la instalación lo que abortará el programa de desinstalación. En segundo lugar, algunas de las operaciones de un programa se realizan una vez terminada la instalación, cuando el programa desinstalador ya ha dejado de controlar. En tercer lugar, un programa puede instalar ficheros DLL de uso común que no se pueden borrar, aunque pertenezcan a un determinado programa, porque están compartidas por varios otros.

En definitiva, algo que parecía sencillo en realidad es tremendamente complicado y no resulta fácil diseñar un programa desinstalador eficiente. En esta prueba comparativa se analizan cuatro desinstaladores que se pueden conseguir en España: Magic Eye 1.3 de la compañía alemana Gebacom, UnInstaller 2.0 de MicroHelp, Uninstall-It! 1.03 de Landmark y WinDelete 1.0 de la firma IMSI. Se puede apreciar en el número de las versiones que son programas que han aparecido hace poco, por lo que nos encontramos tan sólo en la primera generación de programas desinstaladores -como veremos más adelante, en cierta manera se paga la novatada-.

Dos métodos de desinstalación

La clave para comprender el funcionamiento de un desinstalador consiste en distinguir entre dos tipos de programas, dos enfoques distintos empleados a la hora de diseñar un desinstalador: residentes y no-residentes. Y quizá la forma más fácil de ilustrar estas diferentes técnicas consiste en describir una aplicación de ejemplo y comentar cómo se comportarían desinstaladores de los dos tipos. Las pruebas realizadas con los programas de esta comparativa se efectuaron instalando y desinstalando varias veces cuatro aplicaciones Windows: Adobe Acrobat, Borland C++, Corel Flow y Microsoft Dangerous Creatures. De todos ellos, Corel Flow es el más idóneo para comprender el funcionamiento de los desinstaladores y el grado de acierto que se puede conseguir con cada uno de ellos, y nos servirá de ejemplo en esta prueba comparativa.

Durante su instalación, Corel Flow 2.0 realiza varios pasos, cada uno de los cuales se tiene que efectuar de forma inversa durante la desinstalación. Primero, se copian todos los ficheros del programa en el directorio \CFLOW20, más exactamente, se copian los ficheros ejecutables y las librerías en el directorio \CFLOW20\PROGRAMS. Segundo, los restantes programas se copian en subdirectorios de \CFLOW20: el tutorial en \CFLOW20\TUTORIAL, los ejemplos en \CFLOW20\SAMPLES, los ficheros de configuración en \CFLOW20\CONFIG, etc. Es importante separar este paso del anterior, pues los desinstaladores con el método no-residente no reconocen estos directorios.

Tercero, se copian cuatro ficheros DLL (librerías) en el directorio \WINDOWS\SYSTEM. Estas librerías son de uso común y puede que ya existieran instaladas por otro programa, por ejemplo, OLE2.DLL. Es decir, no se pueden borrar alegremente porque entonces el otro programa se quedaría sin ellas. Cuarto, se crea en WIN.INI una entrada para asociar la extensión CFL con el programa Corel Flow y un nuevo tipo de objeto en la sección [Embedding]. Quinto, se crea en WIN.INI una nueva sección para indicar cuál es el directorio donde se almacenan los ficheros de configuración (\CFLOW20\CONFIG). Sexto, se modifica el fichero REG.DAT para añadir un nuevo tipo de objeto, denominado CorelFlow.Document. Y, por último, se crean 16 iconos y un grupo para contenerlos. En una de las tablas adjuntas se pueden comprobar los resultados de cada desinstalador con estas acciones, que ninguno fue capaz de realizar de forma plenamente satisfactoria.

Desinstaladores residentes

Un desinstalador residente es un programa que se ha de ejecutar antes de instalar las aplicaciones Windows y que permanece residente controlando todas las acciones que se producen durante la instalación. La principal ventaja del método residente es que el desinstalador conoce exactamente cuáles son y en dónde están situados todos los ficheros pertenecientes a una determinada aplicación. Además, puede saber las modificaciones exactas que se efectúan en los ficheros INI. El método residente es la única forma de conocer con absoluta certeza todos los pasos realizados al instalar un programa y, por tanto, es el único método que puede ofrecer garantía total de desinstalar correctamente un programa.

Ahora bien, el método residente no es perfecto y posee varios inconvenientes. El primero es que, lógicamente, no puede desinstalar aquellos programas que ya estaban presentes en Windows antes de empezar a usar el desinstalador -además de que resulta obligatorio acordarse de ejecutar el desinstalador antes de instalar cualquier nuevo programa-.

Otro defecto del método residente surge con las actuali

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información