Mostrando entradas con la etiqueta dpkg. Mostrar todas las entradas
Mostrando entradas con la etiqueta dpkg. Mostrar todas las entradas

dpkg: warning: package not in database

Si tienes un sistema perfectamente instalado y funcionando y con todos los paquetes que necesitas, una de las formas más cómodos que Debian/Ubuntu ofrece para sacar un listado de los paquetes instalados y poder pasárselos a otro sistema para que quede con la mismos es empleando el comando dpkg.
Lo primero es sacar el listado de los paquetes del servidor origen, tal como sigue:
shell> dpkg --get-selections > packages.list
A continuación, en el nuevo servidor los importamos e instalamos,
shell> dpkg --set-selections < packages.list
shell> apt-get dselect-upgrade

Si durante este proceso aparece este error,
dpkg: warning: package not in database
La solución es relativamente sencilla,
shell> apt-get install dselect
shell> dpkg --set-selections < packages.list
shell> apt-get dselect-upgrade
Y ya tenemos una copia de todos los paquetes instalados en el sistema origen en el sistema destino.
Leer más

Crear un repositorio local para Debian/Ubuntu

Los sistemas Debian/Ubuntu emplean los paquetes .deb, que entre sus mejores características destaca la gestión de dependencias entre paquetes. Cada paquete incluye una serie de reglas de instalación y dependencias de otros paquetes, por lo que se garantizar su funcionamiento si dicho paquete está bien creado.
Como usuarios de sistemas Debian, podemos crear nuestros propios paquetes y empaquetarlos para que su instalación sea sencilla. Hace tiempo ya hablamos de cómo crear nuestra copia de los repositorios oficiales de Debian y hoy vamos a ver cómo poder crear nuestro propio repositorio, pero con los paquetes que creamos nosotros mismos.
Pero, ¿qué ventajas tiene crear un repositorio para los paquetes locales? Entre otras, podemos destacar las dos siguientes,
  • Resolución de dependencias
    Los paquetes instalados vía apt-get hacen la resolución de dependencias automáticamente, mientras que los instalados con dpkg no. Si tiene dependencias sin cumplir habría que ejecutar
    shell> apt-get -f install
    
  • Envío de paquetes a los equipos
    Otra de las principales ventajas es que no sería necesario copiar un paquete al equipo en el que queramos instalarlo. apt se encargará de hacerlo por nosotros.
Pues bien, vamos por lo tanto a crear nuestro propio repositorio con los paquetes que tengamos a mano. Estos pueden ser tanto oficiales como creados por nosotros. El único requisito, que sean .deb correctos. Nuestro repositorio lo vamos a crear bajo /var/www/repo y luego lo dejaremos accesible vía http. Lo primero es instalar el software necesario, en caso de que no esté previamente instalado.
shell> apt-get install dpkg-dev
A continuación copiamos todos los paquetes que nos interese a la raíz del nuevo repositorio.
shell> cp *.deb /var/www/repo
Ahora nos movemos al directorio del repositorio
shell> cd /var/www/repo
y ejecutamos el comando dpkg-scanpackages tal que así,
shell> dpkg-scanpackages . /dev/null | gzip > Packages.gz
Con lo que acabamos de crear un índice de paquetes, con los paquetes que hay en nuestro repositorio. Este índice es necesario, ya que es el que leen los sistemas Debian al ejecutar apt-get update.
Ya para finalizar, simplemente queda por añadir la URL que resuelva vuestra máquina a los sources.list de cada una de las máquinas en las que deseéis emplear vuestros paquetes.

Nota: El último paso hay que ejecutarlo siempre que se añada un nuevo paquete al repositorio local.

La entrada Crear un repositorio local para Debian/Ubuntu la puedes leer en El mundo en bits.
Leer más

dpkg cheat sheet

La tercera de las chuletas que espero que a alguien le sirva de ayuda es sobre el funcionamiento más habitual de dpkg. dpkg es una herramienta para la instalación, desinstalación, compilación y manipulación de los paquetes en sistemas Debian.
Las opciones que más habitualmente se emplean son:




  • Instalación de un paquete
    shell> dpkg -i package
    
  • Actualización de un paquete
    shell> dpkg -i package
    
  • Instalación de todos los paquete de un directorio
    shell> dpkg -R /ruta/paquetes/
    
  • Desinstalación de un paquete (conservando configuraciones)
    shell> dpkg -r package
    
  • Desinstalación de un paquete (incluidas configuraciones)
    shell> dpkg -P package
    
  • Listado de paquetes instalados
    shell> dpkg -l
    
  • Listado de paquetes que coinciden con nombre
    shell> dpkg -l package
    
  • Encontrar paquete que provee los ficheros
    shell> dpkg -L package
    
  • Listado de ficheros de paquete
    shell> dpkg -c package
    
  • Encontrar qué paquete es el "dueño" del fichero
    shell> dpkg -S /ruta/file
    
  • Listar propiedades del paquete (grupo, versión, mantenedor, arquitectura, etc.)
    shell> dpkg -p package
    
  • Listar contenido de un paquete no instalado
    shell> dpkg --contents package.deb
    
  • Extraer información de un paquete
    shell> dpkg -I package.deb
    
  • Retener actualización de paquete
    shell> echo "package hold" | dpkg --set-selections
    
  • Obtener estado de todos los paquetes
    shell> dpkg --get-selections
    
  • Compilar un paquete  desde el árbol de Debian
    shell> dpkg-buildpacakge package
    
  • Corregir dependencias tras instalación fallida
    shell> dpkg --configure --pending
    
  • Extraer contenido de un paquete
    shell> dpkg -x package.deb
    
  • Hacer una copia de las selecciones de los paquetes
    shell> dpkg --get-selections > my_packages
    
  • Instalar paquetes seleccionados
    shell> dpkg --clear-selections
    shell> dpkg --set-selections < my_packages
    
Leer más

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios