Apt-mirror - Servidor de Atualização Ubuntu

Estamos implantando o Ubuntu 12.04 na empresa onde trabalho. A cada formatação de máquina, verificávamos que a atualização do sistema consumia uma boa parte da nossa banda de Internet. A solução que encontramos para isso, foi instalar o Apt-mirror. Neste artigo ensino, de forma prática e rápida, a configuração desse espelho.

[ Hits: 37.707 ]

Por: Danny Alisson de Souza Rodrigues em 07/08/2013


Configurações



Como pode ser visto, o arquivo principal de configuração é o "mirror.list", e ele contém a listagem de repositórios dos quais serão baixados para o servidor.

No diretório "/var/spool/apt-mirror/mirror", é onde fica guardado os "espelhos" baixados. É importante ressaltar que, como esse diretório guarda todos os arquivos baixados, é bom deixar ele em uma partição separada com no mínimo 300GB de espaço em disco.

Bom, agora que estamos com o servidor instalado, vamos iniciar o download dos pacotes de atualização, para isso bastar digitar o comando:

# apt-mirror
Downloading 184 index files using 20 threads...
Begin time: Mon Jul 29 14:36:21 2013
[20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]... [10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]...
End time: Mon Jul 29 14:36:52 2013

Proceed indexes: [SSSSSSSSPPPPPPPPPP]

6.7 MiB will be downloaded into archive.
Downloading 21 archive files using 20 threads...
Begin time: Mon Jul 29 14:38:44 2013
[20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]... [10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]...
End time: Mon Jul 29 14:39:09 2013

1.0 GiB in 317 files and 0 directories can be freed.
Run /var/spool/apt-mirror/var/clean.sh for this purpose.

Como o apt-mirror salva tudo em "/var/spool/apt-mirror", precisaremos criar um link para torná-lo disponível para nossos usuários. O primeiro link criado, fornece um link para o "packages.gz", que lista os pacotes disponíveis no repositório.

sudo ln -s /var/spool/apt-mirror/skel/archive.ubuntu.com/ubuntu/ /var/www/ubuntu

Os links abaixo, proporcionam acesso à aplicações individuais de download:

sudo ln -s /var/spool/apt-mirror/mirror/archive.ubuntu.com /var/www/archive-ubuntu
$ sudo ln -s /var/spool/apt-mirror/mirror/archive.canonical.com /var/www/archive-canonical
$ sudo ln -s /var/spool/apt-mirror/mirror/security.ubuntu.com /var/www/security-ubuntu


Após isso, já estamos com nosso servidor instalado.

Configurando os clientes

Bom, agora vamos à parte mais importante, que é configurar nossos clientes para fazer o update a partir do nosso servidor.

Para isso, basta editar o arquivo "/etc/apt/sources.list" e configurar nosso repositório. Vamos remover a referencia para links externos e colocar o IP do nosso repositório.

Segue uma amostragem do arquivo original:
deb http://br.archive.ubuntu.com/ubuntu/ precise main restricted
deb-src http://br.archive.ubuntu.com/ubuntu/ precise main restricted
deb http://br.archive.ubuntu.com/ubuntu/ precise-updates main restricted
deb-src http://br.archive.ubuntu.com/ubuntu/ precise-updates main restricted

Segue sources.list modificado:

deb http://IP DO SERVIDOR/ubuntu/ precise main restricted
deb-src http://IP DO SERVIDOR/ubuntu/ precise main restricted
deb http://IP DO SERVIDOR/ubuntu/ precise-updates main restricted
deb-src http://IP DO SERVIDOR/ubuntu/ precise-updates main restricted

Após isso, basta fazer um apt-get update para atualizar os fontes, e um apt-get upgrade para baixar do nosso repositório que acabamos de implementar.

Como sabemos, de tempos em tempos, a equipe de desenvolvimento do sistema cria novos patch de atualização, então, é justo colocarmos nosso servidor para baixar esses novos patch e colocá-los em produção.

Para isso, é só acrescentar ao Cron, uma linha referente ao comando de atualização. No meu caso, coloquei o comando para ser executado todos os sábados, às 23:00Hs.

#crontab -l
0  23  *  *  6  apt-mirror >/var/spool/apt-mirror/var/cron.log


Bom, espero que o Apt-mirror ajude-os no dia a dia, assim como me ajudou bastante.

Abraço a todos.


Danny Rodrigues

Página anterior    

Páginas do artigo
   1. Instalando o Servidor
   2. Configurações
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Instalar o driver para ATI Technologies Inc RS482 [Radeon Xpress 200M]

Usando Swap na RAM em Sabayon - ZRAM - Método novo

HOWTO Linux para Sony Playstation 2 com HDLoader e DEV2

Instalar placa de rede wireless do notebook HP dv6636 no Ubuntu

Debian/APT- Alguns cuidados com os repósitorios

  
Comentários
[1] Comentário enviado por lcavalheiro em 07/08/2013 - 11:00h

Excelente contribuição, meu caro! Pros amigos que administram servidores essa é a dica. Acho que serve pra qualquer Debian-like, só pra constar ;-)

[2] Comentário enviado por xerxeslins em 10/08/2013 - 12:05h

Curti!

Nota 10.

[3] Comentário enviado por dannyalisson em 10/08/2013 - 12:41h

lcavelheiro sim ele pode ser usado para qualque Debian-like.

[4] Comentário enviado por perrout em 06/09/2013 - 08:22h

Muito bom!!! Parabéns pelo artigo..

[5] Comentário enviado por molevy em 27/03/2017 - 08:55h

Consegui instalar o apt-mirror, mas quando fui dar continuidade criando os links (sudo ln -s /var/spool/apt-mirror/skel/archive.ubuntu.com/ubuntu/ /var/www/ubuntu ) ele disse "ln: falhou ao criar link simbólico '/var/www/ubuntu': Arquivo ou diretório não encontrado"

Realmente ele não criou ou tem a pasta /var/www/ubuntu.

Devo instalar mais alguma coisa para que essas pastas sejam criadas ou simplesmente as crio manualmente?

Grato.

Moises Levy.

[6] Comentário enviado por dannyalisson em 29/03/2017 - 08:16h


[5] Comentário enviado por molevy em 27/03/2017 - 08:55h

Consegui instalar o apt-mirror, mas quando fui dar continuidade criando os links (sudo ln -s /var/spool/apt-mirror/skel/archive.ubuntu.com/ubuntu/ /var/www/ubuntu ) ele disse "ln: falhou ao criar link simbólico '/var/www/ubuntu': Arquivo ou diretório não encontrado"

Realmente ele não criou ou tem a pasta /var/www/ubuntu.

Devo instalar mais alguma coisa para que essas pastas sejam criadas ou simplesmente as crio manualmente?

Grato.

Moises Levy.


Moises Levy tudo bem? É necessário a instalação do apache para a criação desses diretorios.

[7] Comentário enviado por tcboeira em 23/10/2019 - 15:48h

Sei que é de longo tempo, mas ainda valido. Obrigado.
Tenho uma duvida... O meu, espelha o "br.archive.ubuntu.com" ... Pq alguns pacotes não copiam todos para meu servidor local?
Lá, em "br.archive.ubuntu.com", aparece com conteúdo, para mim, aparece zerado. Pode ser erro de internet, cópia, essas coisas...
Como posso fazer ele refazer todo o espelhamento?

[8] Comentário enviado por ulissestark em 03/09/2021 - 09:18h

Localmente eu sei que funciona, porém se tento puxar de outra maquina Ubuntu, recebo o erro no apt update :
404 not found [ip: xx.x.x.xx]
no firewall esta liberado para o apache, tentei por dhcp, nat, rede interna.

No server de repositorio foi usado Ubuntu 20.04.1LTS e na maquina cliente 20.04.2LTS ambas Focal Fossa. Fiz uma copia do source.list do server direto pro client, e não funciona. O que preciso é que outras maquinas consigam dar apt update do meu server de repositorio.

[9] Comentário enviado por nettux em 09/01/2025 - 16:50h

Olá, amigos.
Sei que o tutorial é antigo mas, na falta de um mais atualizado, gostaria da ajuda de vocês.
Eu montei um servidor mirror - para Debian (e depois vou ajustar para Ubuntu e Mint), para funcionar apenas na rede interna (sem a pretenção de divulgá-lo/publicá-lo) e não consigo acertar a configuração do mesmo.
No /etc/apt/mirror.list eu deixei assim:

set base_path /mnt/source
set mirror_path $base_path/mirror
set skel_path $base_path/skel
set var_path $base_path/var
set postmirror_script $var_path/postmirror.sh
set defaultarch amd64
set run_postmirror 0
set nthreads 20
set limit_rate 100m
set _tilde 0
# Use --unlink with wget (for use with hardlinked directories)
#set unlink 1
#set use_proxy off
#set http_proxy 127.0.0.1:3128
#set proxy_user user
#set proxy_password password

deb http://deb.debian.org/debian bookworm contrib main non-free non-free-firmware
deb http://deb.debian.org/debian bookworm-updates contrib main non-free non-free-firmware
deb http://deb.debian.org/debian bookworm-backports contrib main non-free non-free-firmware
deb http://deb.debian.org/debian-security bookworm-security contrib main non-free non-free-firmware

clean http://deb.debian.org/debian
clean http://deb.debian.org/debian-security

Mas não consigo acertar o cliente.
deb http://192.168.10.215/debian">http://192.168.10.215/debian bookworm contrib main non-free non-free-firmware
deb http://192.168.10.215/debian">http://192.168.10.215/debian bookworm-updates contrib main non-free non-free-firmware
deb http://192.168.10.215/debian">http://192.168.10.215/debian bookworm-backports contrib main non-free non-free-firmware
deb http://192.168.10.215/debian">http://192.168.10.215/debian bookworm-security contrib main non-free non-free-firmware

Quando eu acesso via navegador: http://192.168.10.215 - aparece o diretório debian, porém, ao usar o update, dá erro:

The repository 'http://192.168.10.215/debian">http://192.168.10.215/debian bookworm-security Release' does not have a Release file
Acredito que falta alguma coisa...
Se alguém puder me ajudar, agradeço.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts