onde o uname obtém o número da versão no FreeBSD RELEASE?

4

Eu instalei o FreeBSD 9.1-RELEASE, após o upgrade binário para o 9.2-RELEASE usando o freebsd-update, todos os arquivos que eu verifiquei estão corretos em 9.2-RELEASE-p4. Por exemplo:

  1. o kernel contém a nova versão:

    # strings /boot/kernel/kernel | grep RELEASE|grep 9
    @(#)FreeBSD 9.2-RELEASE-p4 #0: Tue Apr  8 18:08:22 UTC 2014
    FreeBSD 9.2-RELEASE-p4 #0: Tue Apr  8 18:08:22 UTC 2014
    9.2-RELEASE-p4
    
  2. a primeira linha do / etc / hosts mostra que ele foi atualizado para o 9.2:

    # $FreeBSD: release/9.2.0/etc/hosts 109997 2003-01-28 21:29:23Z dbaker $
    

Eu perguntei em outro fórum e verifiquei que:

  1. Eu nunca compilei o kernel e não tenho as pastas / usr / src e / usr / obj.

  2. o padrão / etc / profile não é alterado, em particular eu nunca defini UNAME_ * vars.

  3. Eu também tentei "UNETENV UNAME_r"

No entanto, o uname de alguma forma mostra a versão 9.1 errada:

# uname -a
FreeBSD localhost.localdomain 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r243825: Tue Dec  4 09:23:10 UTC 2012     root at farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64

Então, de onde o uname obtém o número da versão? Quais arquivos podem não ter sido atualizados? Obrigada!

    
por John 06.05.2014 / 08:25

1 resposta

4

FreeBSD uname está usando sysctl valores para preencher sua saída, então não há nenhum arquivo para atualizar exceto o kernel.

Aqui está a chave sysctl correspondente a uname options (de usr.bin / uname / uname.c ):

  • -i : kern.ident
  • -m : hw.machine
  • -n : kern.hostname
  • -p : h.machine_arch
  • -r : kern.osrelease
  • -s ou -o : kern.ostype
  • -v : kern.version

Parece que o seu kernel atual não é o que você pensa. Você pode verificar o arquivo do kernel em uso com:

# sysctl kern.bootfile
    
por 08.05.2014 / 01:59

Tags