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

add-apt-repository: command not found

Ubuntu incluyó una forma muy simple de añadir nuevos repositorios de software para disponer de paquetes específicos o más recientes. Esto permite a muchas personas y empresas ofrecer repositorios de fácil instalación en el sistema, para dejar así sus paquetes disponibles. La forma de instalar estos nuevos repositorios es gracias al comando add-apt-repository. Aunque, una vez finalizada la instalación básica del sistema, éste nos puede fallar por que no tiene los paquetes necesarios instalado. Si obtenéis el siguiente error agregando un origen.
shell> add-apt-repository ppa:oisf/suricata-stable
  -su: add-apt-repository: command not found
La solución es sencilla, únicamente hay que instalar el paquete python-software-properties.
shell> apt-get install python-software-properties
Y volver a probar,
shell> add-apt-repository ppa:oisf/suricata-stable
You are about to add the following PPA to your system:
 suricata IDS stable packages
 More info: https://launchpad.net/~oisf/+archive/suricata-stable
Press [ENTER] to continue or ctrl-c to cancel adding it
...
En la última versión de Ubuntu Server, la 14.04, encontré un problema a la hora de usar add-apt-repository e instalar las dependencias para que funcionase. En éste caso, tuve que instalar el paquete software-properties-common,
shell> apt-get install software-properties-common
Y ya luego todo funcionó correctamente.
Leer más

Instalación de Oracle Java en Ubuntu

Una de las tareas que en su época se dio como más tediosa en sistemas GNU/Linux, fue la instalación de Java. Java la versión oficial, no el paquete libre, que ese viene en los repositorios, por lo que su instalación también es sencilla.
Sin embargo, gracias a la expansión de Ubuntu, la gente de Oracle creó una PPA que simplifica y mucho el proceso de instalación de Java. Los pasos a realizar, a continuación.

Instalación del nuevo repositorio

Como ya de dijo, Java está disponible para sistemas Debian desde el Oracle Java PPA, por lo que en primer lugar debemos de importarlo en nuestro sistema.
shell> add-apt-repository -y ppa:webupd8team/java
gpg: keyring `/tmp/tmp6gk849hs/secring.gpg' created
gpg: keyring `/tmp/tmp6gk849hs/pubring.gpg' created
gpg: requesting key EEA14886 from hkp server keyserver.ubuntu.com
gpg: /tmp/tmp6gk849hs/trustdb.gpg: trustdb created
gpg: key EEA14886: public key "Launchpad VLC" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
OK

Actualización de las fuentes

Como hemos añadido un nuevo lugar de fuentes, actualizamos el listado de paquetes,
shell> apt-get update

Instalación de Oracle Java

Ahora ya tenemos disponibles las diferentes versiones de Java que hay en los repositorios,
shell> apt-cache search oracle java
...
oracle-java6-installer - Oracle Java(TM) Development Kit 6
oracle-java6-set-default - Set Oracle JDK 6 as default Java
oracle-jdk7-installer - Oracle JDK7 Installer meta package
oracle-java7-installer - Oracle Java(TM) Development Kit 7
oracle-java7-set-default - Set Oracle JDK 7 as default Java
oracle-java8-installer - Oracle Java(TM) Development Kit 8
oracle-java8-set-default - Set Oracle JDK 8 as default Java
Por lo que seleccionamos la que queremos instalar y el resto será automático. Únicamente debemos de aceptar el acuerdo de licencia.
shell> apt-get install oracle-java7-installer

Comprobación

Cuando finalice la instalación, ya tenemos java y javac, entre otros, disponibles en el sistema
shell> javac -version
javac 1.7.0_72

shell> java -version
java version "1.7.0_72"
Leer más

Limitar velocidad de descarga para APT

