Download Ejemplo de instalación de software

Document related concepts

Instalación de software wikipedia , lookup

Biblioteca (informática) wikipedia , lookup

Distribución Linux wikipedia , lookup

Sistema de gestión de paquetes wikipedia , lookup

Portage (software) wikipedia , lookup

Transcript
V. INSTALACION DE SOFTWARE.
Que es una instalación de software.
La instalación de software es el proceso por el cual nuevos
programas son transferidos a un computador y,
eventualmente, configurados, para ser usados con el fin
para el cual fueron desarrollados.
Fases instalación de software.
Un programa recorre diferentes fases de desarrollo
durante su vida útil:
•Desarrollo.- Cada programador necesita el programa
instalado, pero con las herramientas, códigos fuente,
bancos de datos para modificar el programa.
•Prueba.- Antes de la entrega al usuario, el software debe
ser sometido a pruebas. Esto se hace, en caso de software
complejos, en una instalación ad hoc.
•Producción.- Para ser utilizado por el usuario final.
En cada una de esas fases la instalación cumple diferentes
objetivos.
La Desinstalación de software es el proceso que elimina el
software del computador.
Técnicas para la instalación de software.
Para la instalación de software se pueden aplicar las
siguientes técnicas básicas:
•Los archivos son simplemente copiados en algún lugar del
directorio.- Este sistema es fácil e intuitivo, y el preferido
en MacOS X. Un riesgo es que versiones más antiguas
hayan quedado abandonadas en algún otro lugar sin que nos
demos cuenta.
•Se instala primero un instalador, el que posteriormente
instala el software deseado.
•El sistema operativo o algún software permanente se
ocupan de instalar un paquete de software con todos los
archivos requeridos. Esto es un Sistema de gestión de
paquetes.
Algoritmo para la instalación de software.
La Verificación de la compatibilidad.- Se debe comprobar si se cumplen los requisitos para la instalación en cuanto a hardware y software. A
veces es necesario desinstalar versiones antiguas del mismo software.
Verificación de la integridad.- Se verifica que el paquete de software es el original, esto se hace para evitar la instalación de programas
maliciosos.
Creación de los directorios requeridos.- Para mantener el orden en el directorio cada sistema operativo puede tener un estándar para la
instalación de ciertos archivos en ciertos directorios. Ver por ejemplo Linux Standard Base.
Creación de los usuarios requeridos.- Para deslindar responsabilidades y tareas se pueden o deben usar diferentes usuarios para diferentes
paquetes de software.
Concesión de los derechos requeridos.- Para ordenar el sistema y limitar daños en caso necesario, se le conceden a los usuarios solo el mínimo
necesario de derechos.
Copia, desempaque y descompresión de los archivos desde el paquete de software.- Para ahorrar ancho de banda y tiempo en la transmisión
por internet o espacio de Disco duro, los paquetes vienen empacados y comprimidos.
•
Archivos principales, sean de fuente o binarios.
•
Archivos de datos, por ejemplo datos, imágenes, modelos, documentos XML-Dokumente, etc.
•
Documentación.
•
Archivos de configuración.
•
Bibliotecas.
•
Enlaces duros o enlaces simbólicos a otros archivos.
Compilación y enlace con las bibliotecas requeridas.- En algunos casos no se puede evitar el complicado paso de la compilación y enlace que a su
vez tiene severos requerimientos de software al sistema. El enlace con bibliotecas requeridas puede ser un problema si en su instalación no se
acataron los estándares establecidos.
Configuración: Por medio de archivos de configuración se le da a conocer al software con que parámetros debe trabajar. Por ejemplo, los
nombres de las personas que pueden usar el software, como verificar su clave de ingreso, la ruta donde se encuentran los archivos con datos o
la dirección de nuestro proveedor de correo electrónico. Para sistemas complejos se debe desarrollar el Software Configuration Management.
Definir las variables de entorno requeridas.- Algunos comportamientos del software solo pueden ser determinados por medio de estas
variables. Esto es parte de la configuración, aunque es más dinámica.
Registro ante el dueño de la marca.- Para el Software comercial a veces el desarrollador de software exige el registro de la instalación si se
desea su servicio..
Bibliotecas de software.
Es un conjunto de subprogramas utilizados para desarrollar
software. Las bibliotecas contienen código y datos, que
proporcionan servicios a programas independientes, es
decir, pasan a formar parte de éstos. Esto permite que el
código y los datos se compartan y puedan modificarse de
forma modular. Algunos programas ejecutables pueden ser
a la vez programas independientes y bibliotecas, pero la
mayoría de éstas no son ejecutables. Ejecutables y
bibliotecas hacen referencias (llamadas enlaces) entre sí a
través de un proceso conocido como enlace, que por lo
general es realizado por un software denominado enlazador.
Tipos de Bibliotecas de software.
Bibliotecas estáticas.- Históricamente, las bibliotecas sólo podían ser estáticas. Una biblioteca estática, también
conocido como archivo, consiste en un conjunto de rutinas que se copian en una aplicación por el compilador o el
enlazador, produciendo archivos con código objeto y un fichero ejecutable independiente. Este proceso, y el archivo
ejecutable, se conocen como una construcción estática de la aplicación objetivo. La dirección real, las referencias para
saltos y otras llamadas a rutinas se almacenan en una dirección relativa o simbólica, que no puede resolverse hasta que
todo el código y las bibliotecas son asignados a direcciones estáticas finales. El enlazador resuelve todas las
direcciones no resueltas convirtiéndolas en direcciones fijas o relocalizables (desde una base común) cargando todo el
código y las bibliotecas en posiciones de memoria en tiempo de ejecución. Este proceso de enlazado puede durar incluso
más tiempo que el proceso de compilación, y debe ser realizado cada vez que alguno de los módulos es recompilado. La
mayoría de los lenguajes compilados tienen biblioteca estándar (por ejemplo, la biblioteca estándar de C), pero los
programadores también pueden crear sus propias bibliotecas personalizadas. Los compiladores comerciales proporcionan
tanto las bibliotecas estándar como las personalizadas.
Bibliotecas dinámicas.- Enlace dinámico significa que las subrutinas de una biblioteca son cargadas en un programa en
tiempo de ejecución, en lugar de ser enlazadas en tiempo de compilación, y se mantienen como archivos independientes
separados del fichero ejecutable del programa principal. El enlazador realiza una mínima cantidad de trabajo en tiempo
de compilación, registra que rutinas de la biblioteca necesita el programa y el índice de nombres o números de las
rutinas en la biblioteca. La mayor parte de la labor de enlazado se realiza en el momento en que la aplicación se carga
(tiempo de carga o loadtime) o durante la ejecución (tiempo de ejecución o runtime). El necesario código enlazado,
llamado por el cargador, es de hecho parte del sistema operativo subyacente. En el momento adecuado el cargador
localiza las bibliotecas en el disco y añade los datos relevantes de éstas en el espacio de memoria del proceso.
El enlace dinámico, por su naturaleza, tiene tan sólo las limitaciones establecidas por las licencias de software.
Los plugins son un uso común de las bibliotecas enlazadas dinámicamente, que son especialmente útiles cuando unas
bibliotecas pueden ser sustituidas por otras con una interfaz similar, pero diferente funcionalidad. Se puede decir que
un software tiene una "arquitectura de plugin" si utiliza bibliotecas con una funcionalidad básica con la intención de que
puedan ser sustituidas. Sin embargo, el uso de las bibliotecas enlazadas dinámicamente en la arquitectura de una
aplicación no significa necesariamente que puedan ser sustituidas.
Sistema de gestión de paquetes.
Un sistema de gestión de paquetes, también conocido como
gestor de paquetes, es una colección de herramientas que
sirven para automatizar el proceso de instalación,
actualización, configuración y eliminación de paquetes de
software. El término se usa comúnmente para referirse a
los gestores de paquetes en sistemas Unix-like,
especialmente GNU/Linux, ya que se apoyan
considerablemente en estos sistemas de gestión de
paquetes.
Diferencia entre gestor de paquetes y un instalador.
Los sistemas de gestión de paquetes tienen la tarea de organizar todos los paquetes
instalados en el sistema y se encargan de mantener su usabilidad. Esto se consigue
combinando las siguientes técnicas:
•Comprobación de la suma de verificación para evitar que haya diferencias entre la
versión local de un paquete y la versión oficial.
•Comprobación de la firma digital.
•Instalación, actualización y eliminación simple de paquetes.
•Resolución de dependencias para garantizar que el software funcione correctamente.
•Búsqueda de actualizaciones para proveer la última versión de un paquete, ya que
normalmente solucionan bugs y proporcionan actualizaciones de seguridad.
•Agrupamiento de paquetes según su función para evitar la confusión al instalarlos o
mantenerlos.
Término de la instalación.
Si un sistema de gestión de paquetes realiza la instalación,
entonces este se ocupa de llevar la contabilidad de las
versiones, (des-) instalaciones y cambios en los paquetes de
software del sistema.
En caso de que bibliotecas hayan sido cambiadas por la
instalación, es necesario arrancar el sistema operativo o el
software nuevamente para hacer efectivos los cambios en
todos los programas.
Ejemplo de instalación de software (Móvil PC, sistema
Operativo, etc.): EL CASO DE UNA MÁQUINA VIRTUAL
Desinstalación de software.
Se llama desinstalación de software al proceso de revertir
los cambios producidos en un sistema por la instalación de
software. Por ello no solo deben ser borrados los archivos,
sino también cambios en otras aspectos del software, como
por ejemplo, eliminar usuarios que hayan sido creados,
retirar derechos concedidos, borrar directorios creados
hasta llevar la contabilidad en un Sistema de gestión de
paquetes ó en el sistema (p.e: Windows-Registry).