Offline installation (Português)

From ArchWiki
Status de tradução: Esse artigo é uma tradução de Offline installation. Data da última tradução: 2024-01-03. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Este artigo fornece instruções sobre como instalar o Arch Linux em um sistema sem conexão com a Internet. Para fazer isso, é necessário outro sistema com conexão ativa à Internet.

Primeiro, siga o Guia de instalação, pulando a seção Guia de instalação#Conectar à internet, até a etapa Guia de instalação#Instalar os pacotes essenciais.

Atenção: Extrair a imagem do sistema de arquivos raiz (airootfs.sfs) do ISO ou copiar o sistema de arquivos raiz do ambiente ativo não é um método de instalação compatível.

Preparar repositório local

Siga Pacman/Dicas e truques#Instalando pacotes a partir de um CD/DVD ou pendrive para obter instruções sobre como preparar um repositório local com os arquivos necessários em uma instalação de host separada.

No mínimo, para um sistema funcional, os seguintes pacotes são recomendados:

# pacman -Syw --cachedir . --dbpath /tmp/blankdb base base-devel linux linux-firmware mkinitcpio vim

Crie seu repositório offline personalizado:

# repo-add ./custom.db.tar.gz ./*[^sig]

Montar e configurar

This article or section needs expansion.

Reason: Adicionar instruções opcionais sobre como colocar o repositório personalizado no ISO. (Discuss in Talk:Offline installation)

Assim que o repositório estiver preparado, conecte a mídia externa à nova instalação e monte-a no sistema de arquivos raiz recém-criado:

# mount --mkdir /dev/sdxy /mnt/repo

Edite o /etc/pacman.conf do seu archiso e adicione uma nova seção:

/etc/pacman.conf
[custom]
SigLevel = Optional
Server = file:///mnt/repo/

Comente [core] e [extra] de forma que o pacman não falhe com os repositórios padrão.

Pacstrap

Agora você pode continuar a usar pacstrap seus pacotes disponíveis localmente para a nova instalação:

# pacstrap -K /mnt base base-devel linux linux-firmware mkinitcpio vim

Instalação offline de pacotes

Instalar a partir de arquivo

Caso o processo de instalação offline tenha sido apenas temporário, mas exija a instalação manual de alguns pacotes antes de poder acessar uma rede, consulte pacman (Português)#Comandos adicionais para aprender como instalar pacotes locais.

Shell globbing pode ser usado para instalar muitos pacotes de uma vez:

# pacman -U /pasta/de/pacotes/*.tar.zst

Cache offline

Você pode colocar os arquivos necessários em /var/lib/pacman/sync e /var/cache/pacman/pkg, para fazer o pacman acreditar que tenha tudo o que precisa para fazer pesquisas, atualizações e instalações. O método a seguir é baseado em dois tópicos do fórum: [1][2].

As etapas são:

  1. baixar os bancos de dados de pacotes atualizados em um computador com acesso à Internet,
  2. transferi-los para o computador desconectado,
  3. gerar a lista de pacotes necessários do computador desconectado para atualizá-lo,
  4. baixá-los com sua assinatura em um computador com acesso à internet,
  5. transferi-los para o cache do pacman do computador desconectado,
  6. instalar as atualizações.
Dica: Se você alterou seus repositórios padrão (core, extra e multilib), você deve revisar seu arquivo /etc/pacman.conf.

O script a seguir fará o download dos bancos de dados de pacotes atualizados. Se necessário, altere MIRROR para qualquer espelho da lista de status de espelho.

download_databases.sh
#!/bin/sh

ARCH="x86_64"
MIRROR="https://mirrors.kernel.org/archlinux/"

wget "${MIRROR}/core/os/${ARCH}/core.db"
wget "${MIRROR}/extra/os/${ARCH}/extra.db"
wget "${MIRROR}/multilib/os/${ARCH}/multilib.db"

# e possivelmente -descomente- (se personalizou em /etc/pacman.conf ou pacman.conf.d):

#wget "${MIRROR}/core-testing/os/${ARCH}/core-testing.db"
#wget "${MIRROR}/extra-testing/os/${ARCH}/extra-testing.db"
#wget "${MIRROR}/multilib-testing/os/${ARCH}/multilib-testing.db"

# e -também- pacotes de debug e staging.

Torne o script executável e execute-o. Você obterá vários arquivos .db.

Os passos a seguir serão transferir os arquivos .db para o PC offline, fazendo com que você esteja trabalhando com listas de pacotes atualizadas (como se você tivesse executado pacman -Sy), então gerando uma lista de pacotes necessários para a atualização:

# cp *.db /var/lib/pacman/sync/
# pacman -Sup --noconfirm > pkglist
Nota: Certifique-se de ter habilitado pelo menos um dos servidores definidos no arquivo /etc/pacman.d/mirrorlist. Caso contrário, tudo o que você receberá será uma mensagem de erro enganosa: error: no database for package: nome-pacote.

Você também precisará baixar as assinaturas dos pacotes correspondentes, então prepare a lista de assinaturas para download:

# sed -e 's/\.zst$/.zst.sig/' ../pkglist > ../siglist

Em seguida, leve as duas listas com você para um local onde você tenha internet e baixe os pacotes listados em um diretório vazio:

# wget -nv -i ../pkglist
# wget -nv -i ../siglist
Dica: Ao usar cygwin ou algum outro tipo de ambiente Windows para baixar os pacotes, os nomes dos arquivos serão confusos, pois a nomenclatura padrão dos arquivos do Windows requer escape, por exemplo. dois pontos. Para evitar isso (no cygwin, já que ele não segue tais restrições), use wget --restrict-file-names=unix.

Leve todos os arquivos *.pkg.tar.zst e *.pkg.tar.zst.sig para casa e coloque-os em /var/cache/pacman/ pkg e finalmente execute:

# pacman -Su

Repositório local

Caso se espere que o novo sistema permaneça desconectado ou com airgap, ele deverá ser configurado para esperar apenas repositórios locais.

Repositório completo

Depois de fazer chroot em sua nova instalação, edite o novo /etc/pacman.conf da mesma forma que anteriormente (mas sem o prefixo /mnt):

/etc/pacman.conf
[custom]
SigLevel = Optional
Server = file:///repo/

Comente todos os outros repositórios e salve. Continue configurando o novo sistema normalmente.

De agora em diante, quaisquer atualizações no sistema desconectado podem ser feitas trazendo uma cópia atualizada do repositório local, montando-o em /repo e executando comandos do pacman normalmente.

Veja também