Como criar um servidor de repositório do Ubuntu

Como criar um servidor de repositório do Ubuntu

Este guia mostrará como configurar um servidor de repositório local com base no Ubuntu Bionic, mas pode ser adaptado a uma versão anterior do Ubuntu ou mesmo a qualquer distribuição usando aptidão como o principal sistema de gerenciamento de pacotes, como Debian ou Mint. Você pode normalmente configurar um repositório local para salvar a largura de banda da Internet.

Neste tutorial, você aprenderá:

  • Como instalar o software necessário no servidor
  • Como selecionar quais repositórios refletir no servidor
  • Como refletir a seleção de repositórios localmente no servidor
  • Como configurar o cliente Linux para usar o servidor de repositório local

Como afirmado acima, não estamos considerando um espelho público ou país para este tutorial, mas se você quiser implementá -lo, considere que:

  • Sua largura de banda de rede se torna muito importante
  • Você precisa registrar o repositório na lista do Ubuntu de espelhos
  • Você deve sincronizar o espelho pelo menos quatro vezes por dia
  • Porque você deve refletir todas as versões anteriores, você pode precisar de 2 tb ou mais de espaço em disco

Atualizando a lista de pacotes dos repositórios locais.

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 Ubuntu 18.04.2 (Bionic Beaver) LTS
Programas Apache HTTP 2.x, apt-mirror
Outro Acesso privilegiado ao seu sistema Linux como raiz ou através do sudo comando, mínimo 200 GB de espaço em disco para o repositório
Convenções # - requer que os comandos Linux sejam executados com privilégios root diretamente como usuário root ou por uso de sudo comando
$ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

Como criar um servidor de repositório do Ubuntu passo a passo

  1. Instalando o software necessário no servidor.

    Como primeira etapa, precisamos instalar o servidor HTTP Apache, que está no pacote nomeado Apache2, com o comando:

    $ sudo apt install apache2


    Instalando o Apache HTTP

    Em seguida, verifique se o serviço é executado na inicialização:

    $ sudo systemctl Ativar apache2 

    Se estiver tudo bem, passaremos para o diretório Documentroot padrão (que é/var/www/html).
    Lá podemos então criar o subdiretório /var/www/html/ubuntu e atribua -o ao proprietário apropriado, neste caso www-data (o usuário sob o qual o Apache HTTP é executado).

    $ sudo mkdir -p/var/www/html/ubuntu $ sudo chown www-data: www-data/var/www/html/ubuntu 

    É fortemente recomendado que o documentroot ou pelo menos a subpasta do Ubuntu esteja em um sistema de arquivos pertencente a um volume lógico; Dessa forma, podemos ampliá -lo online, sem tempo de inatividade.
    Na época do meu teste 171.5 Gib são o espaço mínimo absoluto necessário se também espelhar os pacotes SRC; Então, para planejar para o futuro, é recomendável ter pelo menos 300 gibo de espaço em disco.

    Isso é principalmente uma estimativa se escolher uma versão do Ubuntu; Se for necessário para refletir pacotes para diferentes versões, os requisitos de espaço aumentarão consideravelmente.

  2. A principal ferramenta que nos permite criar um repositório local é APT-Mirror, Para instalá -lo executar:
    $ sudo apt install apt-mirror 

    Caso o pacote não seja encontrado, certifique -se de atualizar a lista de pacotes primeiro com:

    $ sudo apt update 
  3. Selecionando quais repositórios para refletir no servidor.

    Depois que o Mirror APT estiver instalado, podemos fazer uma cópia de backup de seu arquivo de configuração /etc/apt/espelho.lista, Depois disso, você garante que a linha contendo a opção Defina base_path aponta para o caminho correto para o nosso repositório (por padrão IS/var/spool/apt-mirror).

    $ sudo cp/etc/apt/espelho.lista/etc/apt/espelho.lista.org 

    Então agora você pode usar seu editor favorito (vi ou nano, por exemplo) para alterar a opção Base_Path no espelho.Listar arquivo para /var/www/html/ubuntu; Você também precisa especificar que está espelhando o repositório Bionic Distro (mude de acordo se você tiver uma versão do Ubuntu diferente), sempre no espelho.Listar arquivo de configuração.

    espelho.Lista arquivo de configuração

    Caso você não tenha muito espaço no disco, pode optar por não refletir os pacotes SRC; Então você vai comentar as linhas relativas:

    espelho.Lista arquivo de configuração

    Em seguida, você copia um script importante para /var/www/html/ubuntu/var/

    $ sudo mkdir -p/var/www/html/ubuntu/var $ sudo cp/var/spool/apt -mirror/var/postmirror.sh/var/www/html/ubuntu/var/ 
  4. Espelhando os repositórios selecionados localmente no servidor.

    Agora é hora de criar um espelho local, lembre -se de que um espelhamento inicial (de arquivo.Ubuntu.com apenas para este tutorial) pode levar muito tempo e desacelerar sua conexão, então eu sugiro que você inicie este trabalho à noite.
    Para começar a espelhar os pacotes de repositórios remotos para o servidor local, simplesmente execute o comando:

    $ sudo apt-mirror 

    Se precisar, você pode interromper esse processo (com a combinação clássica de Ctrl+C) e reiniciá -lo mais tarde; ele irá retomar de onde foi deixada.

    Eventualmente, chegaremos ao ponto quando o limpo.SH e Postmirror.scripts SH são executados, é um sinal de que o processo de espelhamento foi concluído.

    Fim do processo de espelhamento.
  5. Configurando o processo de sincronização automática usando o Cron Scheduler.

    Após a conclusão de nossa primeira sincronização, precisamos criar um trabalho Cron para garantir que tenhamos um repositório local automático atualizado; Por exemplo, queremos que essa tarefa seja executada todas as noites às 2:00 e, portanto,:

    $ sudo crontab -e 

    Em seguida, editamos o Crontab para adicionar a seguinte linha:

    00 02 * * */usr/bin/apt-mirror 

    E salvar e sair (usando VI, Nano ou qualquer editor que esteja definido).

