Para executar uma versão instalada diferente de uma fórmula do Homebrew como um serviço de segundo plano no macOS, pare o serviço da fórmula atual, inicie a fórmula versionada pelo seu próprio nome e, em seguida, confirme qual serviço está em execução. Por exemplo, se tanto postgresql@16 quanto postgresql@17 estiverem instalados, use brew services stop postgresql@16 seguido de brew services start postgresql@17. O gerenciador de serviços do Homebrew usa o launchd do macOS; sem sudo, ele registra os serviços para serem executados no seu login. Manual brew(1) do Homebrew

1. Localize os nomes das fórmulas instaladas

Use os próprios registros do Homebrew para verificar o que está instalado e como os nomes das fórmulas são grafados:

brew list --versions
brew info postgresql@16
brew info postgresql@17

Substitua os exemplos pelos nomes das fórmulas do seu serviço. Uma fórmula versionada é uma fórmula separada do Homebrew, geralmente escrita com um sufixo @; não se trata de um comando para selecionar uma versão histórica arbitrária de uma mesma fórmula. As fórmulas versionadas disponíveis dependem do que o Homebrew disponibiliza atualmente. O Homebrew também descreve as fórmulas versionadas como um conjunto limitado, e algumas podem ser removidas com o tempo. Versões de Fórmulas do Homebrew

Antes de alternar, inspecione a saída do comando brew info de cada fórmula para verificar os detalhes do serviço e quaisquer notas de migração. O nome de uma nova fórmula não garante que o serviço possa reutilizar o diretório de dados ou a configuração da versão antiga. Softwares de banco de dados e servidores podem ter requisitos específicos de atualização ou downgrade; siga o processo de migração documentado do software antes de iniciar a outra versão com dados existentes.

2. Pare o serviço de uma fórmula e inicie o da outra

Execute os comandos de serviço sem sudo para um serviço que inicia no seu login:

brew services stop postgresql@16
brew services start postgresql@17
brew services list

Use os identificadores reais das fórmulas instaladas no lugar dos exemplos do PostgreSQL. Os comandos brew services stop e start recebem o nome da fórmula, portanto, isso seleciona o serviço associado à fórmula de destino. O comando list permite que você inspecione o status do serviço reportado pelo Homebrew posteriormente. O manual documenta o gerenciamento de serviços por meio do launchd e observa que a configuração sem sudo usa ~/Library/LaunchAgents, ficando assim restrita ao login do usuário atual. Manual brew(1) do Homebrew

Se a versão de destino estiver instalada, mas seu serviço não estiver em execução, inicie-o diretamente. Se o objetivo for reiniciar a mesma fórmula, o comando brew services restart FORMULA está documentado; ao mudar de versão, parar explicitamente a fórmula antiga e iniciar a nova torna a transição desejada evidente. Não use brew services restart --all para alternar um único serviço, pois isso afetará todos os serviços do Homebrew.

3. Entenda a diferença entre seleção de serviço e seleção de comando

Iniciar uma fórmula versionada como um serviço não torna necessariamente suas ferramentas de linha de comando o padrão no Terminal. O Homebrew instala cada fórmula em um keg versionado no Cellar. Vincular uma fórmula cria links simbólicos (symlinks) no prefixo compartilhado do Homebrew, enquanto algumas fórmulas versionadas são marcadas como keg-only e não são vinculadas lá por padrão. Manual brew(1) do Homebrew, FAQ do Homebrew: O que significa “keg-only”?

Verifique com brew info FORMULA se a fórmula é keg-only e veja as orientações fornecidas para a variável PATH. Se você precisa apenas que o serviço em segundo plano use a outra versão, gerencie o serviço pelo nome da fórmula; não presuma que alterar os links seja necessário. Evite brew link --force como uma etapa genérica de troca: o Homebrew adverte que forçar uma fórmula keg-only em diretórios compartilhados pode gerar conflitos. Orientação sobre dependências keg-only do Homebrew

4. Se o serviço de destino falhar ao iniciar

Primeiro, verifique o comando brew services list e a saída de brew info da fórmula de destino. Confirme se o serviço antigo parou e se a nova fórmula realmente fornece uma definição de serviço; o suporte a serviços do Homebrew depende de a fórmula possuir uma configuração de serviço. Formula Cookbook do Homebrew

Em seguida, verifique os próprios logs e a configuração do aplicativo. Um serviço pode falhar mesmo quando a fórmula está instalada — por exemplo, porque sua configuração aponta para um diretório de dados diferente, a porta já está em uso ou a versão não consegue abrir os dados existentes. Essas são possibilidades no nível do aplicativo, não correções garantidas pelo Homebrew; consulte a documentação oficial do aplicativo antes de alterar ou excluir dados.

Use sudo brew services apenas quando precisar intencionalmente de um serviço em nível de sistema que inicie na inicialização da máquina (boot). O Homebrew documenta que esse modo opera em /Library/LaunchDaemons, enquanto o serviço de usuário padrão é iniciado no login. A maioria dos serviços para desenvolvimento pessoal deve ser gerenciada na conta de usuário proprietária de seus arquivos. Manual brew(1) do Homebrew

Uma troca bem-sucedida, portanto, possui duas verificações: o Homebrew relata a fórmula pretendida em execução, e o próprio aplicativo responde conforme o esperado. O status do serviço por si só não valida a compatibilidade dos dados nem prova que os clientes de linha de comando agora apontam para essa versão da fórmula.

Fontes