Lançamento do Homebrew 6.0.0
(brew.sh)- A API JSON interna, que reúne todos os metadados em um único download, passou a ser o padrão, acelerando as atualizações e reduzindo a comunicação de rede
- A variável opt-in existente
HOMEBREW_USE_INTERNAL_APIfoi marcada como deprecated
- A variável opt-in existente
- Aplicação do sandbox Bubblewrap no Linux, isolando a execução das etapas de build, test e postinstall da mesma forma que no macOS
- Com base em pesquisas com usuários, o modo ask passou a ser o padrão para desenvolvedores, exibindo um resumo das dependências e um prompt de confirmação ao executar
brew installebrew upgrade - No
brew bundle, a instalação paralela de formulae agora é executada automaticamente por padrão, com adição de extensões para npm e krew, além de suporte aowingetdo Windows - Melhorias de desempenho em toda a inicialização e no processo de upgrade, incluindo aceleração de cerca de 30% no
brew leaves - Adicionado suporte inicial ao macOS 27 (Golden Gate)
- Com o fim do suporte a Intel, o macOS Intel
x86_64passará para Tier 3 em setembro de 2026, com descontinuação completa prevista para setembro de 2027
- Com o fim do suporte a Intel, o macOS Intel
- Divulgação e correção de 3 avisos de segurança (bypass de redirecionamento HTTPS→HTTP, execução de código root em postinstall de
.pkg, sequestro de propriedade de plist em/var/tmp) - Adicionados novos comandos como o
brew exec, semelhante aonpx, e obrew vulns, para verificar vulnerabilidades em pacotes instalados - Introdução do framework de install steps, que expõe comportamentos comuns de postinstall e flight na API JSON como dados literais de DSL, eliminando a necessidade de baixar e avaliar arquivos Ruby em tarefas simples
- Aplicação de cooldown de download em ecossistemas de maior risco, como npm e PyPI, para mitigar riscos de segurança no fornecimento upstream
2 comentários
Como faltam recursos para dar suporte até mesmo aos Macs com Intel, e como o GitHub Actions também não vai mais fornecer imagens, o Homebrew não tem outra opção além de seguir nessa direção.
Comentários do Hacker News
Sou @bfontaine no GitHub. Ajudei na manutenção do Homebrew por volta de 2014~2016, e sempre me surpreende ver o Mike mantendo isso há mais de 16 anos e ainda lançando recursos novos
A maioria dos gerenciadores de pacotes do Linux não consegue separar os pacotes instalados pelo usuário dos pacotes do sistema, então é quase impossível organizar uma workstation e difícil decidir o que pode ser removido
Além disso, os gerenciadores de pacotes nativos atualizam mais devagar que o Homebrew, então muitas vezes você acaba recebendo só pacotes desatualizados
Como experimento, migrei todo o meu ambiente de desenvolvimento em nível de SO de Homebrew+pipx+npm para https://mise.jdx.dev/, e na prática funcionou muito bem
Muitas ferramentas são instaladas diretamente de releases do GitHub ou do gerenciador de pacotes correspondente (uv, pnpm, go get etc.), então não existe código-cola de reempacotamento nem atraso de versão
Dá para instalar versões arbitrárias ou várias versões ao mesmo tempo, e trocar dinamicamente a versão ativa por pasta de trabalho ou por ambiente
Curiosamente, o Mise não oferece suporte a dependências, mas no geral isso não foi um problema. Ou o pnpm/uv resolve, ou são binários estáticos que simplesmente funcionam
No passado, ao empacotar um app Python para o Homebrew, tive que trazer 50 dependências como
resources, compilar tudo do código-fonte ou verificar manualmente se já existiam no Homebrew, declarar toolchains de build de 5 linguagens como dependências, esperar mais de 1 hora de CI a cada atualização, e aí um update do upstream criou um “loop de dependência em tempo de build” que não dava para resolver no HomebrewEntão entendo perfeitamente por que o Mise escolhe o “caminho fácil” e depende diretamente dos gerenciadores de pacotes de cada linguagem
A única coisa que não consegui substituir no Brewfile foi a Docker CLI necessária para se comunicar com o Colima, e para cask ainda uso Homebrew. Recomendo experimentar com o ambiente de desenvolvimento. Há muitas ferramentas novas excelentes hoje em dia
Para quem quer usar o Mise para pacotes do Homebrew, existe https://github.com/kennyg/mise-zerobrew
De qualquer forma, a maioria dos projetos usa Docker, e o PHP local serve para coisas que não precisam de Docker, como análise estática
Também tenho alguns projetos que usam Nix, e o Nix humilha quase todo o resto, mas a experiência de uso como um todo é ainda mais hostil que a do git
Pode ter sido falta de habilidade minha, mas havia pacotes demais dando problema no Mise
Também tentei usá-lo para ferramentas globais do sistema, mas não combinou tão bem com ferramentas como Helix, NeoVim e RipGrep, em que basta estar mais ou menos atualizado e não me importo com a versão exata
As dependências no Mise não são automáticas; tudo precisa ser definido manualmente. Isso serve para evitar problemas de ordem causados por instalações paralelas. Por exemplo, se você usa
pipx:black, precisa esperar a instalação do Python terminar. É para isso que serve a opçãodependsda ferramentaIsso é intencional no design. O Mise não foi projetado como uma solução completa de bootstrap, como Homebrew ou Nix, mas como uma sobreposição sobre um sistema já existente
Então você pode gerenciar o Python com Brew e o black com Mise, e isso funciona praticamente sem configuração extra. Acho que essa decisão de design foi um grande acerto. Parece uma desvantagem, mas no fim talvez seja o principal motivo de os usuários acharem o Mise fácil de usar
O Homebrew foi uma ótima forma de fazer bootstrap rápido de ambientes em distribuições Linux imutáveis
Não são muitos usuários, mas segundo https://formulae.brew.sh/analytics/os-version/365d/, sistemas operacionais como Bazzite (1.28%), Bluefin (0.49%) e Aurora (0.28%) da Universal Blue já incluem o Homebrew por padrão
O repositório relacionado é https://github.com/ublue-os/brew
É ridículo que a situação comum para um usuário sem root seja “não pode instalar XY, mas fique à vontade para compilar do código-fonte”
Homebrew, Mise e Nix estão preenchendo esse vazio agora. Flatpak é mais voltado para apps GUI, e Snap... bem, existe
As três primeiras coisas que instalo são Sublime Text, Homebrew e o Bash mais recente. Não pretendo mudar para o Zsh
Boas ferramentas tornam a computação prazerosa
Voltei recentemente do Nix para o Homebrew de novo, e há três grandes motivos para isso
O Brew parece ter suporte melhor para os pacotes que oferece do que o Nix. Alguns pacotes do Nix parecem não ser tão bem mantidos
O suporte a Mac também é melhor. Alguns pacotes do Nix têm funcionalidades desativadas no macOS, e isso parece acontecer porque o mantenedor daquele pacote não tem um Mac para testar
A experiência de uso também é melhor
Claro que sinto falta da reprodutibilidade do ambiente no Nix e da capacidade de criar facilmente um flake com determinados pacotes, mas, no geral, o Brew me trouxe de volta. Ainda assim, continuo gostando do Nix e também usamos Nix na empresa
Fico curioso para saber em que vocês usam Nix na empresa. Existem alguns lugares em que ele parece fazer sentido, mas é difícil apontar exatamente quais
Mas, no fim das contas, normalmente era só uma questão de rodar
defaultsou alguma ferramenta intermediáriaAcabei mantendo o Brew e escrevendo uma função idempotente
setupmac()nobash_profile. Uso Bash 5, e o ChatGPT ajudou bastante porque conhece bem os comandos dedefaultsJunto com o Brewfile que mantenho nos dotfiles, isso resolveu quase todos os problemas de configurar uma conta nova ou um Mac novo, então não preciso dessas ferramentas tão grandiosas
O Homebrew é um projeto sem fins lucrativos operado inteiramente por voluntários, não por funcionários
É preciso dinheiro para pagar integração contínua, software, hardware e hospedagem necessários para melhorias futuras
Como todo o dinheiro das doações vai para tornar o Homebrew melhor para os usuários, talvez valha considerar apoio recorrente via GitHub Sponsors, OpenCollective ou Patreon
Já doei bastante para projetos de código aberto dos quais me beneficio, mas nunca tinha pensado muito no Homebrew; agora acho que devo apoiar também
Fico me perguntando se não daria para colocar algum tipo de mecanismo de cooldown no Homebrew
Os únicos em que quero confiar para distribuir código novo rapidamente na minha máquina são a Apple e o navegador, porque o navegador processa muito mais entrada não confiável do que qualquer outra coisa
Fora isso, para vscode e extensões, npm, homebrew e apps com atualização automática, prefiro esperar alguns dias
Algumas exceções de 0-day podem exigir ignorar o cooldown, mas mesmo hoje o usuário continua vulnerável a 0-days até executar
brew upgradeAlém disso, para itens empacotados a partir de NPM/PyPI/RubyGems, que são alvos desse tipo de ataque, eles já aplicam cooldown tanto no empacotamento quanto na criação do PR de atualização para uma nova versão
--minimum-release-ageouminimumReleaseAge, para reduzir a vulnerabilidade a ataques de cadeia de suprimentosMuitas vezes esses ataques são detectados poucos dias após a invasão
Um exemplo no Bun: https://bun.com/docs/pm/cli/install#minimum-release-age
brew set-channel stable/edge, por exemploEsta semana, depois do anúncio do Elixir 1.20, eu só tinha alguns minutos para testar, e fiquei irritado porque o Brew ainda estava atrasado
Dá para instalar erl e elixir de outras formas, e pessoalmente prefiro a própria toolchain deles, mas naquele momento não valia o esforço
O Brew tem ou tinha opções de compilação a partir do código-fonte para algumas receitas e, apertando um pouco os olhos, isso também acaba sendo uma solução
A exceção é quando o autor envia um PR para o Homebrew core ou publica o próprio Tap. Fico curioso sobre como o Arch lida com isso
Palmas para todas as pessoas que tornam o Homebrew possível. Vale considerar apoiar o projeto: https://opencollective.com/homebrew
O fim do suporte a Intel parece agressivo
Quase todo entusiasta que usa Mac como servidor usa máquinas antigas, e a maioria delas é Intel. Vão perder suporte um ano antes da Apple
Entendo que dar suporte a Intel é trabalhoso e uma questão de escolha, mas sou da opinião de que o Homebrew deveria encontrar uma forma de manter esse suporte pelo maior tempo possível
Não acho que quem usa Macs antigos como servidor passe de uma margem de erro
Se você precisa de suporte a Intel, o MacPorts ainda funciona até no Leopard
--no-quarantinetambém foi removidoHoje em dia eu só uso o Homebrew para alguns casks e tento evitar o máximo possível. Para ferramentas de CLI uso Nix, Home-Manager e Nix-Darwin
Sofri demais com upgrades forçados que não dá para fixar versão, então pessoalmente parei de usar o Homebrew.
Agora uso uma combinação de Mise e MacPorts para evitar quebras sem aviso e obsolescência forçada.
Além disso, no Mise posso atualizar para qualquer versão nova quando quiser, mas no Homebrew você tem que esperar o Tap decidir quando vai atualizar. O Tap de
llama.cppchega a pular uma atualização a cada 10 releases.Para quem ainda usa Homebrew, foi feito muito trabalho para que ele só atualize quando for realmente necessário e para mostrar isso ao usuário antes da atualização, e isso também está incluído nesta release.
Já faz alguns anos que uso MacPorts para instalar ferramentas de desenvolvimento, e ele é bem mais consistente, sem aparecer do nada uma nova versão major do Python para te pegar de surpresa.
Uso Homebrew só para instalar aplicativos que não existem no MacPorts, como Firefox, Slack e Spotify.
Claro que, ao longo dos anos, também venho tentando migrar Python para uv e nodejs para pnpm, então talvez hoje isso já não seja um grande problema para mim.
Meu iMac de uso diário agora caiu no balde Tier-3 de “vai catar coquinho”.
Eu realmente gostei do Homebrew no curto período em que pude usá-lo, mas não pretendo entrar na esteira de atualizar hardware só para continuar usando.