Con los nuevos métodos de trabajo que se están implantando en entornos grandes, cada vez resulta más necesario tener un método de control que limite ciertos problemas de colapso de red. Uno de ellos es la instalación/actualización de paquetes en los servidores. Imaginaros que tenemos una red de 100 ordenadores con Debian/Ubuntu y decidimos instalar un nuevo paquete en todos. Herramientas como salt stack  hacen esta trabajo realmente sencillo y rápido,
shell> salt -G 'os:Debian' pkg.install vim
y mandar a 100 equipos descargar un mismo paquete en un mismo momento, puede provocar un colapso de red y ésta afectaría a todos los equipos y personas que estén en ella.
Para evitarlo, si empleamos herramientas de orquestación, por ejemplo para sistemas Debian, es muy recomendable configurar un máximo de velocidad de descarga desde los repositorios APT. Así evitaremos un sobre saturar de la red. Hacerlo es tan sencillo como crear el fichero /etc/apt/apt.conf.d/99limit con el siguiente contenido,
Acquire
{
   Queue-mode "access";
   http
   {
      Dl-Limit "25";
   };
};
Tras guardarlo, la próxima vez que empleemos apt, la velocidad de descarga se limitará a los kbs aquí establecidos (más o menos).
Leer más

Debian Squeeze LTS

Hace unos meses os hablé de que por fin Debian iba a tener una versión LTS (Long Term Support) y cómo activar dicho repositorio de seguridad. Puedes leer el artículo entero aquí.
Pues bien, hoy se dió a conocer una vulnerabilidad  que afecta a GNU/Linux, sí la de bash, de la que os hablaré con más detenimiento en otro momento. Quiero aprovechar para recordar que actualicéis.
Eso es lo más importante, un sistema actualizado es menos vulnerable. Aun así, si estáis empleando Debian Squeeze acordaros de incluir la línea de LTS en vuestro fichero sources.list y también, como recomendación instalar el paquete debian-security-support.
Lo primero será actualizar el sources.list, añadiendo lo siguiente,
deb http://ftp.debian.org/debian squeeze-lts main contrib
Para a continuación,
shell> apt-get update
shell> apt-get upgrade
Si no tenías este nuevo repositorio verás que se actualizan bastantes paquetes de interés, según la finalidad del sistema.

Aun así, no todos los paquetes incluidos en Debian Squeeze van a tener soporte LTS, sino que algunos terminarán por dejar de mantenerse. Para tener un listado de aquellos paquetes instalados en el equipo y que pueden no tener soporte, está el comando check-support-status. Para instalarlo,
shell> apt-get install debian-security-support
shell> check-support-status
Ended security support for one or more packages

Unfortunately, it has been necessary to end security support for some
packages before the end of the regular security maintenance life cycle.

The following packages found on this system are affected by this:

* Source:libplrpc-perl, ended on 2014-05-31 at version 0.2020-2
  Details: Not supported in squeeze LTS
  Affected binary package:
  - libplrpc-perl (installed version: 0.2020-2)

Limited security support for one or more packages

Unfortunately, it has been necessary to limit security support for some
packages.

The following packages found on this system are affected by this:

* Source:php5
  Details: See README.Debian.security for the PHP security policy
  Affected binary packages:
  - libapache2-mod-php5 (installed version: 5.3.3-7+squeeze21)
  - php5 (installed version: 5.3.3-7+squeeze21)
  - php5-cli (installed version: 5.3.3-7+squeeze21)
  - php5-common (installed version: 5.3.3-7+squeeze21)
  - php5-curl (installed version: 5.3.3-7+squeeze21)
  - php5-gd (installed version: 5.3.3-7+squeeze21)
  - php5-mysql (installed version: 5.3.3-7+squeeze21)

Tienes más información acerca de lo aquí comentado en howtoforge.com.
Leer más

Repositorios Debian squeeze LTS

Desde ya hace un tiempo se venía rumoreando y finalmente se hizo realidad: Debian 6.0 [squeeze] será la primera Debian con soporte LTS. Tras este anuncio por parte de la comunidad, era de esperar algún tipo de cambio o modificación y estos no se hicieron esperar.
Por un lado han creado una nueva lista oficial para brindar el soporte que se merece esta LTS. Te puedes suscribir a ella desde aquí.
Y por otro lado, quizás el cambio más importante de momento, es que se ha creado un nuevo repositorio para los paquetes LTS. Así que si empleas Debian squeeze y pretendes aprovechar este largo tiempo de soporte es hora de que edites tu fichero de repositorios y pongas el siguiente para binarios,
deb http://http.debian.net/debian squeeze-lts main contrib non-free
Y este otro si también deseas tener el código fuente de los paquetes,
deb-src http://http.debian.net/debian squeeze-lts main contrib non-free
Por cierto, Debian squeeze LTS tendrá soporte hasta el 6 de Febrero 2016.
Leer más

Instalación de paquetes en GNU/Linux

