Observação:
- Este tutorial está disponível em um ambiente de laboratório gratuito fornecido pela Oracle.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir seu laboratório, substitua esses valores por valores específicos do seu ambiente de nuvem.
Usar DNF no Oracle Linux
Introdução
O Oracle Linux fornece o utilitário dnf, baseado no DNF (Dandified Yum), como o software cliente para instalação e gerenciamento de pacotes do sistema. Esses pacotes podem vir do Unbreakable Linux Network (ULN) ou de um servidor yum Oracle Linux. Os pacotes de software são instalados em um sistema usando comandos dnf padrão e dependem do sistema ter ativado as assinaturas de canal ULN apropriadas ou os repositórios yum. Ao instalar ou atualizar pacotes, o dnf trata automaticamente das dependências e dos requisitos do pacote.
O DNF melhora significativamente a funcionalidade e o desempenho e traz muitos recursos novos, incluindo conteúdo modular e uma API mais estável e documentada, em comparação com o comando tradicional do yum.
Objetivos
Neste tutorial, você aprenderá a:
- Trabalhar com repositórios DNF
- Gerenciar pacotes e módulos
- Instalar atualizações de segurança
- Aproveite os grupos de pacotes
- Usar o recurso de histórico DNF
- Automatize atualizações de patches
Pré-requisitos
-
Mínimo de um único sistema Oracle Linux
-
Cada sistema deve ter o Oracle Linux instalado e configurado com:
- Uma conta de usuário não raiz com acesso sudo (sudo)
- Acesso à Internet
Implantar o Oracle Linux
Observação: Se estiver em execução na sua própria tenancy, leia o projeto linux-virt-labs GitHub README.md e conclua os pré-requisitos antes de implantar o ambiente de laboratório.
-
Abra um terminal no Luna Desktop.
-
Clone o projeto
linux-virt-labsGitHub.git clone https://github.com/oracle-devrel/linux-virt-labs.git -
Altere para o diretório de trabalho.
cd linux-virt-labs/ol -
Instale as coleções necessárias.
ansible-galaxy collection install -r requirements.yml -
Implante o ambiente de laboratório.
ansible-playbook create_instance.yml -e localhost_python_interpreter="/usr/bin/python3.6"O ambiente de laboratório gratuito requer a variável extra
local_python_interpreter, que defineansible_python_interpreterpara reproduções em execução no localhost. Essa variável é necessária porque o ambiente instala o pacote RPM do Oracle Cloud Infrastructure SDK para Python, localizado nos módulos python3.6.A forma de implantação padrão usa a CPU AMD e o Oracle Linux 8. Para usar uma CPU Intel ou Oracle Linux 9 ou 10, adicione
-e instance_shape="VM.Standard3.Flex"ou defina-e os_version="10",-e os_version="9"ou-e os_version="8"para o comando de implantação.Importante: Aguarde a execução bem-sucedida do playbook e atinja a tarefa de pausa. Neste estágio do playbook, a instalação do Oracle Linux está concluída e as instâncias estão prontas. Anote o jogo anterior, que imprime os endereços IP públicos e privados dos nós que ele implanta e quaisquer outras informações de implantação necessárias durante a execução do laboratório.
Trabalhar com Repositórios DNF
-
Abra um terminal e estabeleça conexão via SSH com a instância ol-node-01.
ssh oracle@<ip_address_of_instance> -
Obtenha uma lista de repositórios ativados.
dnf repolistO DNF procura no diretório
/etc/yum.repos.dos arquivos que terminam em.repo. Você pode passar a opçãoallpara ver uma lista dos repositórios ativados e desativados. Um arquivo de repositório pode definir um ou mais repositórios e considerar o repositório ativado quando oenabled=1e desativado quando oenabled=0. -
Ative um repositório.
Oracle Linux 10:
sudo dnf config-manager --enable ol10_codeready_builderOracle Linux 9:
sudo dnf config-manager --enable ol9_codeready_builderOracle Linux 8:
sudo dnf config-manager --enable ol8_codeready_builder -
Desativar um repositório.
Oracle Linux 10:
sudo dnf config-manager --disable ol10_codeready_builderOracle Linux 9:
sudo dnf config-manager --disable ol9_codeready_builderOracle Linux 8:
sudo dnf config-manager --disable ol8_codeready_builder -
Instale um repositório.
O Oracle Linux envia repositórios pré-construídos para vários produtos no formato de pacote. Você pode procurá-los e, em seguida, instalá-los e ativá-los.
dnf search oracle*release*Oracle Linux 10:
sudo dnf install -y oracle-instantclient-release-el10Oracle Linux 9:
sudo dnf install -y oracle-instantclient-release-el9Oracle Linux 8:
sudo dnf install -y oracle-instantclient-release-el8Embora não seja preferível, você também pode instalar repositórios por:
- Criando diretamente um novo arquivo
.repoem/etc/yum.repos.d - Usando o
dnf config-manager --add-repo <repo_file>, que permite instalar um arquivo de repositório armazenado localmente ou de um URL
- Criando diretamente um novo arquivo
-
Remova o cache DNF.
Para ajudar no desempenho, o DNF armazena dados em cache em
/var/cache/dnf. Há momentos em que esses dados armazenados no cache podem se tornar obsoletos e causar falha nos comandosdnf. Para corrigir esse problema, você pode remover todos os itens em cache.dnf clean allO DNF recria automaticamente esse cache ao longo do tempo à medida que você executa vários comandos. Para solucionar um problema de falha de comando, você pode limpar o cache e tentar novamente o comando com falha.
Gerenciar Pacotes e Módulos
Observação para o Oracle Linux 10: A modularidade do DNF (módulos e streams) não está disponível no Oracle Linux 10. Você pode instalar pacotes padrão do repositório AppStream, mas não pode ativar ou instalar módulos ou streams como em versões anteriores.
Nas etapas fornecidas, em que a modularidade do DNF é usada, as instruções só se aplicam ao Oracle Linux 8 e ao Oracle Linux 9.
-
Obtenha uma lista de pacotes disponíveis dos repositórios ativados.
dnf listVocê pode restringir a saída retornada usando as opções
installedouavailablee até mesmo solicitando um nome de pacote específico comodnf list available git. -
Liste os módulos disponíveis.
dnf module listA saída mostra os módulos disponíveis para o sistema, fluxos associados e perfis em que:
Name: Nome do móduloStream: Versão do fluxoProfiles: Perfis disponíveis e seus statuscommon: Uma implantação reforçada pronta para produção e é o perfil padrãodevelopment: Instala os pacotes necessários para fazer modificações no módulominimal: Instala o menor conjunto de pacotes que fornece um aplicativo funcional
Use a Dica no final da saída para determinar quais streams e perfis estão ativados, desativados, instalados ou o padrão.
Semelhante aos pacotes, você pode passar um nome de módulo para a opção
listpara ver o status apenas desse módulo. -
Obter informações sobre um pacote ou módulo.
dnf info zshNesse caso,
zshé o nome do pacote. Você faz o mesmo para módulos, mas adiciona o comandomodulee anexa o módulo específico, comodnf module info php. Se você precisar de informações sobre um stream de módulo específico, passe--profilecom o module:stream em vez do nome do módulo.dnf module info --profile php:8.2 -
Procure um pacote disponível ou instalado.
dnf search php -
Procure o pacote que fornece um nome de arquivo ou comando específico.
O comando
provides, com um alias dewhatprovides, localiza o pacote que corresponde ao nome do arquivo. Se você não fornecer um caminho completo, o DNF anexará/usr/sbine/usr/binao nome do arquivo. Para fins legados, ele também anexa/sbine/bin.dnf provides sudo -
Instale um pacote.
sudo dnf install tmuxResponda
ypara confirmar a instalação do pacote. Evite essa etapa extra no futuro, informando a opção-y. O DNF, por padrão, instala somente pacotes de repositórios ativados. No entanto, você pode ignorar esse comportamento padrão informando a opção--enablerepo=<repo name>. -
Reinstale um pacote.
sudo dnf reinstall -y tmuxEsse comando essencialmente executa um
dnf removee, em seguida, umdnf install. A diferença crítica é que o uso da reinstalação mantém qualquer configuração personalizada dos arquivos associados ao pacote. -
Ativar um módulo.
Antes de instalar pacotes a partir de um módulo, você precisa ativá-lo.
Oracle Linux 9:
sudo dnf module -y enable nginx:1.22Oracle Linux 8:
sudo dnf module -y enable nginx -
Instale um módulo.
Oracle Linux 9:
sudo dnf module install -y nginx:1.22Oracle Linux 8:
sudo dnf module install -y nginx:1.14Depois de instalar os pacotes, a execução de
sudo dnf module list nginxmostrará um[i]ao lado do perfil 1.22 do fluxo common [d]. -
Remova um pacote ou módulo.
sudo dnf remove -y tmuxDa mesma forma, você pode remover um módulo usando a mesma sintaxe substituindo o nome do pacote pelo module:stream/profile.
-
Alternar um módulo.
A alternância de fluxos de módulos faz com que o conteúdo seja atualizado ou submetido a downgrade para uma versão diferente da versão atual no sistema. Ele também trata da instalação de dependências adicionais ou da remoção de pacotes que não são mais necessários.
sudo dnf module -y switch-to nginx:1.24/common -
Desativar um módulo.
sudo dnf module -y disable nginxAo desativar um módulo, você garante a remoção de perfis instalados, todos os fluxos de módulos relacionados ficam indisponíveis e o RPMS modular não faz parte do conjunto de pacotes. Se o DNF detectar qualquer conflito, a operação será rejeitada. Um motivo para desativar um módulo é que existem pacotes mais recentes no repositório padrão e no fluxo de aplicativos.
-
Redefina um módulo.
Esta operação define o estado do módulo para que ele não seja mais ativado ou desativado. O DNF remove todos os perfis e somente pacotes do perfil padrão estão disponíveis.
sudo dnf module -y reset nginx
Instalar Atualizações de Segurança
-
Liste todas as erratas disponíveis.
dnf updateinfo listA saída mostra os repositórios ativados seguidos por cada atualização. O DNF classifica as erratas disponíveis em ordem de seus IDs e as identifica ainda mais por seu tipo.
Severity/Sec: Patch de Prioridade/Segurançabugfix: Correção de bugenhancement: Aprimoramento do recurso
Você pode anexar cves, bugfix, ou security ao comando poderá restringir a saída somente a esse tipo de errata específico. Você também pode informar
--installedpara obter uma lista dessas correções de segurança instaladas no host. -
Exibir um resumo das erratas disponíveis.
dnf updateinfo summary -
Obtenha uma lista de atualizações de segurança com base na severidade.
Você pode passar Crítico, Importante, Moderado ou Baixo para a opção
--sec-severity.dnf updateinfo list --sec-severity=ImportantO DNF permite que você passe outras opções para o comando
list. Você pode usar--advisory <Advisory ID>para obter uma consultoria específica ou--cve <CVD IDpara obter um CVE específico. O uso do comandoinfoem vez deliste as opções exatas fornecem informações detalhadas sobre a consultoria específica ou o CVE. -
Atualize cada pacote para sua versão mais recente.
sudo dnf upgrade -yVocê pode opcionalmente excluir um pacote específico do upgrade com a opção
-xseguida do nome do pacote. Embora o Oracle Linux recomende que você aplique todas as erratas, o comandoupgradeutiliza as seguintes opções:--cve: atualiza um único ID de CVE--advisory: atualizar um único ID de Consultoria--security: atualiza todas as erratas relacionadas à segurança
Como alternativa, um usuário pode executar o
sudo dnf upgrade-minimalpara aplicar somente atualizações a pacotes que forneçam uma correção de bug, aprimoramento ou correção de um problema de segurança.Importante: Após as atualizações de kernel, certifique-se de reinicializar o sistema. Se você executar um sistema em que as reinicializações não sejam viáveis, é recomendável usar o Oracle Ksplice para aplicar patches de kernel.
Gerenciar Grupos de Pacotes
O DNF permite a instalação, atualização ou remoção de grupos de pacotes. Esses grupos são uma coleção de pacotes dependentes que servem a um propósito comum.
-
Liste os grupos disponíveis.
dnf group list -
Obtenha uma lista de grupos que um grupo contém.
dnf group info "Server with GUI"O Servidor com GUI instala a área de trabalho gráfica do GNOME.
-
Mostrar os pacotes individuais que um grupo contém.
dnf group info Core -
Instale o grupo.
sudo dnf group install "Server with GUI" --assumenoA opção
--assumenoresponderá automaticamente não e ignorará a instalação para economizar tempo neste tutorial. Deixe essa opção fora do comando e substitua-a pela opção-ypara instalá-la automaticamente. O DNF fornece os comandosdnf group updateednf group removepara atualizar e remover grupos.
Usar o Recurso DNF History
O recurso de histórico DNF mostra todas as ações executadas pelo comando dnf. O recurso de histórico permite desfazer, refazer e reverter uma transação DNF específica. Além do histórico de DNF, instalações, atualizações e remoções de pacotes são registradas no arquivo /var/log/dnf.log.
-
Liste todas as transações DNF.
dnf historyVocê pode obter informações relacionadas a uma das transações executando
dnf history info <transaction ID>. -
Reverter uma transação específica.
A opção
rollbackirá desfazer todas as transações após o<transaction ID>especificado. Se você só quiser reverter uma única transação, useundo.sudo dnf history rollback <transaction ID>O comando DNF
history rollbackincrementa o ID da transação e registra o rollback como uma transação exclusiva. -
Repita uma transação específica.
Você pode
redoa transação específica e repetir cada uma de suas etapas.sudo dnf history redo <transaction ID>
Automatizar Aplicação de Patches
Uma alternativa para executar manualmente o dnf upgrade é usar a Ferramenta Automática DNF. Essa ferramenta fornece notificações automáticas de atualizações, faz download delas e instala os pacotes automaticamente usando temporizadores systemd.
-
Instale o pacote necessário e ative o temporizador.
sudo dnf install dnf-automatic -ysudo systemctl enable --now dnf-automatic.timer -
Exiba a configuração padrão upgrade_type.
O arquivo de configuração da Ferramenta Automática DNF é
/etc/dnf/automatic.conf. Por padrão, o upgrade automático se aplica a todos os upgrades disponíveis. Você pode alterar o parâmetroupgrade_typeparasecuritypara usar apenas os upgrades de segurança.grep upgrade_type /etc/dnf/automatic.conf
Próximas Etapas
Este tutorial ensinou a gerenciar pacotes de software no sistema Oracle Linux e garantir que você os mantenha atualizados com as correções de segurança mais recentes. Portanto, atualize seus sistemas e confira a seção Links Relacionados para obter mais detalhes e treinamento sobre o Oracle Linux.
Links Relacionados
Mais Recursos de Aprendizagem
Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal do Oracle Learning YouTube. Além disso, acesse education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.