Como faço para atualizar de forma não interativa o sistema FreeBSD (e portas)?

5

Essencialmente, estou procurando uma versão totalmente silenciosa e não interativa de

freebsd-update fetch
freebsd-update install

e

portsnap fetch update
    
por oberstet 16.05.2013 / 17:23

5 respostas

5

Para o FreeBSD < 10, os seguintes trabalhos:

Permita que freebsd-update execute a busca sem stdin anexado a um terminal:

sed 's/\[ ! -t 0 \]/false/' /usr/sbin/freebsd-update > /tmp/freebsd-update
chmod +x /tmp/freebsd-update

Permita que portsnap execute a busca sem stdin anexado a um terminal:

sed 's/\[ ! -t 0 \]/false/' /usr/sbin/portsnap > /tmp/portsnap
chmod +x /tmp/portsnap

Créditos: veewee

Para o FreeBSD 10+, a solução na resposta abaixo por @uchida deve ser preferida!

    
por 18.05.2013 / 15:40
7

No FreeBSD-10.2, há uma nova opção para permitir isso:

freebsd-update install --not-running-from-cron

Da página de manual :

 --not-running-from-cron
        Force freebsd-update fetch to proceed when there is no
        controlling tty.  This is for use by automated scripts and
        orchestration tools.  Please do not run freebsd-update
        fetch from crontab or similar using this flag, see:
        freebsd-update cron
    
por 23.11.2015 / 00:28
5

No FreeBSD 10.0R e posterior, defina a variável de ambiente PAGER no freebsd-update

env PAGER=cat freebsd-update fetch
freebsd-update install

Para portsnap (8) no FreeBSD 10.0R e posterior, o comportamento padrão, ou seja, sem a opção --interactive , é não-interativo.

portsnap fetch update
    
por 21.12.2014 / 21:29
2

A instalação cega de atualizações (mesmo freebsd-update updates) pode ser uma Coisa Ruim: Uma opção em rc.conf alterações e, de repente, sua máquina não tem mais o daemon SSH.

Da mesma forma, você provavelmente não desejará instalar cegamente todas as atualizações de porta disponíveis via portsnap / portupgrade -a - você pode pegar um grande número de versão e quebrar o universo, ou você pode ter apenas uma porta com nova configuração opções que precisam para serem alteradas (você pode fazer com que as portas aceitem qualquer que seja seu padrão, mas às vezes não é o que você quer).

A melhor forma de fazer isso é usar uma ferramenta de gerenciamento de configuração como Puppet ou radmind para implantar suas alterações.
Crie um modelo de máquina com base em uma caixa que você tenha atualizado e testado com êxito e implante-o no restante do ambiente. Isso garante que você esteja implementando uma configuração do sistema em funcionamento e que você só precisa executar as etapas manuais uma vez (na máquina de onde você está modelando).

    
por 16.05.2013 / 17:39
0

Para a versão do FreeBSD > 11

freebsd-update é um script e existe "Função para perguntar ao usuário se está tudo ok". A função é:

continuep ()

É suficiente comentar tudo nesta função, mas a linha com

retornar 0

Depois disso, esta função retorna uma resposta positiva à pergunta "y / n".

Importante! Lembre-se, isso NÃO é recomendado e faça isso apenas por seu próprio risco!

# /tmp/freebsd-update -r 11.1-RELEASE upgrade ; while [ $? -eq 1 ] ; do sleep 3; /tmp/freebsd-update -r 11.1-RELEASE upgrade ; done
    
por 20.09.2017 / 19:22

Tags