Por suerte, desde hace ya muchos años instalar o desinstalar paquetes en los diferentes sistemas operativos de base Linux se hizo mucho más sencillo. Al principio de los tiempos, instalar algo era casi para "nativos del código fuente". Aun recuerdo la época en la que había que compilar los binarios con todas sus dependencias. Conseguías más rendimiento, puede ser, si sabías lo que hacías, pero actualizar un paquete era casi misión imposible. El trabajo casi nunca compensaba el esfuerzo.
Por suerte, el mundo Linux avanzó y las principales distribuciones tienen desde hace mucho tiempo repositorios en los que ofrecen software ya compilado y empaquetado. Así, instalar o actualizar un paquete es una tarea muy sencilla. Pero por supuesto, cada distribución, optó por un método diferente y para nada homogéneo, ni de paquetes ni de instrucciones para la instalación.
A continuación os dejo aquí una tabla comparativa de los comandos que cada distribución tiene para hacer la misma tarea. En todos los casos, los paquetes a instalar vienen de los repositorios que estén configurados en cada uno de los sistemas.
Linux OS
search
install
update
remove
Debian
Ubuntu
Linux Mint
apt-cache search [pkg] apt-get install [pkg] apt-get upgrade apt-get remove [pkg]
Fedora
Red Hat
CentOS
yum search [pkg] yum install [pkg] yum update yum remove [pkg]
Mandriva
Mageia
urpmi -y [pkg] urpmi [pkg] urpmi-auto-select urpme [pkg]
OpenSuse zypper search [pkg] zypper install [pkg] zypper update zypper remove [pkg]
Arch pacman -Ss [pkg] pacman -S [pkg] pacman -Syu pacman -R [pkg]
Gentoo emerge -s [pkg] emerge [pkg] emerge -uD [pkg] emerge -C [pkg]
Es muy recomendable tener presente esta chuleta de ayuda siempre que tengáis que manejar más de un sistema de base Linux de una familia diferente.
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

Firmar paquete RPM local

Muy estrechamente relacionado con el tema de crear repositorios locales para RedHat/CentOS, está la necesidad de autenticar dichos repositorios y el contenido de los mismo. Está claro que si el repositorio se sirve vía http, podemos emplear https con un certificado válido para nuestra empresa y así ya tener autenticación de origen de datos, sin embargo no tenemos ninguna garantía de que los paquetes que vamos a instalar estén realmente firmados como es debido. Para ello, cada vez que creemos un paquete que se vaya a subir al repositorio, antes de hacerlo, deberíamos de firmarlo. En este post, vamos a ver cómo conseguirlo.
Primero comenzamos creando una clave gpg para el firmado. Obviamente esta clave es generada localmente, por lo que el certificado no estará aceptado por autoridades externas.
shellgpg --gen-key
gpg (GnuPG) 1.4.10; Copyright (C) 2008 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Por favor seleccione tipo de clave deseado:
  (1) RSA and RSA (default)
  (2) DSA and Elgamal
  (3) DSA (sólo firmar)
  (4) RSA (sólo firmar)
Su elección: 1
las claves RSA pueden tener entre 1024 y 4096 bits de longitud.
¿De qué tamaño quiere la clave? (2048)
El tamaño requerido es de 2048 bits
Por favor, especifique el período de validez de la clave.
  0 = la clave nunca caduca
    = la clave caduca en n días
  w = la clave caduca en n semanas
  m = la clave caduca en n meses
  y = la clave caduca en n años
¿Validez de la clave (0)? 0
La clave nunca caduca
¿Es correcto? (s/n) s
Necesita un identificador de usuario para identificar su clave. El programa
construye el identificador a partir del Nombre Real, Comentario y Dirección
de Correo Electrónico de esta forma:
    "Heinrich Heine (Der Dichter) "
Nombre y apellidos: Javier Terceiro
Dirección de correo electrónico: javier@miempresa.com
Comentario:
Ha seleccionado este ID de usuario:
    "Javier Terceiro "
¿Cambia (N)ombre, (C)omentario, (D)irección o (V)ale/(S)alir? V
Necesita una frase contraseña para proteger su clave secreta.

