Creando repositorios de software para openSUSE

Esto no es demasiado complicado, asi que vamos a explicar como se debe hacer. lo primero es instalar el software necesario, solo se necesita tener instalado el paquete createrepo, los demas asumo que ya los tienes instalados, sino mejor ve a reinstalar el sistema correctamente, asi que como asumo que gnupg y rpm estan instalados lo primero es instalar createrepo, para esto ejecutamos el comando:

Code:
sharwyn:~ # zypper in createrepo

Ahora hay que crear un directorio que contendra el repositorio, por ejemplo /srv/repository y dentro de el crearemos un subdirectorio por cada arquitectura en los paquetes rpm que contendra, por ejemplo, en mi caso cree i686, noarch y x86_64. Ahora copiamos los paquetes rpm a su respectivo directorio y creamos el repositorio utilizando el comando:

Code:
sharwyn:~ # createrepo -v /srv/repository

Ahora falta la seguridad del repositorio…

Hay dos niveles de seguridad, primero firmando el paquete y segundo firmando el archivo de contenido del repositorio. El primero previene que alguien cambie un paquete y el segundo que cambien el contenido del repositorio.

OK, vamos a ver como firmar los paquetes:

Una vez mas asumo que ya tienes creado un par de claves gpg. Firmar paquetes rpm es facil, lo primero es crear un archivo llamado .rpmmacros en tu home con el siguiente contenido:

Code:
%_signature gpg
%_gpg_name <key name>

Supongo que el contenido se explica solo. Esto te permite especificar diferentes claves para firmar tus paquetes. Despues de eso puedes firmar tus paquetes con el comando:

Code:
sharwyn:~ # rpm --addsign <package>

Para firmar el archivo de contenido del repositorio ve al directorio repodata dentro del repositorio y ejecuta el siguiente comando:

Code:
sharwyn:~ # gpg -a -u <user key> --detach-sign repomd.xml

Ahora el contenido esta firmado, pero la clave puede ser desconocida, asi que hay que exportarla al directorio repodata con el nombre repomd.xml.key. una vez hecho esto al iniciar YaST o zypper nos informara que la clave es desconocida y nos preguntara si confiamos en ella, le decimos que siempre confie y listo.

Code:
Retrieving repository 'repo-local' metadata [/]

New repository or package signing key received:
Key ID: 2505B400F5AD6959
Key Name: VampirD <vampird@xxxxxx.xxx.xx>
Key Fingerprint: D20F44645029C6E26370D672250AB40015AD6950
Key Created: Wed Aug 13 18:58:53 2008
Key Expires: (does not expire)
Repository: repo-local

Do you want to reject the key, trust temporarily, or trust always? [r/t/a/?] (r): a
Retrieving repository 'repo-local' metadata [done]
Building repository 'repo-local' cache [done]

=-=-=-=-=
Powered by Blogilo

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: