Cómo crear un repositorio de rpm personalizado en Linux

Cómo crear un repositorio de rpm personalizado en Linux

RPM es el acrónimo de Administrador de paquetes de RPM: Es el Administrador de paquetes de bajo nivel en uso en toda la familia de distribuciones Red Hat, como Fedora y Red Hat Enterprise Linux.

Un paquete RPM es un paquete que contiene software que debe instalarse utilizando este sistema de administración de paquetes, y los paquetes de RPM generalmente se distribuyen a través de repositorios de software. En este tutorial aprendemos cómo crear un repositorio de rpm personalizado y cómo configurar nuestra distribución para usarla como fuente de software.

En este tutorial aprenderás:

  • Cómo crear un repositorio de rpm
  • Cómo usar el repositorio como fuente de software

Requisitos y convenciones de software utilizados

Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Cualquier distribución de la familia Red Hat
Software DNF, CreateRepo
Otro Privilegios administrativos para configurar el repositorio
Convenciones # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
$-Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Instalación de software



En aras de este tutorial, crearemos nuestro repositorio personalizado en una máquina local con IP 192.168.0.39 que se utilizará como servidor HTTP. En esta máquina, lo primero que debemos hacer es instalar el creador paquete. La distribución instalada en la máquina remota no necesita ser una distribución basada en RPM, siempre que dicho paquete esté disponible. En nuestro caso, por ejemplo, el sistema instalado en el servidor es Debian, por lo que para instalar el paquete necesitamos ejecutar el siguiente comando:

$ sudo apt-get actualización && sudo apt-get install crereaterpo 

Como dijimos antes, en nuestro ejemplo específico, queremos que el software alojado en nuestro repositorio personalizado sea accesible a través del protocolo HTTP, por lo tanto, necesitamos instalar un servidor HTTP; En este caso trabajaremos con Apache. Instalarlo en Debian, es solo cuestión de ejecutar:

$ sudo apt-get install apache2 

Una vez que se instalan los paquetes, podemos continuar y crear nuestro repositorio de RPM en pocos pasos muy simples.

Creando el repositorio

El apache virtualhost predeterminado Raiz del documento creado cuando Apache está instalado en Debian es /var/www/html. En este punto, podemos elegir crear un virtualhost para nuestro repositorio, o simplemente crear el directorio de repositorio como parte
del predeterminado. En aras de la simplicidad, en este tutorial exploraremos la última opción:

$ sudo mkdir/var/www/html/repo 

El repositorio Directorio que creamos con el comando anterior, dentro del VirtualHost predeterminado Raiz del documento, organizará nuestros paquetes y será la base de nuestro repositorio. Para estructurarlo mejor, ahora queremos crear algunos subdirectorios
llamado por la distribución, su versión y la arquitectura de los paquetes que queremos poner a disposición. Supongamos, por ejemplo, queremos usar el repositorio en Fedora 33 x68_64, Deberíamos ejecutar el siguiente comando:

$ sudo mkdir -p/var/www/html/repo/fedora/comunes/33/x86_64 


El siguiente paso consiste en poblar el repositorio. Todo lo que tenemos que hacer es colocar los paquetes que queremos poner a disposición, dentro del directorio de repositorio apropiado. En este caso, como ejemplo, llenaré el repositorio con un paquete obtenido compilando el editor VScode de la fuente. El paquete se llama código-1.56.0-1617183449.El8.x86_64.rpm. Una vez que se copia, nuestra estructura de archivos debe verse así:

Repo └── Fedora └── liberaciones └─ 33 └── x86_64 └── Código-1.56.0-1617183449.El8.x86_64.rpm 

Con nuestro repositorio poblado, todo lo que queremos hacer es ejecutar el creador Comando dentro del directorio que contiene los paquetes. En este caso correríamos:

$ sudo creeaterpo/var/www/html/repo/fedora/comunes/33/x86_64 

El comando creará los metadatos del repositorio dentro de un directorio llamado repodata, Basado en los paquetes contenidos en el directorio de destino y se debe relanzar cada vez que se actualice el repositorio con nuevos paquetes o paquetes antiguos. Una vez que se lance el comando, nuestra estructura de directorio se verá como:

Repo └── Fedora └── liberaciones └─ 33 └── x86_64 ├── Código-1.56.0-1617183449.El8.x86_64.RPM └── Repodata ├── 22AB1D1D123BB7D7CDE556BF8A8AC4DAF9CDB75572F40EBDD2F399908CB7F6B9-OTROS.xml.GZ ├── 26ED9B63868B2E0263DFA817E21921C4E7542C1BE9F6B7875381BBA6BD78D1C6-Primario.sqlite.BZ2 ├─se 50FC300A761812761CF9A8413A619DA23CF336D49999753568CE19A97C025D44- OTRO.sqlite.BZ2 ├── A523F54B5FCD0720C182969F991F51E125728A361F31237725DC9418D5E126EAPRIMARIO.xml.GZ ├── AF2FA9EA5DEAFFCA5FFC9F3E524155DEFA8CFA5656962845A45C8B0E984F3E19 Filelistas.sqlite.BZ2 ├── F95849CF860F1184B97D30000EA1F9F1C35EDD6D625DCD387453187510DD4A18 Filelistas.xml.GZ └── REPOMD.xml 

