Como criar um repositório de RPM personalizado no Linux
- 3898
- 680
- Enrique Gutkowski PhD
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
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