Como de costume, vamos atualizar os pacotes usando apt update && apt upgrade
.
# apt update && apt upgrade
Vamos proceder com a instalação dos pacotes necessários
# apt install apt-mirror apache2 vim screen -y
Criar uma cópia com o sufixo .original
# cp /etc/apt/mirror.list{,.original}
# vim /etc/apt/mirror.list
Substitua pelo conteúdo abaixo
# Define o número de threads para paralelizar o processo de atualização e instalação de pacotes.
set nthreads 20
# Desativa o uso do caractere til (~) para substituição no shell. Pode ser útil em alguns scripts.
set _tilde 0
# Repositório principal para Debian Bookworm (versão estável)
deb https://ftp.debian.org/debian/ bookworm contrib main non-free non-free-firmware
deb https://ftp.debian.org/debian/ bookworm-updates contrib main non-free non-free-firmware
deb https://ftp.debian.org/debian/ bookworm-proposed-updates contrib main non-free non-free-firmware
deb https://ftp.debian.org/debian/ bookworm-backports contrib main non-free non-free-firmware
deb https://security.debian.org/debian-security/ bookworm-security contrib main non-free non-free-firmware
# Limpa o cache dos pacotes baixados do repositório Debian (mirror global).
clean https://ftp.debian.org/debian
# Limpa o cache dos pacotes baixados do repositório de segurança do Debian.
clean https://security.debian.org/debian-security
O comando apt-mirror
é usado para criar uma cópia local (mirror) dos repositórios do Debian. Ele baixa todos os pacotes de software, atualizações e arquivos necessários para que você possa configurar um repositório interno, evitando a necessidade de acesso à internet para instalar ou atualizar pacotes nas máquinas da sua rede.
# screen -S mirror
# apt-mirror
Deixe a sessão rodando em segundo plano: Para desconectar temporariamente da sessão e deixar o apt-mirror
rodando, pressione: Ctrl + a, depois d Isso faz o “detach” da sessão, mantendo o processo ativo.
Alterações no Apache
# vim /etc/apache2/sites-enabled/000-default.conf
Adicione o conteúdo abaixo após a linha “DocumentRoot /var/www/html”
<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Crie os links simbólicos para tornar o mirror acessível via web server (Apache no nosso exemplo):
Link simbólico para o repositório principal
ln -s /var/spool/apt-mirror/mirror/ftp.debian.org/debian /var/www/html/debian
Link simbólico para o repositório de segurança
ln -s /var/spool/apt-mirror/mirror/security.debian.org/debian-security /var/www/html/debian-security
Esconder a versão do Apache
# sed -i '$ a ServerSignature Off' /etc/apache2/apache2.conf
Reiniciar o servidor web
# systemctl restart apache2
Configuração de Redirecionamento Automático de Página Web
echo '<meta http-equiv="Refresh" content="0; url=http://www.joserodriguesfilho.com"/>' > /var/www/html/index.html
Crontab
Para atualizar o mirror regularmente, adicione o seguinte cron job para rodar o apt-mirror
diariamente:
# vim /etc/crontab
# Atualizar espelho local
0 3 * * * root /usr/bin/apt-mirror > /var/log/apt-mirror.log 2>&1
# systemctl restart cron
Para verificar ou voltar à sessão: Use o comando:
# screen -r mirror
Clientes
Nos clientes que usarão o mirror local, adicione estas linhas ao arquivo /etc/apt/sources.list
deb http://<IP_DO_SERVIDOR>/debian bookworm main non-free-firmware
deb http://<IP_DO_SERVIDOR>/debian-security bookworm-security main contrib non-free
# apt update