Como criar um repositório de RPM personalizado no Linux

Como criar um repositório de RPM personalizado no Linux

RPM é o acrônimo de RPM Package Manager: É o gerente de pacotes de baixo nível em uso em toda a família de distribuições Red Hat, como Fedora e Red Hat Enterprise Linux.

Um pacote de RPM é um pacote que contém software que deve ser instalado usando este sistema de gerenciamento de pacotes, e os pacotes de RPM geralmente são distribuídos por meio de repositórios de software. Neste tutorial, aprendemos a criar um repositório de RPM personalizado e como configurar nossa distribuição para usá -lo como uma fonte de software.

Neste tutorial, você aprenderá:

  • Como criar um repositório de RPM
  • Como usar o repositório como uma fonte de software

Requisitos de software e convenções usadas

Requisitos de software e convenções de linha de comando Linux
Categoria Requisitos, convenções ou versão de software usada
Sistema Qualquer distribuição da família Red Hat
Programas DNF, CreaterEpo
Outro Privilégios administrativos para configurar o repositório
Convenções # - requer que os comandos linux -comidos sejam executados com privilégios de raiz diretamente como usuário root ou por uso de sudo comando
$-exige que o Linux-Commands seja executado como um usuário não privilegiado regular

Instalação de software



Para o bem deste tutorial, criaremos nosso repositório personalizado em uma máquina local com IP 192.168.0.39 que usará como um servidor HTTP. Nesta máquina, a primeira coisa que precisamos fazer é instalar o CreaterEpo pacote. A distribuição instalada na máquina remota não precisa ser uma distribuição baseada em RPM, desde que o pacote esteja disponível. No nosso caso, por exemplo, o sistema instalado no servidor é Debian, para instalar o pacote, precisamos executar o seguinte comando:

$ sudo apt-get update && sudo apt-get install createropepo 

Como dissemos antes, em nosso exemplo específico, queremos fazer com que o software hospedado em nosso repositório personalizado seja acessível através do protocolo HTTP; portanto, precisamos instalar um servidor HTTP; Nesse caso, trabalharemos com o Apache. Instalando -o no Debian, é apenas uma questão de correr:

$ sudo apt-get install apache2 

Depois que os pacotes forem instalados, podemos prosseguir e criar nosso repositório de RPM em poucas etapas muito simples.

Criando o repositório

O Apache Virtualhost padrão Documentroot criado quando o Apache é instalado no Debian é /var/www/html. Neste ponto, podemos optar por criar um Host virtual para o nosso repositório ou simplesmente criar o diretório do repositório como parte
do padrão. Por uma questão de simplicidade, neste tutorial, exploraremos a última opção:

$ sudo mkdir/var/www/html/repo 

O repo Diretório que criamos com o comando acima, dentro do VirtualHost padrão Documentroot, hospedará nossos pacotes e será a base de nosso repositório. Para estruturá -lo melhor, agora queremos criar alguns subdiretos
Nomeado após a distribuição, sua versão e a arquitetura dos pacotes que queremos disponibilizar. Suponha, por exemplo, queremos usar o repositório em Fedora 33 x68_64, Devemos executar o seguinte comando:

$ sudo mkdir -p/var/www/html/repo/fedora/liberações/33/x86_64 


O próximo passo consiste em preencher o repositório. Tudo o que precisamos fazer é colocar os pacotes que queremos disponibilizar, dentro do diretório de repositório apropriado. Nesse caso, como exemplo, preencherei o repositório com um pacote obtido compilando o editor do VSCode da fonte. O pacote é chamado Código-1.56.0-1617183449.EL8.x86_64.RPM. Uma vez copiado, nossa estrutura de arquivos deve ficar assim:

repo └── Fedora └── lançamentos └── 33 └── x86_64 └── Código-1.56.0-1617183449.EL8.x86_64.RPM 

Com o nosso repositório preenchido, tudo o que queremos fazer é executar o CreaterEpo comando dentro do diretório que contém os pacotes. Nesse caso, teríamos executado:

$ sudo creteropepo/var/www/html/repo/fedora/liberações/33/x86_64 

O comando criará os metadados do repositório dentro de um diretório nomeado REPODATA, Com base nos pacotes contidos no diretório de destino e deve ser relançado cada vez que o repositório é atualizado com novos pacotes ou pacotes antigos são removidos. Depois que o comando for lançado, nossa estrutura de diretório será:

repo └── Fedora └── lançamentos └── 33 └── x86_64 ├── Código-1.56.0-1617183449.EL8.x86_64.rpm └── repodata ├── 22AB1D1D123BB7D7CDE556BF8A8AC4DAF9CDB75572F40EBDD2F399908CB7F6B9-OTER.xml.gz ├── 26ED9B63868B2E0263DFA817E21921C4E7542C1BE9F6B7875381BBA6BD78D1C6-PRIMARY.sqlite.BZ2 ├── 50FC300A761812761CF9A8413A619DA23CF336D49999753568CE19A97C025D44-Other.sqlite.BZ2 ├── A523F54B5FCD0720C182969F991F51E125728A361F31237725DC9418D5E126EA-PRIMÁRIO.xml.GZ ├── AF2FA9EA5DEAFFCA5FFC9F3E524155DEFA8CFA5656962845A45C8B0E984F3E19-FILELISTAS.sqlite.BZ2 ├── F95849CF860F1184B97D3000000EA1F9F1C35EDDD6D625DCD387453187510DDD4A18-FILELISTAS.xml.gz └── Repomd.xml 

Nosso repositório foi criado com sucesso. Agora temos que configurar nossa distribuição para usá -la como uma fonte de software.

Adicionando o repositório como uma fonte de software



Vamos passar para a nossa distribuição baseada em RPM e ver como configurá-la para usar nosso repositório personalizado como fonte de software. Os arquivos de configuração do repositório são encontrados no /etc/yum.Repos.d diretório, e deve ter o
.repo extensão. Ao olhar dentro do diretório, podemos ver os já existentes:

$ ls/etc/yum/repositórios.D Fedora-Cisco-Openh264.repo fedora-updates-testing-modular.repo fedora-modular.repo fedora-updates-testing.Repo Fedora.repo rpmfusion livre.repo fedora-updates-modular.Repo RPMFusion-Free Updates.Repo Fedora-updates.repo rpmfusion-free-updates-testing.repo 

Agora, vamos criar nossa configuração de repositório personalizada. Dentro do arquivo, como um conjunto mínimo de informações, devemos fornecer:

  • O ID do repositório
  • O nome do repositório
  • Um repositório baseurl
  • O status do repositório
  • Se deve verificar a assinatura GPG dos pacotes ou não

Salvaremos essas informações em um arquivo chamado OwnRepo.repo, Aqui está o seu conteúdo:

[OwnRepo] Nome = próprio repositório Baseurl = http: // 192.168.0.39/repo/fedora/liberações/$ releasever/$ BaseCH Habiled = 1 gpgCheck = 0 

A definição relatada entre colchetes ([OwnRepo]) é o ID do repositório e deve ser único em todas as definições de repositório. Com o nome Chave, fornecemos um nome legível pelo homem para o repositório como uma string. Isso é opcional; Se um nome não for fornecido, o ID do repositório será usado também como um nome.

Com o Baseurl Chave, especificamos uma lista dos URLs para o repositório. Os URLs devem ser separados por um espaço ou vírgula. Em nosso exemplo, acabamos de fornecer um único URL, mas você pode notar que usamos duas variáveis ​​nele:

  • $ releasever
  • $ Basearch


A expansão do primeiro, $ releasever, resultará na versão de liberação do sistema operacional, neste caso 33, Como estamos instalando nosso repositório em um sistema Fedora 33. A segunda variável, $ Basearch, será expandido em uma string representando a arquitetura base do sistema, que no nosso caso é x86_64.

O habilitado A chave requer a boleano valor que determina se o repositório deve ser considerado ativo ou não. A última chave que usamos é gpgcheck: também requer um valor booleano e é usado para determinar se uma verificação de assinatura GPG deve ser realizada nos pacotes instalados no repositório. Em nosso exemplo, simplesmente desativamos o cheque, já que o repositório é destinado apenas ao uso pessoal.

Agora que nosso repositório está configurado, podemos tentar instalar o código pacote, simplesmente executando:

$ sudo dnf Código de instalação Repositório próprio 451 kb/s | 13 kb 00:00 dependências resolvidas. =================================================== =================================================== =============== Arquitetura do pacote Versão do repositório Tamanho ================================== =================================================== ================================= Instalando: Código X86_64 1.56.0-1617183449.EL8 OUNDREPO RESUMO DE TRANSAÇÃO 100 M ====================================================================== =================================================== ===================== Instalar 1 pacote Tamanho total do download: 100 m Tamanho instalado: 294 m está ok [S/N]: 

Depois de fornecermos uma resposta afirmativa ao prompt e confirmá -lo, o pacote será instalado em nosso sistema.

Conclusões

Neste artigo, aprendemos como é fácil criar um repositório de RPM personalizado com o CreaterEpo utilitário, e vimos como criar um arquivo de configuração DNF em nossa distribuição para usá -lo uma fonte de software. Vimos um subconjunto mínimo de
as chaves que podem ser usadas na configuração do repositório; Para uma lista mais detalhada, você pode consultar a documentação oficial do DNF.

Tutoriais do Linux relacionados:

  • Coisas para instalar no Ubuntu 20.04
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Download do Linux
  • Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
  • Linux pode obter vírus? Explorando a vulnerabilidade do Linux…
  • Mastering Bash Script Loops
  • Coisas para fazer depois de instalar o Ubuntu 22.04 Jellyfish…
  • Ubuntu 20.04 truques e coisas que você pode não saber
  • Coisas para instalar no Ubuntu 22.04