Observação:

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:

Pré-requisitos

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.

  1. Abra um terminal no Luna Desktop.

  2. Clone o projeto linux-virt-labs GitHub.

    git clone https://github.com/oracle-devrel/linux-virt-labs.git
  3. Altere para o diretório de trabalho.

    cd linux-virt-labs/ol
  4. Instale as coleções necessárias.

    ansible-galaxy collection install -r requirements.yml
  5. 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 define ansible_python_interpreter para 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

  1. Abra um terminal e estabeleça conexão via SSH com a instância ol-node-01.

    ssh oracle@<ip_address_of_instance>
  2. Obtenha uma lista de repositórios ativados.

    dnf repolist

    O DNF procura no diretório /etc/yum.repos.d os arquivos que terminam em .repo. Você pode passar a opção all para 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 o enabled=1 e desativado quando o enabled=0.

  3. Ative um repositório.

    Oracle Linux 10:

    sudo dnf config-manager --enable ol10_codeready_builder

    Oracle Linux 9:

    sudo dnf config-manager --enable ol9_codeready_builder

    Oracle Linux 8:

    sudo dnf config-manager --enable ol8_codeready_builder
  4. Desativar um repositório.

    Oracle Linux 10:

    sudo dnf config-manager --disable ol10_codeready_builder

    Oracle Linux 9:

    sudo dnf config-manager --disable ol9_codeready_builder

    Oracle Linux 8:

    sudo dnf config-manager --disable ol8_codeready_builder
  5. 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-el10

    Oracle Linux 9:

    sudo dnf install -y oracle-instantclient-release-el9

    Oracle Linux 8:

    sudo dnf install -y oracle-instantclient-release-el8

    Embora não seja preferível, você também pode instalar repositórios por:

    1. Criando diretamente um novo arquivo .repo em /etc/yum.repos.d
    2. Usando o dnf config-manager --add-repo <repo_file>, que permite instalar um arquivo de repositório armazenado localmente ou de um URL
  6. 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 comandos dnf. Para corrigir esse problema, você pode remover todos os itens em cache.

    dnf clean all

    O 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.

  1. Obtenha uma lista de pacotes disponíveis dos repositórios ativados.

    dnf list

    Você pode restringir a saída retornada usando as opções installed ou available e até mesmo solicitando um nome de pacote específico como dnf list available git.

  2. Liste os módulos disponíveis.

    dnf module list

    A saída mostra os módulos disponíveis para o sistema, fluxos associados e perfis em que:

    • Name: Nome do módulo
    • Stream: Versão do fluxo
    • Profiles: Perfis disponíveis e seus status
      • common: Uma implantação reforçada pronta para produção e é o perfil padrão
      • development: Instala os pacotes necessários para fazer modificações no módulo
      • minimal: 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 list para ver o status apenas desse módulo.

  3. Obter informações sobre um pacote ou módulo.

    dnf info zsh

    Nesse caso, zsh é o nome do pacote. Você faz o mesmo para módulos, mas adiciona o comando module e anexa o módulo específico, como dnf module info php. Se você precisar de informações sobre um stream de módulo específico, passe --profile com o module:stream em vez do nome do módulo.

    dnf module info --profile php:8.2
  4. Procure um pacote disponível ou instalado.

    dnf search php
  5. Procure o pacote que fornece um nome de arquivo ou comando específico.

    O comando provides, com um alias de whatprovides, localiza o pacote que corresponde ao nome do arquivo. Se você não fornecer um caminho completo, o DNF anexará /usr/sbin e /usr/bin ao nome do arquivo. Para fins legados, ele também anexa /sbin e /bin.

    dnf provides sudo
  6. Instale um pacote.

    sudo dnf install tmux

    Responda y para 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>.

  7. Reinstale um pacote.

    sudo dnf reinstall -y tmux

    Esse comando essencialmente executa um dnf remove e, em seguida, um dnf install. A diferença crítica é que o uso da reinstalação mantém qualquer configuração personalizada dos arquivos associados ao pacote.

  8. 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.22

    Oracle Linux 8:

    sudo dnf module -y enable nginx
  9. Instale um módulo.

    Oracle Linux 9:

    sudo dnf module install -y nginx:1.22

    Oracle Linux 8:

    sudo dnf module install -y nginx:1.14

    Depois de instalar os pacotes, a execução de sudo dnf module list nginx mostrará um [i] ao lado do perfil 1.22 do fluxo common [d].

  10. Remova um pacote ou módulo.

    sudo dnf remove -y tmux

    Da mesma forma, você pode remover um módulo usando a mesma sintaxe substituindo o nome do pacote pelo module:stream/profile.

  11. 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
  12. Desativar um módulo.

    sudo dnf module -y disable nginx

    Ao 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.

  13. 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

  1. Liste todas as erratas disponíveis.

    dnf updateinfo list

    A 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ça
    • bugfix : Correção de bug
    • enhancement : 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 --installed para obter uma lista dessas correções de segurança instaladas no host.

  2. Exibir um resumo das erratas disponíveis.

    dnf updateinfo summary
  3. 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=Important

    O 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 ID para obter um CVE específico. O uso do comando info em vez de list e as opções exatas fornecem informações detalhadas sobre a consultoria específica ou o CVE.

  4. Atualize cada pacote para sua versão mais recente.

    sudo dnf upgrade -y

    Você pode opcionalmente excluir um pacote específico do upgrade com a opção -x seguida do nome do pacote. Embora o Oracle Linux recomende que você aplique todas as erratas, o comando upgrade utiliza 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-minimal para 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.

  1. Liste os grupos disponíveis.

    dnf group list
  2. 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.

  3. Mostrar os pacotes individuais que um grupo contém.

    dnf group info Core
  4. Instale o grupo.

    sudo dnf group install "Server with GUI" --assumeno

    A opção --assumeno responderá 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 -y para instalá-la automaticamente. O DNF fornece os comandos dnf group update e dnf group remove para 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.

  1. Liste todas as transações DNF.

    dnf history

    Você pode obter informações relacionadas a uma das transações executando dnf history info <transaction ID>.

  2. Reverter uma transação específica.

    A opção rollback irá desfazer todas as transações após o <transaction ID> especificado. Se você só quiser reverter uma única transação, use undo.

    sudo dnf history rollback <transaction ID>

    O comando DNF history rollback incrementa o ID da transação e registra o rollback como uma transação exclusiva.

  3. Repita uma transação específica.

    Você pode redo a 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.

  1. Instale o pacote necessário e ative o temporizador.

    sudo dnf install dnf-automatic -y
    sudo systemctl enable --now dnf-automatic.timer
  2. 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âmetro upgrade_type para security para 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.

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.