O Homebrew 6.0 Acabou de Mudar Como o Seu Mac Instala Softwares
BBetter Stack
Computing/SoftwareInternet Technology
Transcript
00:00:00Há alguns meses, neste mesmo canal, fizemos um vídeo que basicamente chamava o Homebrew
00:00:05de algo da Idade da Pedra, só usado porque o Nix dá um banho nele. Então é justo que eu
00:00:12volte aqui para dizer isto: a coisa da Idade da Pedra que usávamos acabou de lançar sua primeira
00:00:17versão principal em anos, o Homebrew 6.0. E aqui está a grande novidade: o destaque não é um monte de novas
00:00:23funcionalidades, mas sim uma reformulação completa de segurança. O Homebrew finalmente amadureceu.
00:00:30Agora, deixe-me explicar o que realmente mudou, porque é mais interessante do que apenas um número de versão maior.
00:00:38Durante basicamente toda a existência do Homebrew, quando você adicionava um tap de terceiros — o repositório de pacotes de outra pessoa —
00:00:45o Homebrew simplesmente executava o código Ruby deles. Ele executava sem hesitar. Qualquer tap,
00:00:51código arbitrário, sem fazer perguntas. Pense no mundo em que vivemos hoje.
00:00:56Os gerenciadores de pacotes são o alvo número um para ataques de cadeia de suprimentos no momento. NPM e todos os outros
00:01:01sendo atingidos sem parar. Executar qualquer código que o repositório nos entrega é um péssimo padrão. E a nova funcionalidade do Homebrew 6.0
00:01:08veio para acabar com isso. Ela se chama Tap Trust. Se você gosta de dicas e truques de programação como este,
00:01:15não se esqueça de se inscrever. Temos vídeos novos a todo momento. Mas deixe-me começar pela parte que você
00:01:19vai sentir no dia a dia. “brew version”. Aí está: 6.0. Agora veja o que acontece quando instalo
00:01:25algo que traz algumas dependências. Em vez de fazer tudo silenciosamente, o Brew agora exibe
00:01:31um resumo de tudo o que está prestes a instalar e espera pela minha confirmação. Esse é o novo modo Ask,
00:01:38que já vem ativado por padrão para desenvolvedores. Uma mudança sutil, mas que garante que você veja o plano antes do Brew
00:01:44mexer em qualquer coisa da sua máquina. Agora o principal: o Tap Trust. Veja quando adiciono um tap de terceiros.
00:01:50O Homebrew me interrompe na hora. Ele diz que o tap ainda não é confiável e não executará uma linha sequer de código
00:01:56até que eu autorize explicitamente. Eu o marco como confiável usando “brew trust” e só então ele realmente
00:02:03executa. Os taps oficiais do Homebrew já são confiáveis de fábrica. Então, sua rotina normal de uso do Brew
00:02:09continua exatamente a mesma. Mas aquele tap suspeito de um desconhecido do GitHub que você achou num LEAME,
00:02:16agora funciona como uma porta trancada. Você precisa aprovar manualmente. E para ser sincero,
00:02:20essa foi uma decisão muito sábia no cenário atual. E essa não é a única grande melhoria.
00:02:25O sistema interno de metadados agora é o padrão, o que significa que todas as informações dos pacotes vêm em um
00:02:30único download rápido em vez de dezenas de requisições. Com isso, o “brew update” ficou muito mais rápido. Há também um
00:02:37comando novinho em folha, “brew execute”, que é basicamente o npx do Homebrew. Rode uma ferramenta uma única vez sem precisar
00:02:45instalá-la permanentemente no seu sistema. Há o “brew vulns”, que analisa os pacotes já instalados em busca de
00:02:51falhas de segurança conhecidas e alertas. E o 6.0 corrigiu discretamente três vulnerabilidades de segurança, incluindo uma que podia executar
00:02:58código como root através do instalador do Mac. Esta é uma atualização de respeito. Certo, mas aqui está o
00:03:04ponto de atenção nisso tudo. E para alguns de vocês, será um grande detalhe, então não vou esconder de ninguém.
00:03:09O Tap Trust é uma mudança com incompatibilidade retroativa. Se você tem pipelines de CI que dependem de taps de terceiros,
00:03:14o “brew doctor” agora gera um erro no momento em que detecta um tap não confiável. E muitas das rotinas padrão do GitHub
00:03:20Actions executam o “brew doctor” logo na primeira etapa. Por isso, quando as pessoas atualizaram, os builds simplesmente começaram a falhar.
00:03:28A solução é marcar esses taps como confiáveis na sua configuração, mas você mesmo precisa fazer essa alteração.
00:03:35Ninguém vai fazer isso por você. O mesmo vale para o modo Ask. Se você tem scripts que presumiam
00:03:41instalações do Brew sem confirmação, esse novo prompt pode fazer tudo travar indefinidamente. Mas vendo o panorama geral,
00:03:46se você é um usuário comum apenas instalando aplicativos no dia a dia, quase nada parece ter mudado.
00:03:51Trata-se de um lançamento focado em segurança e arquitetura, não apenas uma maquiagem visual. E vale desfazer um mito aqui:
00:03:58Muitas ferramentas estão sendo reescritas em Rust. Não, o Homebrew não está sendo reescrito em Rust,
00:04:04pelo menos não agora. Aquilo foi apenas um experimento. O foco voltou totalmente para a base de código em Ruby, como
00:04:10sempre esteve. Afinal, vale a pena atualizar para o Homebrew 6.0? Para quase todo mundo, a resposta é sim.
00:04:16Você recebe três correções de segurança e, para falar a verdade, o “brew update” vai atualizar você para o 6.0
00:04:22quer você tenha se planejado para isso ou não. Agora, as pessoas que talvez precisem ir com um pouco mais de calma
00:04:27são as que gerenciam CI com taps de terceiros ou automações que esperam instalações silenciosas. Resolva essas dependências
00:04:33primeiro e estará tudo certo. E se você ainda usa um Mac com Intel, fique atento: o 6.0 estabelece o cronograma
00:04:40para encerrar o suporte ao Intel nos próximos anos. Já quem usa Apple Silicon, os computadores mais recentes,
00:04:46pode ficar totalmente tranquilo. O update adiciona inclusive suporte aos novos chips M5. Eu resumiria a situação assim:
00:04:53Por anos, o Homebrew foi uma facilidade, para dizer o mínimo — a forma mais rápida de colocar softwares em um
00:04:59Mac. Com a versão 6.0, ele se transformou em uma espécie de ponto de verificação, onde o código
00:05:05que entra na sua máquina finalmente precisa provar que é confiável. Esse é um grande passo. O gerenciador de pacotes
00:05:10se adaptou ao modelo de ameaças no qual todos nós já vivemos há anos. É isso que realmente
00:05:15importa aqui. Não o número da versão em si, seja 6.0 ou 6.1, mas o que veio junto com ela. Se você gosta de dicas e truques
00:05:21de programação como este, inscreva-se no canal do BetterStack. Nos vemos no próximo vídeo.