O comando que remove o aviso de assinatura: a linha mais difundida, o dano mais silencioso

A primeira coisa que todo mundo encontra depois de instalar é o aviso de assinatura, e a primeira solução que todo mundo acha é um comando de uma linha. A versão difundida desse comando foi medida: pode quebrar a biblioteca inteira da interface.

AtlasPVE ·

Este verbete responde a

  • proxmox remover aviso de assinatura
  • proxmox no valid subscription
  • proxmox post install script
  • o que fazer depois de instalar o proxmox
  • proxmox remover o nag

Você instalou o Proxmox, entrou e apareceu o aviso de assinatura. Incomoda, porque volta a cada login. Você pesquisa e acha um comando de uma linha. Parece funcionar.

Este artigo é sobre esse comando, mas o assunto de verdade não é o comando: o custo silencioso de colar algo que você não entende.

O erro medido

Dentro da linha amplamente divulgada há um defeito real, e o defeito é sutil.

Nas expressões regulares básicas das ferramentas clássicas de texto, uma barra vertical escrita com contrabarra não é um caractere comum, é o operador de alternativa. A condição no código da interface contém duas barras verticais, e quando o comando as escapa do jeito que estão, entre dois operadores de alternativa nasce uma alternativa vazia.

Uma alternativa vazia casa em toda posição do arquivo. Executada junto com "substituir tudo", a expressão espalha a mudança pelo arquivo inteiro.

Isso não é palpite. Foi medido em uma cópia do arquivo real: 26458 de 26458 linhas mudaram, e a contagem de false no arquivo foi de 558 para 26458. O administrador que rodou aquele comando teria quebrado toda a biblioteca de interface do Proxmox.

Ainda há um segundo problema: a condição visada não cabe em uma linha, o Proxmox a espalha em seis. Uma ferramenta que trabalha linha a linha jamais teria conseguido acertá-la corretamente de qualquer forma.

Por que ninguém percebeu

Porque o dano é silencioso. O comando não dá erro, nada acende em vermelho. A interface pode continuar funcionando por um tempo, o problema aparece depois, e naquele momento ninguém liga com "o comando que colei semana passada".

A lição geral: "funciona pra todo mundo" não é prova. Na maioria das vezes é só prova de que ninguém olhou.

Quatro regras para toda mudança dessa classe

Qualquer operação que toque um arquivo de sistema, seja quem for que a faça, precisa carregar estes quatro pontos.

O backup é feito uma vez e não é sobrescrito. Atualizá-lo a cada execução significa que na segunda você faz backup do estado quebrado.

A mira é estreita. Se o texto visado realmente mudou, a operação não é feita. Mudar no chute o mais parecido é pior do que não mudar nada.

Depois de escrever, relê-se. Se o resultado esperado não aparecer, o backup é restaurado. Uma escrita não dar erro não quer dizer que escreveu a coisa certa.

Deixa-se uma marca. A pergunta "este arquivo está alterado" precisa ser respondida pela presença de uma marca, não por palpite.

O caso em que ninguém pensa: e se o backup já estiver quebrado

Mesmo fazendo os quatro, sobra uma brecha. E se outra ferramenta quebrou o arquivo antes e você fez o backup depois?

Aí a reversão traz de volta o arquivo quebrado e você acha que consertou. Por isso a reversão também precisa ser verificada: o original voltou mesmo, ou o próprio backup já estava alterado?

Esse é um exemplo da pergunta que precisa ser feita o tempo todo ao trabalhar com uma máquina já instalada: não o que acontece numa instalação limpa, mas o que acontece numa máquina que carrega um estado antigo.

O que o Atlas faz

O Atlas faz esse trabalho dentro do produto em vez de colar um comando, e aplica os quatro pontos acima.

O backup é feito uma vez e não é sobrescrito. A mira é estreita: um padrão flexível quanto a espaços mas fiel no resto, de modo que continua valendo se o Proxmox mudar a formatação, mas se a condição em si mudou, nada é feito. Depois de escrever, o arquivo é relido e verificado; se o resultado esperado não aparecer, o backup é restaurado. E o texto colocado carrega uma marca, então a pergunta "está alterado" é respondida com certeza.

No lado da reversão o último caso também é tratado: depois de restaurar o backup, verifica-se se o original voltou mesmo, e se não voltou isso é dito com clareza.

A única frase que este artigo realmente quer dizer é esta: o trabalho não é difícil, mas a diferença entre fazer certo e parecer que funciona passa por medir.

Fontes

A documentação oficial do Proxmox. Em inglês, e é ela que dá a palavra final neste assunto.

Verbetes relacionados

Como isso aparece dentro do Atlas?

Ir para a página do produto