Configurando o cliente Linux para usar o servidor de repositório local

  1. Configurando a lista de repositório local.

    Em qualquer cliente que usará nosso repositório local, precisamos editar o arquivo de configuração /etc/apt/fontes.lista especificando nosso repositório local e desativando qualquer um remoto.

    No nosso caso, os seguintes repositórios foram baixados:

    Repositórios locais de servidor

    OBSERVAÇÃO

    Recomenda -se comentar qualquer linha no /etc/apt/fontes.lista Arquivo referindo -se a repositórios não refletidos em nosso servidor, por exemplo, neste caso, qualquer linha começando com Deb-Src e contendo Bionic-Backports foram comentados.

    Se você não fizer isso, poderá receber o erro
    O arquivo de liberação não foi encontrado Ao executar a atualização do comando apt no cliente.

    Primeiro de tudo, substituímos qualquer arquivo de string.Ubuntu.com nosso espelho local IP, neste caso 10.0.0.42. Claro que o seu endereço IP local pode ser diferente.

    $ sudo sed -i.Bak0 "S/Archive \.Ubuntu \.com/10 \.0 \.0 \.\ 42/g "/etc/apt/fontes.lista 

    Este comando criará o arquivo de backup /etc/apt/fontes.lista.Bak0 e substitua qualquer arquivo.Ubuntu.com string com 10.0.0.42.

    Um ajuste adicional está executando novamente sed dessa maneira:

    $ sudo sed -i.Bak1 "S/Ubuntu/Ubuntu \/Mirror \/Archive \.Ubuntu \.com \/ubuntu/g "\/etc/apt/fontes.lista 

    Isso é necessário, pois o Mirror Apt Anende o caminho espelho/arquivo.Ubuntu.com/ubuntu para o nosso caminho base. Aqui ele será criado outro arquivo de backup

    /etc/apt/fontes.lista.Bak1. 

    Para os fins deste tutorial, estamos apenas espelhando pacotes ou repositórios do arquivo.Ubuntu.com; Claro que você pode adicionar outros repositórios não oficiais no espelho.Lista arquivo no servidor, mas então você precisa executar novamente o Mirror e editar em qualquer cliente as fontes.Lista arquivo de acordo.

  2. Atualizar Índice de Repositório Local.
    Agora você precisa ter certeza de que a porta 80 não está bloqueada pelo firewall do cliente e depois pode executar:
    $ sudo apt update 

    E você está pronto para ir.

    Atualizando a lista de pacotes dos repositórios locais.

Conclusão

Configurar um repositório local no Ubuntu não é difícil, como pode parecer e pode ser útil, desde que você tenha recursos locais e recursos locais adequados.

Tutoriais do Linux relacionados:

  • Espelhos do Ubuntu
  • Coisas para instalar no Ubuntu 20.04
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Como procurar ferramentas extras de hackers em kali
  • Ubuntu 20.04 Guia
  • Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
  • Coisas para instalar no Ubuntu 22.04
  • Coisas para fazer depois de instalar o Ubuntu 22.04 Jellyfish…
  • Ubuntu 22.04 Guia
  • Ubuntu 20.04 truques e coisas que você pode não saber