Nuestro repositorio fue creado con éxito. Ahora tenemos que configurar nuestra distribución para usarla como fuente de software.

Agregar el repositorio como fuente de software



Pasemos a nuestra distribución basada en RPM y veamos cómo configurarla para usar nuestro repositorio personalizado como fuente de software. Los archivos de configuración del repositorio se encuentran en el /etc/yum.repositar.d directorio, y debe tener el
.repositorio extensión. Al mirar dentro del directorio podemos ver los ya existentes:

$ ls/etc/yum/repos.D Fedora-Cisco-Openh264.Repo Fedora-Updates-Testing-modular.repositorio.Repo Fedora-Updates pruebas.repositorio.Repo RPMFusion Free.Repo Fedora-Updates-modular.Repo RPMFusion-Free-Ucites.Repo Fedora-Updates.Repo RPMFusion-Free-Updates-Testing.repositorio 

Ahora, creemos nuestra configuración de repositorio personalizada. Dentro del archivo, como un conjunto mínimo de información, debemos proporcionar:

  • La ID de repositorio
  • El nombre del repositorio
  • Un repositorio baseurl
  • El estado del repositorio
  • Si verificar la firma GPG de los paquetes o no

Guardaremos dicha información en un archivo llamado Ownrepo.repositorio, Aquí está su contenido:

[OwnRepo] name = Own Repository BaseUrl = http: // 192.168.0.39/Repo/Fedora/Lotess/$ Releasever/$ Basearch habilitado = 1 gpgcheck = 0 

La definición informada entre paréntesis ([OwnRepo]) es la ID del repositorio y debe ser único en todas las definiciones de repositorio. Con el nombre clave proporcionamos un nombre legible para humanos para el repositorio como cadena. Esto es opcional; Si no se proporciona un nombre, la ID del repositorio se utilizará también como nombre.

Con el base clave especificamos una lista de las URL para el repositorio. Las URL deben estar separadas por un espacio o una coma. En nuestro ejemplo, acabamos de proporcionar una sola URL, pero puede notar que usamos dos variables:

  • $ Releasever
  • $ Basearch


La expansión del primero, $ Releasever, resultará en la versión de lanzamiento del sistema operativo, en este caso 33, Dado que estamos instalando nuestro repositorio en un sistema Fedora 33. La segunda variable, $ Basearch, se expandirá en una cadena que representa la arquitectura base del sistema, que en nuestro caso es x86_64.

El activado La clave requiere un booleano valor que determina si el repositorio debe considerarse activo o no. La última clave que usamos es gpgcheck: También requiere un valor booleano y se usa para determinar si se debe realizar una verificación de firma GPG en los paquetes instalados desde el repositorio. En nuestro ejemplo, simplemente deshabilitamos el cheque, ya que el repositorio está destinado solo a uso personal.

Ahora que nuestro repositorio está configurado, podemos intentar instalar el código Paquete de él, simplemente ejecutando:

$ sudo DNF Código de instalación propio Repositorio 451 kb/s | 13 KB 00:00 Dependencias resueltas. ==================================================== ==================================================== ============== Package Architecture Version Size ================================== ==================================================== ================================= Instalación: Código X86_64 1.56.0-1617183449.El8 Ownrepo 100 m Resumen de transacción ============================================== ==================================================== ==================== Instale 1 paquete Tamaño total de descarga: 100 m Tamaño instalado: 294 m está bien [y/n]: 

Una vez que proporcionamos una respuesta afirmativa a la solicitud y lo confirme, el paquete se instalará en nuestro sistema.

Conclusiones

En este artículo aprendimos lo fácil que es crear un repositorio de rpm personalizado con el creador Utilidad, y vimos cómo crear un archivo de configuración DNF en nuestra distribución para usarlo una fuente de software. Vimos un subconjunto mínimo de
las claves que se pueden usar en la configuración del repositorio; Para una lista más detallada, puede consultar la documentación oficial de DNF.

Tutoriales de Linux relacionados:

  • Cosas para instalar en Ubuntu 20.04
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Descarga de Linux
  • Mint 20: Mejor que Ubuntu y Microsoft Windows?
  • ¿Puede Linux obtener virus?? Explorando la vulnerabilidad de Linux ..
  • Mastering Bash Script Loops
  • Cosas que hacer después de instalar Ubuntu 22.04 Jellyfish de Jammy ..
  • Ubuntu 20.04 trucos y cosas que quizás no sepas
  • Cosas para instalar en Ubuntu 22.04