Es necesario generar muchos bytes aleatorios. Es una buena idea realizar
alguna otra tarea (trabajar en otra ventana/consola, mover el ratón, usar
la red y los discos) durante la generación de números primos. Esto da al
generador de números aleatorios mayor oportunidad de recoger suficiente
entropía.
..+++++......++++++++++
gpg: clave 1C5D59BF marcada como de confianza absoluta
claves pública y secreta creadas y firmadas.

gpg: comprobando base de datos de confianza
gpg: 3 dudosa(s) necesarias, 1 completa(s) necesarias,
modelo de confianza PGP
gpg: nivel: 0  validez: 1  firmada: 0  confianza: 0-, 0q, 0n, 0m, 0f, 1u
pub   2048R/1C5D59BF 2012-05-21
  Huella de clave = 2493 D660 1A83 12F5 0A50  2E71 8A82 1165 1C5D 59BF
uid                  Javier Terceiro 
sub   2048R/25A1D82A 2012-05-21
Una vez tengamos la firma creada, ya estamos preparados para firmar todos los paquetes que vayamos creando. Para ello, vamos a crear el fichero .rpmmacros en la home del usuario que los vaya a firmar. Dicho fichero tendrá el siguiente contenido.
%_signature gpg
%_gpg_name Repository Owner
Y ahora para firmar un paquete nuevo, únicamente hay que ejecutar,
shell> rpm --resign zabbix-server-1.8.12.src.rpm
Enter pass phrase:
Pass phrase is good.
zabbix-server-1.8.12.src.rpm
Y si ahora interesa saber si el fichero está correctamente firmado, simplemente,
shell> rpm -K zabbix-server-1.8.12.src.rpm
zabbix-server-1.8.12.src.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#1C5D59BF)
Como podéis ver algo muy simple de hacer y que te aporta ese extra de seguridad a los paquetes que tú mismo crees y que evitará que ante un ataque se sustituyan por otros infectados.

Leer más

Error de GPG: http://extras.ubuntu.com

Si obtenemos este error, es lógicamente por que nos falta la clave pública de dicho repositorio.
shell> apt-get update
....
Descargados 850 kB en 1seg. (508 kB/s)
Leyendo lista de paquetes... Hecho
W: Error de GPG: http://extras.ubuntu.com precise Release: Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible: NO_PUBKEY 16126D3A3E5C1192
La solución, importarla.
shell> gpg --ignore-time-conflict \
> --no-options \
> --no-default-keyring \
> --secret-keyring /tmp/tmp.s5o4mutMRY \
> --trustdb-name /etc/apt/trustdb.gpg \
> --keyring /etc/apt/trusted.gpg \
> --primary-keyring /etc/apt/trusted.gpg \
> --keyserver hkp://keyserver.ubuntu.com:80/ \
> --recv 16126D3A3E5C1192

Leer más

Instalar clave GPG para archive.debian.org

Si todavía tenéis algún equipo con debian lenny (o anterior) existe un repositorio oficial que permite la instalación de paquetes para vuestras máquinas. Dicho repositorio es archive.debian.org que contiene una copia de todos los paquetes de todas las distros de debian, precisamente para ayudar a poder seguir instalando paquetes en equipos muy desactualizados.
Pues bien, si estáis en este caso y por ejemplo lo queréis emplear para Debian Lenny, es muy simple de hacer. Primero hay que editar el fichero sources.list para cambiar el repositorio y dejarlo tal como sigue,
deb http://archive.debian.org/debian/ lenny main contrib non-free
Una vez esté el fichero ya editado, actualizamos la lista de paquetes,
shell> apt-get update
Des:1 http://archive.debian.org lenny Release.gpg [1034B]
Obj http://archive.debian.org lenny/main Translation-es
Ign http://archive.debian.org lenny/contrib Translation-es
Ign http://archive.debian.org lenny/non-free Translation-es
Obj http://archive.debian.org lenny Release
Des:2 http://archive.debian.org lenny Release [99,6kB]
Ign http://archive.debian.org lenny Release
Ign http://archive.debian.org lenny/main Packages/DiffIndex
Ign http://archive.debian.org lenny/contrib Packages/DiffIndex
Ign http://archive.debian.org lenny/non-free Packages/DiffIndex
Obj http://archive.debian.org lenny/main Packages
Obj http://archive.debian.org lenny/contrib Packages
Obj http://archive.debian.org lenny/non-free Packages
Descargados 101kB en 1s (89,7kB/s)
Leyendo lista de paquetes... Hecho
W: GPG error: http://archive.debian.org lenny Release: Las siguientes firmas fueron inválidas: KEYEXPIRED 1337087218
Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible: NO_PUBKEY AED4B06F473041FA
W: Tal vez quiera ejecutar 'apt-get update' para corregir estos problemas
Tras ello vemos que la clave GPG del nuevo repositorio no está instalada, así que simplemente la instalamos como una clave de cualquier otro repositorio debian,
shell> gpg --keyserver subkeys.pgp.net --recv-keys AED4B06F473041FA
gpg: solicitando clave 473041FA de hkp servidor subkeys.pgp.net
gpg: /root/.gnupg/trustdb.gpg: se ha creado base de datos de confianza
gpg: clave 473041FA: clave pública "Debian Archive Automatic Signing Key (6.0/squeeze) " importada
gpg: no se encuentran claves absolutamente fiables
gpg: Cantidad total procesada: 1
gpg:               importadas: 1  (RSA: 1)
shell> gpg --export --armor AED4B06F473041FA| apt-key add -
OK
Y listo!
shell> apt-get update
Des:1 http://archive.debian.org lenny Release.gpg [1034B]
Obj http://archive.debian.org lenny/main Translation-es
Ign http://archive.debian.org lenny/contrib Translation-es
Ign http://archive.debian.org lenny/non-free Translation-es
Obj http://archive.debian.org lenny Release
Ign http://archive.debian.org lenny/main Packages/DiffIndex
Ign http://archive.debian.org lenny/contrib Packages/DiffIndex
Ign http://archive.debian.org lenny/non-free Packages/DiffIndex
Obj http://archive.debian.org lenny/main Packages
Obj http://archive.debian.org lenny/contrib Packages
Obj http://archive.debian.org lenny/non-free Packages
Descargados 1034B en 0s (2036B/s)
Leyendo lista de paquetes... Hecho
Leer más

Creación de grupos de paquetes en repositorios RedHat

En un post anterior ya vimos cómo crear un repositorio local para equipos RedHat. En éste vamos a ver cómo poder aprovechar toda la potencia que dan los repositorios locales y el sistema de gestión de paquetes yum.
yum puede trabajar con paquetes individuales (rpm's) o con grupos de paquetes (colecciones de paquetes prefijadas), así que vamos a ver cómo podemos crear nuestro 'grupo de paquetes' locales, que simplifiquen una instalación partiendo de los paquetes que hemos creado previamente.
Primero, vamos a recordar cómo creamos el repositorio local,
shell> mkdir -p repo/i386 repo/noarch repo/i686 repo/SRPMS
shell> mv myrpm.noarch.rpm repo/noarch
shell> mv myrpm.src.rpm repo/SRPMS
shell> mv mybinrpm.i386.rpm repo/i386
shell> createrepo repo
Una vez tengamos el repositorio ya listo e indexado, es hora de crear el grupo de paquetes. Para ello, creamos un fichero xml con toda la definición del grupo. Por ejemplo, zabbixserver.xml el que tendrá todos los paquetes que dependan para la instalación de un zabbix-server personalizado en equipos RedHat. Los paquetes, recordemos, son locales. El contenido del fichero, sería similar al siguiente,
<zabbixserver>
<!--  <meta> -->
<!-- Meta information will go here eventually -->
<!--  </meta> -->
  <group>
    <id>zabbix_server</id>
    <name>Zabbix Server</name>
    <default>true</default>
    <description>Default RPMS from zabbix-server</description>
    <uservisible>true</uservisible>
    <packagelist>
      <packagereq type="default">zabbix-server</packagereq>
      <packagereq type="optional">percona-server</packagereq>
    </packagelist>
  </group>
</zabbixserver>
Ahora es necesario recrear nuevamente el repositorio local, pero esta vez pasándole el fichero de grupo a la hora de realizar la indexación. Tal como sigue,
shell> createrepo -g zabbixserver.xml repo
Una vez termine, ya podemos tirar de nuestro repositorio local e instalar con una sola instrucción todos los paquetes del grupo que acabamos de crear.
shell> yum groupinstall zabbixserver

Leer más

Fail, NO_PUBKEY DFD993306D849617

En algunas ocasiones al intentar instalar algún paquete desde un repositorio o al intentar actualizar nuestro mirror local, puede que obtengamos una salida similar a algunas de las que siguen. Ésto significa que la clave pública del servidor no es conocida por nuestro equipo (cliente) y por lo tanto no se confía en dicho repositorio.
En caso de querer instalar software siempre se puede ignorar esta advertencia, pero si lo vamos a emplear el repositorio habitualmente, lo mejor es optar por hacer dicha clave conocida de nuestro sistema, para evitar este molesto warning cada vez.
[GNUPG:] ERRSIG DFD993306D849617 1 2 00 1320145506 9
[GNUPG:] NO_PUBKEY DFD993306D849617
gpgv: Imposible comprobar la firma: Clave pública no encontrada
Release signature does not verify.
O
W: Error de GPG: http://gq.net.ru squeeze Release: Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible: NO_PUBKEY 4514FF91C64C9D77
Vamos ahora a descargar la clave e importarla en nuestro sistema. Primero descargamos la clave GPG de un servidor de confianza, por ejemplo pgpkeys.mit.edu. Para ello, únicamente necesitamos especificarle la clave al siguiente comando,
shell> gpg --keyserver hkp://pgpkeys.mit.edu --recv-keys DFD993306D849617
gpg: solicitando clave 6D849617 de hkp servidor pgpkeys.mit.edu
gpg: clave 6D849617: "Debian-Volatile Archive Automatic Signing Key (5.0/lenny)" 2 firmas nuevas
gpg: no se encuentran claves absolutamente fiables
gpg: Cantidad total procesada: 1
gpg: nuevas firmas: 2
Ahora sólo queda importarla en el sistema apt. Para ello, empleamos el comando apt-key, tal como sigue.
shell> gpg --armor --export DFD993306D849617 | apt-key add -
OK
Leer más

HowTo create a new local mirror for debian

Si estás trabajando en una red local con varios servidores Debian, lo más óptimo, pensando en nuevas instalaciones y también en actualizaciones es mantener un pequeño repositorio local con una copia completa del oficial. Tener un repositorio local es bueno, pues evita tener que descargar los paquetes una y otra vez en todos los equipos para actualizar y también, a la hora de nuevas instalaciones, éstas se hacen mucho más rápido.
Vamos por lo tanto a explicar cómo hacer una copia del repositorio oficial, empleando el comando debmirror, ya creado para dicho propósito. Por lo tanto, si nos interesa tener una copia de todo el software principal de debian, podemos ejecutar el siguiente comando.
/usr/bin/debmirror --ignore-release-gpg --postcleanup --method=rsync \
--nosource --host=ftp.fi.debian.org --root :debian \
--progress --arch=i386,amd64 --dist=lenny,squeeze \
--rsync-options="-aIL --partial" --section=main,contrib /srv/debian
Una explicación sencilla de los principales parámetros es:
  • --ignore-release-gpg
    Ignora la clave GPG del servidor.
  • --method
    El método de copia que se va a usar. Los más típicos son rsync, http o ftp.
    Mejor rsync.
  • --nosource
    No descarga el código fuente de los paquetes. Excepto que vayamos a compilar, esto no nos interesa para un repositorio local.
  • --host
    El servidor del que se van a descargar las copias.
  • --root
    La ruta donde están los archivos.
  • --arch
    Las arquetecturas que se van a descargar. Las más empleadas en la actualidad son i386 y amd64.
  • --dist
    El nombre de las distribuciones que se quieran descargar.
    En nuestro caso lenny (5.x) y squeeze (6.x).
  • --rsync-options
    Opciones especiales que se le pasan a rsync en caso de que éste sea el método empleado para la sincronización.
  • --section
    Las secciones (main, contrib y non-free) que se desean descargar.
Puesto que la seguridad nos interesa para nuestros equipos, es importante también tener una copia del repositorio de seguridad en local. Para ello, únicamente habrá que cambiar los valores de --root y de --dist, tal como sigue.
/usr/bin/debmirror --ignore-release-gpg --postcleanup --method=rsync \
--nosource --host=security.debian.org --root :debian-security \
--progress --arch=i386,amd64 --rsync-options="-aIL --partial" \
--dist=lenny/updates,squeeze/updates --section=main,contrib /srv/security
Si nos interesa tener una copia de debian-volatile entonces,
/usr/bin/debmirror --ignore-release-gpg --postcleanup --method=rsync \
--nosource --host=ftp.fi.debian.org --root :debian-volatile \
--progress --arch=i386,amd64 --rsync-options="-aIL --partial" \
--dist=lenny/volatile,lenny-proposed-updates/volatile /srv/volatile
Ahora que ya tenemos todo listo, sólo falta poder dejar los archivos descargados accesibles para los demás equipos. Para poder hacerlo, podremos optar por montar un servidor ftp (puerto 21) o un servidor web (puerto 80). En este caso, para dejarlo lo más simple, elegiremos un servidor web. Instalamos apache2, por ser más conocido.
shell> apt-get install apache2
Y ahora, para dejarlo todo listo y simplificado, únicamente hacemos los link's simbólicos entre los archivos descargados en /srv a /var/www, tal como sigue.
shell> ln -s /srv/debian/ /var/www/debian
shell> ln -s /srv/security/ /var/www/security
shell> ln -s /srv/volatile/ /var/www/volatile
shell> ls -l /var/www/
lrwxrwxrwx 1 root root        12 May 25  2011 debian -> /srv/debian/
lrwxrwxrwx 1 root root        14 May 27  2011 security -> /srv/security/
lrwxrwxrwx 1 root root        14 May 30  2011 volatile -> /srv/volatile/
Lo único que falta es darle un nombre a este equipo para poder atacarlo. Si tenemos en la organización un servidor DNS, habría que crear una nueva entrada, sino, simplemente en el fichero /etc/hosts se añade una nueva línea como la que sigue, pero cambiando la IP por la que corresponda en vuestro caso.
192.168.1.150 mirror.server.loc mirror
Y ahora, en el fichero /etc/apt/sources.list, dejamos las siguientes entradas, para que apt trabaje perfectamente contra el repositorio local.
deb http://mirror.server.loc/debian squeeze main contrib
deb http://mirror.server.loc/security squeeze/updates main contrib
Un ejemplo de funcionamiento correcto, al realizar la actualización de los paquetes disponibles,
shell> apt-get update
Obj http://mirror.server.loc squeeze/updates Release.gpg
Obj http://mirror.server.loc squeeze Release.gpg
Ign http://mirror.domain.loc/debian/ squeeze/contrib Translation-en
Ign http://mirror.server.loc/debian/ squeeze/contrib Translation-es
Ign http://mirror.server.loc/debian/ squeeze/main Translation-en
Ign http://mirror.server.loc/debian/ squeeze/main Translation-es
Ign http://mirror.server.loc/debian/ squeeze/non-free Translation-en
Ign http://mirror.server.loc/debian/ squeeze/non-free Translation-es
Obj http://mirror.server.loc squeeze/updates Release
Obj http://mirror.server.loc squeeze Release
Obj http://mirror.server.loc squeeze/updates/main i386 Packages
Obj http://mirror.server.loc squeeze/updates/contrib i386 Packages
Obj http://mirror.server.loc squeeze/updates/non-free i386 Packages
Obj http://mirror.server.loc squeeze/main i386 Packages
Obj http://mirror.server.loc squeeze/contrib i386 Packages
Obj http://mirror.server.loc squeeze/non-free i386 Packages
Leyendo lista de paquetes... Hecho

Nota: No se mencionó, pero es obvio, los comandos de actualización hay que ejecutarlos cada cierto tiempo para poder mantener el repositorio local actualizado. Al emplear rsync, únicamente los paquetes que cambien serán transferidos, ahorrándonos ancho de banda.
Se puede crear un pequeño script y dejarlo en crontab para que se ejecute diariamente o semanalmente.
Leer más

yum priorities

El gestor de paquetes de Red Hat permite establecer prioridades entre los diferentes repositorios que tenga configurados para evitar la colisión de paquetes en caso de producirse. Esto por ejemplo es muy útil si usas repositorios no oificiales, por ejemplo EPEL. En éste suele haber todos los paquetes que hay en el repositorio oficial y a mayores otros muchos paquetes que suelen ser necesarios según para que cosas.
Para evitar el problema de los conflictos entre paquetes, la solución, priorizar repositorios.
Para poder hacer esto, simplemente hay que instalar el paquete yum-priorities y activar  el uso de prioridades por yum. Para ello,
shell> yum install yum-priorities
shell> vi /etc/yum/pluginconf.d/priorities.conf
  [main]
  enabled=1
Con las prioridades activadas, ahora sólo falta configurarlas para los diferentes repositorios. Estas pueden ir de 1 a 99, siendo la prioridad más alta cuanto más bajo sea el número.
Un ejemplo de configuración usando prioridades a continuación.
shell> vi /etc/etc/yum.repos.d/rhdp.repo
  [epel-testing]
  name=Extra Packages - Testing
  mirrorlist=https://mirrors.fedoraproject.org/[...]
  gpgcheck=1
  gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
  priority=50

[epel-testing-debuginfo]
  name=Extra Packages - Testing - Debug
  mirrorlist=https://mirrors.fedoraproject.org/[...]
  gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
  gpgcheck=1
  priority=50

  [epel-testing-source]
  name=Extra Packages - Testing - Source
  mirrorlist=https://mirrors.fedoraproject.org/[...]
  gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
  gpgcheck=1
  priority=50

  [epel]
  name=Extra Packages for Enterprise Linux 6
  mirrorlist=https://mirrors.fedoraproject.org/[...]
  gpgcheck=1
  gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
  priority=15

  [epel-debuginfo]
  name=Extra Packages for Enterprise Linux 6 - Debug
  mirrorlist=https://mirrors.fedoraproject.org/[...]
  gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
  gpgcheck=1
  priority=15

  [epel-source]
  name=Extra Packages for Enterprise Linux 6 - Source
  mirrorlist=https://mirrors.fedoraproject.org/[...]
  gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
  gpgcheck=1
  priority=15

  [Red Hat Official]
  name=axinrhrepo
  mirrorlist=http://mirror.redhat.com/[...]
  priority=1
Leer más

Repositorios debian backports

La mayor crítica que se suele escuchar de debian es que los paquetes de la versión estable suelen ser muy antiguos respecto del resto de distros. Esto es motivado por la seguridad que tienen los paquetes en la rama estable y la gran cantidad de filtros que pasan antes de entrar en dicha rama. Lo que para servidores puede ser una buena noticia, menos bug's, puede ser en ocasiones un problema si necesitas una versión más actual de un paquete determinado. Esto se soluciona, en muchos casos con el repositorio backports de debian, que tiene versiones más actuales compiladas con opciones de la versión estable. Así podremos instalar en una squeeze, actual estable, un paquete de testing o unstable, pero con las mismas librerías de la rama estable. Para agregar este nuevo repositorio, únicamente habrá que añadir la siguiente línea a nuestro /etc/apt/sources.list.
deb http://backports.debian.org/debian-backports squeeze-backports main
Con el nuevo repositorio ya en el sistema, cada vez que queramos instalar un nuevo paquete disponible desde backports, simplemente,
shell> apt-get update
shell> apt-get -t squeeze-backports install "paquete"

Así mantendremos nuestro sistema siempre en la versión estable y sólo "tiraremos" del nuevo repositorio si se lo especificamos.
En caso de que nos interese tener sus paquetes por defecto y que se actualice todo el equipo con estos, habrá que modificar las preferencias (/etc/apt/preferences.d/backports) del sistema con el siguiente contenido:
Package: *
Pin: release a=squeeze-backports
Pin-Priority: 200

Más info en:
http://backports-master.debian.org/Instructions
Leer más

Crear repositorio RedHat local


Hay veces que es necesario por determinadas razones mantener algunos paquetes a nivel local para una distribución. Aunque no suele ser el mejor caso, puesto que las actualizaciones dependen de nosotros y no de un fabricante, hay veces que no queda más remedio, por lo que poder contar con un repositorio local en vez de tener que recurrir a la instalación manual de los .rpm es la mejor idea.

La creación de un repositorio para RedHat 5 es simple y se basa en 3 paquetes principalmente, que son:
  • createrepo: Paquete que se encarga de crear los repositorios para YUM.
  • repoview: Paquete que se encarga de generar las páginas con el contenido del repositorio. Dichas páginas están dentro de la carpeta repoview, y permiten la navegación por los paquetes del repositorio.
  • httpd: Servidor web apache, para servir el repositorio y la web con la información de los paquetes.
El repositorio se creará en una RedHat 5, con los archivos EPEL disponibles. El primer paso será la instalación de los paquetes necesarios.
shell> yum install createrepo repoview httpd
Leer más

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios