AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 787331
Accepted
Fravadona
Fravadona
Asked: 2024-11-28 08:13:22 +0800 CST2024-11-28 08:13:22 +0800 CST 2024-11-28 08:13:22 +0800 CST

Atualizações automáticas condicionais RHEL8

  • 772

Fui encarregado de configurar atualizações automáticas em algumas estações de trabalho e servidores RHEL8 de alto desempenho.
Não gosto disso, pois muitas coisas podem dar errado com atualizações não supervisionadas, mas bem, parece que provocar bugs e perdas de dados é "mais seguro" do que ter computadores não atualizados pelo menos semanalmente...

Os computadores de destino usam zfse kmod-nvidia(de zfsonlinux.org e www.elrepo.org , respectivamente); ambos os RPMs precisam de uma "versão" de kernel correspondente, então a primeira medida de segurança que eu gostaria de implementar é garantir que, quando um novo kernel estiver disponível, o e instalado zfs( kmod-nvidiaou sua atualização disponível) seja compatível com ele.

Por exemplo, agora há um novo kernel:

$ sudo dnf update --assumeno
Updating Subscription Management repositories.
Last metadata expiration check: 0:57:59 ago on Thu 28 Nov 2024 12:08:30 AM CET.
Dependencies resolved.
==========================================================================================================================================================
 Package                           Architecture           Version                                  Repository                                        Size
==========================================================================================================================================================
Installing:
 kernel                            x86_64                 4.18.0-553.30.1.el8_10                   rhel-8-for-x86_64-baseos-rpms                     10 M
Upgrading:
 bpftool                           x86_64                 4.18.0-553.30.1.el8_10                   rhel-8-for-x86_64-baseos-rpms                     11 M
 kernel-headers                    x86_64                 4.18.0-553.30.1.el8_10                   rhel-8-for-x86_64-baseos-rpms                     12 M
 kernel-tools                      x86_64                 4.18.0-553.30.1.el8_10                   rhel-8-for-x86_64-baseos-rpms                     11 M
 kernel-tools-libs                 x86_64                 4.18.0-553.30.1.el8_10                   rhel-8-for-x86_64-baseos-rpms                     10 M
 pam                               x86_64                 1.3.1-36.el8_10                          rhel-8-for-x86_64-baseos-rpms                    748 k
 python3-perf                      x86_64                 4.18.0-553.30.1.el8_10                   rhel-8-for-x86_64-baseos-rpms                     11 M
 webkit2gtk3                       x86_64                 2.46.3-2.el8_10                          rhel-8-for-x86_64-appstream-rpms                  28 M
 webkit2gtk3-jsc                   x86_64                 2.46.3-2.el8_10                          rhel-8-for-x86_64-appstream-rpms                 4.5 M
Installing dependencies:
 kernel-core                       x86_64                 4.18.0-553.30.1.el8_10                   rhel-8-for-x86_64-baseos-rpms                     43 M
 kernel-devel                      x86_64                 4.18.0-553.30.1.el8_10                   rhel-8-for-x86_64-baseos-rpms                     24 M
 kernel-modules                    x86_64                 4.18.0-553.30.1.el8_10                   rhel-8-for-x86_64-baseos-rpms                     36 M

Transaction Summary
==========================================================================================================================================================
Install  4 Packages
Upgrade  8 Packages

Total download size: 202 M

As kmod-nvidiacosturas instaladas são compatíveis:

$ sudo dnf repoquery --requires kmod-nvidia | awk '$1 == "kernel"'
kernel >= 4.18.0-553.el8_10

Mas não sei o que dizer sobre zfs, pois não há menção de nenhum kernelrequisito em seu RPM:

$ sudo dnf repoquery --requires zfs
Updating Subscription Management repositories.
/bin/sh
/usr/bin/python3.6
libblkid.so.1()(64bit)
libblkid.so.1(BLKID_1.0)(64bit)
libc.so.6(GLIBC_2.28)(64bit)
libcrypto.so.1.1()(64bit)
libdl.so.2()(64bit)
libm.so.6()(64bit)
libm.so.6(GLIBC_2.2.5)(64bit)
libnvpair.so.3()(64bit)
libnvpair3(x86-64) = 2.1.15-1.el8
libnvpair3(x86-64) = 2.1.15-2.el8
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.12)(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libpthread.so.0(GLIBC_2.3.2)(64bit)
librt.so.1()(64bit)
librt.so.1(GLIBC_2.3.3)(64bit)
libtirpc.so.3()(64bit)
libudev.so.1()(64bit)
libudev.so.1(LIBUDEV_183)(64bit)
libuuid.so.1()(64bit)
libuuid.so.1(UUID_1.0)(64bit)
libuutil.so.3()(64bit)
libuutil3(x86-64) = 2.1.15-1.el8
libuutil3(x86-64) = 2.1.15-2.el8
libz.so.1()(64bit)
libzfs.so.4()(64bit)
libzfs5(x86-64) = 2.1.15-1.el8
libzfs5(x86-64) = 2.1.15-2.el8
libzfs_core.so.3()(64bit)
libzpool.so.5()(64bit)
libzpool5(x86-64) = 2.1.15-1.el8
libzpool5(x86-64) = 2.1.15-2.el8
openssl
rtld(GNU_HASH)
sysstat
systemd
util-linux
zfs-kmod = 2.1.15

Como posso verificar se a atualização instalada (ou disponível) zfsé compatível com o novo kernel?

rhel
  • 1 1 respostas
  • 36 Views

1 respostas

  • Voted
  1. Best Answer
    telcoM
    2024-11-28T09:09:30+08:002024-11-28T09:09:30+08:00

    As dependências do kernel não são especificadas no zfspacote principal, mas nos pacotes zfs-dkmsou kmod-zfsrespectivamente, dependendo de qual repositório variante você está usando.

    Da documentação do OpenZFS em openzfs.github.io:

    Por padrão, o zfs-releasepacote é configurado para instalar pacotes estilo DKMS para que eles funcionem com uma ampla gama de kernels. Para instalar os kmods de rastreamento kABI, o repositório padrão deve ser alternado de zfspara zfs-kmod. Tenha em mente que os kmods de rastreamento kABI são verificados apenas para funcionar com o kernel não-Stream fornecido pela distribuição.

    dnf config-manager --disable zfs
    dnf config-manager --enable zfs-kmod
    dnf install zfs
    

    Como sua lista de dependências zfsjá inclui zfs-kmod, parece que você já está fazendo isso.

    Entretanto, diferentemente do kmod-nvidia, o kmod-zfspacote disponível nesse repositório de variantes rastreia dependências do kernel no nível do símbolo do kernel, não no nível da versão do pacote do kernel:

    rpm -q --requires kmod-zfs-2.1.15-2.el8.x86_64.rpm
    
    kmod-zfs-2.1.15-2.el8.x86_64
    /bin/sh
    /bin/sh
    /bin/sh
    /usr/sbin/depmod
    /usr/sbin/depmod
    /usr/sbin/weak-modules
    /usr/sbin/weak-modules
    kernel(PDE_DATA) = 0xea2257cf
    kernel(__alloc_disk_node) = 0x75d19f57
    kernel(__alloc_pages_nodemask) = 0x8ab32967
    kernel(__alloc_percpu) = 0x949f7342
    kernel(__bitmap_weight) = 0x63c4d61f
    kernel(__check_object_size) = 0x88db9f48
    
    ... <quite a lot of kernel symbol dependencies> ...
    
    kernel(zlib_inflateEnd) = 0x107e5878
    kernel(zlib_inflateInit2) = 0x35a88f28
    kernel(zlib_inflate_workspacesize) = 0xce5ac24f
    rpmlib(CompressedFileNames) <= 3.0.4-1
    rpmlib(FileDigests) <= 4.6.0-1
    rpmlib(PayloadFilesHavePrefix) <= 4.0-1
    rpmlib(PayloadIsXz) <= 5.2-1
    zfs = 2.1.15
    

    Por outro lado, o zfs-dkmspacote especifica suas dependências em relação ao kernel-develpacote e pode aceitar uma gama maior de versões do kernel:

    rpm -q --requires zfs-dkms*.rpm
    
    zfs-dkms-2.1.15-2.el8.noarch
    /bin/sh
    /bin/sh
    /bin/sh
    diffutils
    diffutils
    dkms >= 2.2.0.3
    dkms >= 2.2.0.3
    dkms >= 2.2.0.3
    dkms >= 2.2.0.3
    gcc
    gcc
    kernel-devel >= 3.10
    kernel-devel >= 3.10
    kernel-devel <= 6.7.999
    kernel-devel <= 6.7.999
    make
    make
    perl
    perl
    rpmlib(CompressedFileNames) <= 3.0.4-1
    rpmlib(FileDigests) <= 4.6.0-1
    rpmlib(PayloadFilesHavePrefix) <= 4.0-1
    rpmlib(PayloadIsXz) <= 5.2-1
    

    Com o DKMS, a (re)construção do módulo do kernel é acionada pela fase de pós-instalação do pacote do kernel antes da etapa de atualização do bootloader e, se falhar, deve ser tratada como uma falha de instalação do pacote do kernel. Em outras palavras, se o DKMS não puder fornecer um módulo do kernel compatível para o novo kernel, a instalação do novo kernel não será concluída.

    Com kmod-zfs, as dependências do símbolo do kernel devem bloquear a instalação de um RPM do kernel não compatível até que o ZFS também possa ser atualizado para corresponder ao novo kernel.

    Em outras palavras, você já tem um equivalente da medida de segurança que imaginou em vigor.

    • 4

relate perguntas

  • Por que o Linux estaria matando meu processo?

  • linux redhat 7 (ou centos 7) + firewalld mascarar o firewall

  • comando systemctl não funciona no RHEL 6

  • Como instalo o docker no RHEL 7 offline?

  • Desativar a maximização automática de janelas no Gnome3

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve