Execute primeiro '/usr/sbin/freebsd-update.fixed fetch'
Poudriere provavelmente deve verificar se o freebsd-update encontrou alguma atualização antes de informá-lo para instalar as atualizações (possivelmente inexistentes), para evitar confundir os usuários com a mensagem acima.
~ / git / poudriere # grep 'Executar. * primeiro' `which freebsd-update` echo "Execute primeiro '$ 0 install'." echo "Execute '$ 0 fetch' primeiro."
Isso está vindo de freebsd-update
.
Sem mais contexto no relatório, não tenho certeza de onde isso está sendo mostrado e em que condições.
O problema é que jail.sh executa /usr/sbin/freebsd-update.fixed fetch install
. Se fetch
descobrir que não há atualizações necessárias (por exemplo, é uma nova versão que ainda não teve nenhum aviso de segurança), o install
exibe a mensagem confusa.
A solução é executar /usr/sbin/freebsd-update.fixed fetch
, verificar se alguma atualização foi obtida e, em seguida, executar /usr/sbin/freebsd-update.fixed install
.
Como posso determinar se alguma atualização foi obtida?
Verifique se /var/db/freebsd-update/f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install
é um link simbólico.
Prefiro não cometer tal violação de camada e tornar o Poudriere dependente dos arquivos internos do freebsd-update como este. Em vez disso, vou apenas enviar a mensagem (como feito com outro código, como as verificações de tty).
Se Poudriere pode detectar se uma busca acabou de ser feita, por que o freebsd-update imprime a mensagem?
por que o freebsd-update imprime a mensagem
Porque freebsd-update fetch install
é sinônimo de freebsd-update fetch; freebsd-update install
.
Certo, mas você está me dizendo que poudriere pode detectar se uma atualização acabou de ser obtida, então freebsd-update install
deve ser capaz de fazer e não imprimir uma mensagem inútil se nada foi obtido. Uma comparação mtime simples funcionaria nisso, como fazemos com pkg update
, mostrando apenas a mensagem depois que a última busca é um certo período de tempo desatualizado.
Sim, o freebsd-update provavelmente deve lidar com isso. O motivo pelo qual não fiz isso originalmente é que não queria encorajar as pessoas a baixar e instalar atualizações às cegas.
Mas, neste ponto, mesmo que eu conserte o freebsd-update, poudriere invocará o antigo código freebsd-update por vários anos, então ensinar poudriere a remover isso evitaria alguma confusão.
Comentários muito úteis
Sim, o freebsd-update provavelmente deve lidar com isso. O motivo pelo qual não fiz isso originalmente é que não queria encorajar as pessoas a baixar e instalar atualizações às cegas.
Mas, neste ponto, mesmo que eu conserte o freebsd-update, poudriere invocará o antigo código freebsd-update por vários anos, então ensinar poudriere a remover isso evitaria alguma confusão.