Qual é a relação entre Wine e Proton

A página de manual do Wine começa com wine - run Windows programs on Unix: ela carrega e executa executáveis de DOS, Windows 3.x e Win32, e em sistemas de 64 bits também executa executáveis Win64.

Proton é a ferramenta de compatibilidade feita pela Valve para o cliente Steam, que faz jogos disponíveis apenas para Windows rodarem no Linux. A descrição do projeto da Valve afirma explicitamente que ele usa o Wine para isso. Dá para entender assim: o Wine é a camada de base, e o Proton é a integração dedicada aos jogos do Steam.

Instalação no Ubuntu 26.04

Os repositórios do Ubuntu 26.04.1 já trazem o Wine, na versão 10.0~repack-12ubuntu1. Instale junto com o winetricks:

sudo apt install wine winetricks

Testei num contêiner amd64 mínimo: apt install -s wine simulou a instalação de 331 pacotes, e depois de instalar:

wine --version

a saída foi wine-10.0 (Ubuntu 10.0~repack-12ubuntu1).

Dois detalhes: o repositório não tem pacote wine32; o wine depende de wine64 | wine32, e o que foi instalado de fato foi o wine64; antes e depois da instalação, a saída de dpkg --print-foreign-architectures ficou vazia, o que mostra que essa versão não exige habilitar a arquitetura i386 no amd64. O winehq-stable não está nos repositórios do sistema.

O repositório próprio do WineHQ existe tanto para o Ubuntu 26.04 (resolute) quanto para o 24.04 (noble). Se quiser um Wine mais novo que o da distribuição, consulte as instruções atuais no site do WineHQ; este texto não reproduz os passos.

WINEPREFIX: a chave para usar bem o Wine

O Wine coloca o registro, os arquivos de configuração e o disco C virtual num diretório, especificado pela variável de ambiente WINEPREFIX, cujo padrão é $HOME/.wine.

A página de manual tem uma frase que merece ser lida duas vezes: todos os processos wine do mesmo usuário compartilham o mesmo wineserver, o registro, a memória compartilhada e os arquivos de configuração. Ou seja, por padrão, todos os programas Windows que você instala ficam espremidos no mesmo prefixo, e uma biblioteca instalada ou uma chave de registro alterada por um programa afeta os outros.

A solução é dar um prefixo independente a cada programa. Definindo WINEPREFIX diferentes para processos wine distintos, eles ficam de fato isolados entre si — uso que a página de manual apoia explicitamente:

WINEPREFIX=~/.wine-myapp wine setup.exe

Para inicializar um prefixo novo, use wineboot -u:

WINEPREFIX=/tmp/p WINEDEBUG=-all wineboot -u

Num contêiner sem desktop, esse comando terminou com código de saída 0, e em /tmp/p surgiram dosdevices, drive_c e wineserver. Esse prefixo recém-criado ocupou cerca de 680 MB, então cada prefixo adicional exige algumas centenas de MB a mais de disco.

Executando programas

A forma básica é wine programa [argumentos]. O nome do programa pode ser escrito em formato DOS (C:\\WINDOWS\\SOL.EXE) ou em formato Unix (/msdos/windows/sol.exe). Os argumentos vão no fim da linha de comando:

wine notepad C:\\TEMP\\README.TXT

No shell, espaços e caracteres especiais no caminho precisam ser escapados com barra invertida:

wine C:\\Program\\ Files\\MyPrg\\test.exe

Alguns programas que acompanham o Wine dispensam o caminho completo, como wine notepad, wine explorer.

Programas de console do Windows devem ser executados com wineconsole. Segundo a página de manual, sem o wineconsole o suporte a console é muito limitado, e o programa pode não funcionar direito.

Se o programa não roda, use WINEDEBUG para ligar os logs; a sintaxe é [class][+|-]channel[,...], com as classes err, warn, fixme e trace, e a string não pode conter espaços. O ponto de partida recomendado pelo manual é:

WINEDEBUG=warn+all wine programa.exe

Exemplo de combinação:

WINEDEBUG=fixme-all,warn+cursor,+relay wine programa.exe

Isso desliga todas as mensagens FIXME, liga os avisos relacionados ao cursor e o rastreamento de todas as chamadas de API.

Como validar num ambiente sem desktop

Num servidor ou contêiner, você pode primeiro confirmar que o Wine em si funciona. Depois de inicializar o prefixo, execute um comando com o cmd:

WINEPREFIX=/tmp/p wine cmd /c echo hello-from-wine

A saída que obtive no contêiner foi hello-from-wine. Isso só mostra que o Wine consegue inicializar o prefixo e executar um comando de console do Windows; não testei programas com interface gráfica, som nem drivers de vídeo — a experiência real no desktop você precisa verificar por conta própria.

Proton: o Wine dentro do Steam

A recomendação da Valve é que a maioria dos usuários use o Proton que acompanha o cliente Steam, sem precisar compilar nada. Um Proton compilado por você é escolhido na seção Steam Play da janela de configurações do Steam; a opção de um jogo específico fica nas propriedades dele, no campo "definir opções de inicialização".

Na renderização, o Proton usa por padrão o DXVK para Direct3D 9, 10 e 11; o DXVK é um renderizador baseado em Vulkan. Definindo a variável de ambiente PROTON_USE_WINED3D=1, ele passa a usar o wined3d, baseado em OpenGL. O projeto ainda tem um submódulo VKD3D-Proton; a documentação oficial não detalha o papel dele, e aqui só registro que ele existe.

Para adicionar essa variável a um jogo no Steam, escreva-a nas opções de inicialização do jogo, no formato:

PROTON_USE_WINED3D=1 %command%

Sobre a jogabilidade, a documentação do Proton da Valve não dá nenhuma garantia nem fornece uma lista de compatibilidade; ela apenas aponta o changelog no wiki. Existem sites da comunidade com relatos da experiência com cada jogo; o ProtonDB é um dos mais citados — não é um recurso oficial da Valve, e os relatos não substituem seus próprios testes.

Compatibilidade cabe a você confirmar

Nem o Wine nem o Proton garantem que um programa Windows vai rodar. Uma abordagem prudente: instale programas comuns primeiro num WINEPREFIX independente, teste as funções principais e, se algo falhar, examine os logs com WINEDEBUG=warn+all; para jogos, comece com o Proton que acompanha o Steam e, se não funcionar, experimente PROTON_USE_WINED3D=1.

Na limpeza, apagar um diretório de prefixo afeta só esse prefixo; os outros ficam intactos. Mas os dados que o programa guarda no prefixo (saves, configurações) são apagados junto — faça backup do que precisa manter e confirme que o caminho está certo antes.