Administración UNIX: Gestión del software Juan Hernando Vieites jhernando@fi.upm.es Noviembre 2014 jhernando@fi.upm.es Administración UNIX: Gestión del software 1/1
Instalación de software A la hora de instalar software nuevo existen varias alternativas Mediante paquetes de instalación (el modo preferido) A partir de binarios precompilados. Compilando desde el código fuente. Adaptando el código desde otra plataforma Ciertos programas pueden ser instalados localmente por los usuarios, pero normalmente esto es tarea del administrador. jhernando@fi.upm.es Administración UNIX: Gestión del software 2/1
Sistemas de paquetes Paquetes Un paquete es un fichero comprimido que incluyen el software a instalar junto con metainformación acerca de versiones, dependencias y configuración. Existen múltiples sistemas de paquetes: RHEL, Fedora, SuSE,...:.rpm Debian, Ubuntu,...:.deb Solaris: PKG AIX: Smit Repositorios Cada sistema de paquetes tiene un sistema de base de datos para gestionar colecciones de paquetes y poder automatizar la descarga e instalación de paquetes desde la misma. jhernando@fi.upm.es Administración UNIX: Gestión del software 3/1
RPM Package Manager Paquetes rpm Sistema de paquetes creado por Red Hat en 1999, Forma parte de la norma Linux Standard Base. La convención de nombrado de paquetes sigue el esquema: nombre-version-release.arquitectura.rpm Los paquetes de bibliotecas suelen comenzar por lib y las cabeceras de desarrollo para las mismas acabar en -devel Los paquetes se construyen con rpmbuild La base de datos de paquetes instalados se mantiene en /var/lib/rpm El sistema de paquetes rpm evalúa automáticamente las dependencias de un binario (ej. bibliotecas) durante su construcción. jhernando@fi.upm.es Administración UNIX: Gestión del software 4/1
RPM Package Manager Mandato rpm Es poco habitual, pero a veces es necesario utilizar el mandato de gestión de paquetes más bajo nivel. El mandato rpm actúa sobre ficheros de paquete o sobre paquetes ya instalados en el sistema. Actúa sobre la base de datos local pero no accede a repositorios Los dos comandos más habituales son Instalación: rpm -i ficheros paquete Eliminación: rpm -e nombre paquetes jhernando@fi.upm.es Administración UNIX: Gestión del software 5/1
Gestores RPM de alto nivel yum Herramienta que ayuda en la gestión de dependencias de paquetes rpm, así como la catalogación, búsqueda y descarga. Necesita una base de datos y repositorios. La configuración de las URIs de los repositorios se encuentran en /etc/yum.conf o /etc/yum.repos.d. Mandatos habituales: yum install paquetes yum erase paquetes yum list patron (busca en nombre) yum search patron (busca en descripción) yum check-updates yum update yum upgrade jhernando@fi.upm.es Administración UNIX: Gestión del software 6/1
Gestores RPM de alto nivel Otros sistemas para rpm son: up2date Sistema para RHEL, la distribución de pago equivalente a Fedora Permite automatización de despliegue sobre múltiples máquinas y administración de paquetes remota. Zypp, zypper La versión SuSE de yum. jhernando@fi.upm.es Administración UNIX: Gestión del software 7/1
Sistemas de paquetes Debian Paquetes deb Sistema de paquetes ideado para la distribución Debian en los 90. La base de datos se alamacena en /var/lib/dpkg Los paquetes se generan con dpkg-deb o dpkg-buildpackage. El fichero de un paquete Debian se puede descomprimir con ar x paquete y su contenido es un fichero data.tar.gz (ficheros y directorios a instalar) y otro control.tar.gz (metadatos) jhernando@fi.upm.es Administración UNIX: Gestión del software 8/1
Debian Package Manager dpkg Muy similar al mandato rpm. Opera con los paquetes a muy bajo nivel por lo que sólo se usa con paquetes que no forman parte de repositorios. Instalación: dpkg -i ficheros paquete Eliminación: dpkg -r nombres paquete Reconfiguración: dpkg-reconfigure Listado de todos los paquetes instalados: dpkg -l Listado de ficheros contenidos en un paquete instalado: dpkg -l nombre paquete jhernando@fi.upm.es Administración UNIX: Gestión del software 9/1
Gestión de paquetes.deb de alto nivel Familia de mandatos apt Conjunto de mandatos para gestión automática de paquetes del mismo estilo que yum (pero anterior cronológicamente). Se basan en la información de una base de datos que se sincroniza con uno o más repositorios. Los repositorios se configuran en /etc/apt/sources.lists y en ficheros individuales en /etc/apt/sources.lists.d Soporta validación de integridad por firmas criptográficas. aptitude es otra alternativa que puede considerarse como front-end de apt en modo línea de mandatos o con interfaz ncurses. Es mala idea mezclar ambos. jhernando@fi.upm.es Administración UNIX: Gestión del software 10/1
Mandatos apt apt-get Ejecuta acciones de instalación, desistalación y actualización apt-get install paquetes apt-get remove paquetes apt-get update: Actualiza la base de datos de paquetes. Se debe ejecutar tras modificar la configuración de repositorios apt-get upgrade: Actualiza todos los paquetes a su versión más reciente en la distribución. apt-get dist-upgrade: Actualiza la distribución (aunque en Ubuntu lo reemplaza do-release-upgrade). jhernando@fi.upm.es Administración UNIX: Gestión del software 11/1
Mandatos apt apt-cache Ejecuta acciones de consulta apt-cache search patrón apt-cache show paquete apt-file Mandato semi-independiente que maneja bases de datos de ficheros para poder buscar qué paquetes proporcionan qué ficheros. apt-file update: Actualiza la base de datos apt-file search patrón : Busca paquetes que proporcionan algún fichero que case con el patrón. jhernando@fi.upm.es Administración UNIX: Gestión del software 12/1
Instalación de binarios En este caso el código ha sido precompilado por el autor del software, en principio sin pensar en un sistema específico. Lo habitual es instalar el software en /opt/ o /usr/local, posiblemente en su propio subdirectorio Los paquetes se suelen distribuir como.zip,.tar.gz,.bz2, pero algunos paquetes traen sus propios instaladores binarios (Matlab, CUDA,...) Posibles problemas: Incompatibilidad con bibliotecas dinámicas del sistema y otros programas. Gran tamaño en el caso de paquetes autocontenidos (enlazado estático, redistribución de bibliotecas) jhernando@fi.upm.es Administración UNIX: Gestión del software 13/1
Instalación desde el código fuente Compilación basada en autotools Este es el modo habitual de configurar y compilar herramientas del proyecto GNU. Tras descomprimir el código lo habitual es hacer./configure./make./make install Compilación basada en CMake CMake es un metasistema de compilación. Puede generar instrucciones de compilación para gmake, Visual Studio, XCode. En sistemas UNIX source/$ mkdir build; cd build source/build/$ cmake.. source/build/$ make install jhernando@fi.upm.es Administración UNIX: Gestión del software 14/1
Environment Modules (GNU) Modules Herramienta de gestión de software que permite instalar paquetes de software de manera aislada y configurar el entorno del shell de usuario. El software se puede instalar en directorios arbitarios. Un módulo, es un script tcl localizable en ${MODULESPATH} con las intrucciones que modifican el entorno de usuario. Mandatos module load nombre module unload nombre module list module list avail jhernando@fi.upm.es Administración UNIX: Gestión del software 15/1