Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo aborda tarefas comuns de gerenciamento de pacotes no Azure Linux, incluindo:
- Onde fica a configuração do repositório.
- Como os comandos legados do gerenciador de pacotes são mapeados para o DNF5.
- Como o DNF armazena em cache metadados e resolve pacotes.
- Como são tratados os kernels e outros pacotes somente para instalação.
- Como habilitar atualizações autônomas.
- Os comandos DNF mais usados.
Note
Azure Linux 4.0 agora está em preview e está estritamente limitado às finalidades de avaliação e teste. Não é adequado para uso em produção.
Configuração do repositório
DNF5 lê definições de repositório de /etc/yum.repos.d/. O nome do diretório é mantido do YUM para compatibilidade; o DNF5 lê deste diretório.
Cada .repo arquivo nesse diretório é um arquivo de configuração de texto sem formatação que informa à DNF onde encontrar pacotes, se deve verificá-los com GPG e se o repositório está habilitado por padrão. O arquivo de configuração DNF principal é /etc/dnf/dnf.conf, que controla o comportamento global, como configurações de cache, o limite somente instalação e a configuração de proxy.
Links simbólicos de compatibilidade para comandos legados
O Azure Linux inclui links simbólicos de compatibilidade para que os comandos legados (yum, dnf (DNF4), microdnf, tdnf) sejam todos direcionados ao DNF5:
lrwxrwxrwx. 1 root root 4 yum -> dnf5
lrwxrwxrwx. 1 root root 4 microdnf -> dnf5
-rwxr-xr-x. 1 root root 1614408 dnf5
lrwxrwxrwx. 1 root root 4 dnf -> dnf5
lrwxrwxrwx. 1 root root 4 tdnf -> dnf5
Os subcomandos comuns funcionam por meio dos symlinks. Casos de borda que dependiam de componentes internos do DNF4 ou de comportamentos específicos de microdnf talvez não funcionem. Para obter detalhes sobre o que foi alterado, consulte os seguintes recursos:
Como o DNF5 resolve pacotes
Quando você executa um comando DNF, o DNF5 executa as seguintes etapas para determinar quais pacotes instalar, atualizar ou remover:
- Carrega todos os
.repoarquivos/etc/yum.repos.d/e seleciona os repositórios marcados como habilitados. - Atualiza os metadados do repositório, armazenando-os em cache localmente em
/var/cache/libdnf5. Os metadados armazenados em cache incluem a lista de pacotes, informações de versão e dependência, somas de verificação e assinaturas. - Resolve a instalação, a remoção ou a atualização solicitada nos repositórios habilitados, escolhe versões do pacote e verifica a integridade e as assinaturas antes de aplicar a transação.
Os repositórios desabilitados são ignorados, a menos que você os habilite explicitamente com --enablerepo=<repo-id> em um único comando.
O /var/cache/libdnf5 cache existe para que a DNF não precise baixar novamente os metadados em cada invocação. Execute dnf clean all para esvaziá-lo (consulte comandos do DNF usados com frequência).
Pacotes apenas para instalação e múltiplas versões instaladas
Alguns pacotes, em especial o kernel, são instalados lado a lado em vez de serem atualizados substituindo a instalação existente. O DNF5 controla isso por meio de duas configurações em /etc/dnf/dnf.conf:
-
installonlypkgs: lista de pacotes que nunca são atualizados no local. Os pacotes do kernel são a forma canônica de entrada. -
installonly_limit: número máximo de versões de um pacote somente de instalação que podem coexistir no sistema. O padrão é3.
Quando uma nova versão é instalada e o limite é excedido, o DNF remove a versão mais antiga automaticamente.
Para o kernel, isso resulta em:
- Fallback: se um novo kernel não for inicializado, o GRUB ainda poderá iniciar um kernel de trabalho conhecido anterior.
- Validação: você pode instalar e testar um novo kernel sem remover o que está em execução.
- Coexistência de variantes: Você pode instalar compilações diferentes do kernel (por exemplo, com diferentes conjuntos de recursos) ao mesmo tempo.
Cada versão do kernel é um RPM separado, portanto, o DNF rastreia e remove-os como qualquer outro pacote.
Atualizações sem supervisão com dnf-automatic
dnf-automatic é um serviço que verifica periodicamente, baixa e, opcionalmente, aplica atualizações de pacote. Ele é acionado por um temporizador do systemd, em vez de ser executado continuamente como um daemon.
Instalar o dnf-automatic
Instale dnf-automatic usando o seguinte comando:
sudo dnf install -y dnf-automatic
Habilitar o dnf-automatic temporizador
Habilite o dnf-automatic temporizador imediatamente e entre reinicializações usando o seguinte comando:
sudo systemctl enable --now dnf-automatic.timer
-
enableconfigura o temporizador a ser iniciado na inicialização. -
--nowinicia o temporizador na sessão atual.
Verificar o status do dnf-automatic temporizador
Verifique se o temporizador está ativo e veja quando ele foi executado pela última vez usando o seguinte comando:
systemctl status dnf-automatic.timer
A saída típica se parece com o seguinte exemplo:
● dnf5-automatic.timer - dnf-automatic timer
Loaded: loaded (/usr/lib/systemd/system/dnf5-automatic.timer; enabled; preset: disabled)
Active: active (waiting) since Thu 2026-03-26 14:36:54 UTC; 13min ago
Invocation: f6984eeceb7c40df99bca243f3da728c
Trigger: Fri 2026-03-27 06:34:18 UTC; 15h left
Triggers: ● dnf5-automatic.service
Active: active (waiting) é o esperado: o serviço subjacente é um serviço de execução única que é executado apenas quando o temporizador dispara e, em seguida, é encerrado. A Trigger: linha mostra a próxima execução agendada.
Listar a próxima execução agendada do dnf-automatic temporizador
Liste a próxima execução junto com outros temporizadores usando o seguinte comando:
systemctl list-timers dnf-automatic.timer
Exemplo de saída:
NEXT LEFT LAST PASSED UNIT ACTIVATES
Fri 2026-03-27 06:34:18 UTC 15h - - dnf5-automatic.timer dnf5-automatic.service
1 timers listed.
Pass --all to see loaded but inactive timers, too.
Configuração opcional de dnf-automatic
Você pode configurar o comportamento de atualização automática adicionando o /etc/dnf/automatic.conf arquivo. Esse arquivo controla se as atualizações são baixadas, aplicadas automaticamente ou restritas a atualizações somente de segurança. Para obter detalhes completos de configuração, consulte a documentação do dnf5-automatic
Note
As atualizações automáticas são instaladas por meio de dnf-automatic, mas o sistema não é reinicializado automaticamente. Se um kernel (ou outro pacote necessário para reinicialização) for atualizado, a nova versão não terá efeito até a próxima reinicialização. Após as atualizações, verifique se uma reinicialização é necessária e agende uma conforme apropriado.
Comandos DNF usados com frequência
Os comandos a seguir abrangem a maior parte do gerenciamento de pacotes diários no Azure Linux.
dnf clean all
dnf clean all remove tudo o que o DNF armazenou em cache em /var/cache/libdnf5. Use-o para:
- Recupere-se de metadados corrompidos ou obsoletos que estão causando erros de transação.
- Reduza as imagens de contêiner removendo o cache dos pacotes após as instalações na mesma camada
RUN. - Recuperar espaço em disco.
Exemplo de contêiner:
RUN dnf install -y package1 package2 \
&& dnf clean all
dnf search
dnf search compara palavras-chave com nomes e resumos de pacotes. Por exemplo:
dnf search lsof
Exemplo de saída:
Updating and loading repositories:
Azure Linux 4.0 - x86_64 - Microsoft 100% | 7.6 KiB/s | 4.8 KiB | 00m01s
Repositories loaded.
Matched fields: name (exact)
lsof.x86_64 A utility which lists open files on a Linux/UNIX system
dnf provides
dnf provides localiza o pacote que possui um determinado arquivo, comando ou funcionalidade. Por exemplo:
dnf provides lsof
Exemplo de saída:
Updating and loading repositories:
Repositories loaded.
lsof-4.98.0-8.azl4.20260303.x86_64 : A utility which lists open files on a Linux/UNIX system
Repo : @System
Matched From :
Provide : lsof = 4.98.0-8.azl4.20260303
dnf install
dnf install instala um ou mais pacotes junto com suas dependências de runtime:
sudo dnf install lsof
Exemplo de saída:
Updating and loading repositories:
Repositories loaded.
Package Arch Version Repository Size
Installing:
lsof x86_64 4.98.0-8.azl4.20260303 azurelinux 578.5 KiB
Transaction Summary:
Installing: 1 package
Total size of inbound packages is 226 KiB. Need to download 226 KiB.
After this operation, 579 KiB extra will be used (install 579 KiB, remove 0 B).
Is this ok [y/N]: y
[1/1] lsof-0:4.98.0-8.azl4.20260303.x86_64 100% | 641.9 KiB/s | 226.0 KiB | 00m00s
[1/1] Total 100% | 640.1 KiB/s | 226.0 KiB | 00m00s
Running transaction
[1/3] Verify package files 100% | 500.0 B/s | 1.0 B | 00m00s
[2/3] Prepare transaction 100% | 23.0 B/s | 1.0 B | 00m00s
[3/3] Installing lsof-0:4.98.0-8.azl4.20260303.x86_64 100% | 3.0 MiB/s | 580.2 KiB | 00m00s
Complete!
dnf remove
dnf remove desinstala um pacote junto com quaisquer dependências que foram instaladas exclusivamente para ele:
sudo dnf remove -y lsof
Exemplo de saída:
Package Arch Version Repository Size
Removing:
lsof x86_64 4.98.0-8.azl4.20260303 azurelinux 578.5 KiB
Transaction Summary:
Removing: 1 package
After this operation, 579 KiB will be freed (install 0 B, remove 579 KiB).
Is this ok [y/N]: y
Running transaction
[1/2] Prepare transaction 100% | 27.0 B/s | 1.0 B | 00m00s
[2/2] Removing lsof-0:4.98.0-8.azl4.20260303.x86_64 100% | 72.0 B/s | 11.0 B | 00m00s
Complete!
dnf upgrade
dnf upgrade atualiza os pacotes instalados para suas versões mais recentes disponíveis.
sudo dnf upgrade
Quando tudo está atualizado, a saída é curta. Por exemplo:
Updating and loading repositories:
Repositories loaded.
Nothing to do.
Dica
Passe -y para install, removeou upgrade em contextos não interativos, como scripts, pipelines de CI e builds de contêiner. Qualquer operação do DNF que modifique o sistema requer privilégios de root, então execute-a usando sudo ou como root.
Conteúdo relacionado
-
Utilitário de gerenciamento de pacotes DNF5: referência completa da linha de comando para
dnf5. - Alterações entre DNF e DNF5: o que mudou do DNF4, incluindo comandos removidos e diferenças de comportamento.
- Migração para DNF5: diretrizes para mover scripts e automação de DNF4 para DNF5.