Taverna /dev/All

Experiência com WSL. Como tem sido a sua?

Como tem sido a experiência de vocês com o WSL? Comecei com a primeira versão e hoje uso a segunda. No geral, tem sido boa, mas tenho enfrentado algumas dificuldades e queria saber como tem sido o dia a dia de vocês.

Dificuldades

Acredito que sejam devido ao fato de estar tanto tempo no Linux que acabei desaprendendo o modo Windows de trabalhar. Não descarto meu aspecto noob aqui com isto: sou péssimo usuário, só sei programar e projetar sistemas. :slight_smile:

  • Lentidão com o NTFS - não sei se é só comigo, mas toda vez que preciso via WSL lidar com o sistema de arquivos NTFS a lentidão é nítida. Enfrentam este problema também?
  • Confusão entre os sistemas de arquivo - este é um problema. Direto acabo confundindo os comportamentos. Exemplo: usar chmod no NTFS acidentalmente, quando só funciona no filesystem do próprio WSL.
  • Execução de algumas aplicações desktop - não esperava que fosse 100% tranquilo, mas vez por outra me esqueço disto e topo com mensagens de erro do xserver não carregado (normal, erro meu aqui).
  • Rede - não é tão simples quanto deveria configurar a interface de rede do WSL pra funcionar em modo bridge com o host Windows. E isto gera uma série de dificuldades pra mim.

No geral, tem sido um quebra galho maravilhoso pra mim. Tenho conseguido unir o melhor dos dois mundos no Windows. E o único problema de desempenho que enfrento é este que relatei do filesystem.

E vocês, como tem lidado com ele?

1 Curtida

Viabilizou o windows como ferramenta de trabalho. Sem ele eu nem cogito falar em desenvolvimento usando windows. Ainda precisa melhorar bastante, mas já é um avanço e tanto.

1 Curtida

Um ambiente linux puro ainda é muito mais agradável para mim, mas se precisa estar no Windows, como eu no momento, é uma ferramenta bem legal. Só tem algumas dores que passei, principalmente com rede. WSL2 não funciona a bridge de rede se estiver com alguma VPN ativada. Funcionava na versão 1, mas converti para usar o docker. Que aliás é bem menos traumático de usar docker nele do que no Windows diretamente hahaha. Mas tb tive problema com algumas situações mais especificas, por exemplo, redirecionar com nginx para um container docker preciso apontar para o ip do WSL, 127.0.0.1 não rola. Mas se acessar a aplicação direto funciona o endereço local responde.
systemctl tb não funciona nele. E ainda não tive problema com arquivos.
O que achei mais interessante foi a possibilidade de exportar e importar o WSL. Pensando que após formatar a maquina já ter um ambiente de trabalho pre-configurado só para importar é excelente.

2 Curtidas

Depois de 10 anos no linux to usando windows faz 6 meses, O wsl2 ta muito bom, eu instalo um xserver (Xlaunch) no windows e rodo tudo de dentro do ubuntu no wsl2 deste os programas como gitg, meld até a IDE usando jdk no linux gerenciado pelo sdkman, rodo muita coisa em docker, uso zsh, ssh configs,cron e até o nautilus pra fazer sftp, enfim basicamente tudo como eu usaria no linux.

Até o ctrl c no windows e control v na aplicação rodando o backend no linux e renderizando no xserver funciona perito.

Dai no final fica 98% a mesma coisa de estar no linux com a comodidade dos drivers e softwares etc…

Para vocês terem uma ideia, um mesmo código compila no wsl2 em metade do tempo do windows nativo, e comparando com o ubuntu nativo não notei diferença de performance.

Único ponto é que esse ambiente, não é tudo lindo out of the box tem que configurar as coisas direito, desativar bitlocker que ferra o I/O do wsl2, instalar o xserver entre outras configs.

@gabs Sobre esses problemas de rede com vpn eu basicamente tenho um ubuntu 20 no wsl 2 para uso principal 95% do tempo e que realmente tem esse problema e outro ubuntu 20 no wsl1 para justamente quando tenho que usar a bridge com vpn

3 Curtidas

Eu confesso que torcia muito o nariz pro Windows mesmo quando usei o WSL pela primeira vez. Não me lembro qual versão foi, mas sei que estava muito lento pra executar os comandos.

Como era um laptop corporativo do cliente eu pensei que pudesse ser pela alta carga de coisas que rodavam nele, principalmente o antivirus. Eu acabei configurando muita coisa nele e até deixei usável, mas a lentidão me atrapalhava um pouco e eu acabei fazendo uma gambiarra pra usar o meu laptop em vez do corporativo.

Mas, em Dezembro do ano passado, eu pensei em vender meu laptop e comprar um desktop. Eu ando muito pau da vida com a Apple e decidi sair de vez desse jardim murado no inferno. Mas eu não queria voltar pro Linux como OS, então resolvi testar o WSL em um Intel NUC Skull Canyon que eu usava pra lab enquanto esperava pelas peças do desktop.

Rapaz!!! Que maravilha!!! Eu não senti nenhum engasgo pra uso geral. Mudei pro WSL2 e mesmo o IO sendo algo mais limitado não me atrapalhou. Isso porque eu uso o WSL pra tudo o que é relacionado a desenvolvimento, ou seja, meu banco de dados, cache, application server, tudo está dentro do WSL. As ferramentas ficam no Windows mesmo e eu configurei os editores pra usar o line feed do Linux. Também fiz uns “aliases” no WSL pra chamar os executáveis do Windows pra abrir os editores.

Como ainda uso um laptop da empresa (que não roda Windows), compartilho toda a estrutura de profile do meu WSL com ele. Foi bem simples fazer tudo funcionar em ambos (nada que um if não resolva).

Não rodo nada desktop no WSL, somente command line. Uso o docker de vez em quando e ainda não esbarrei em nenhum cenário onde ele me limitou. O mais legal foi que, quando meu desktop chegou, eu simplesmente exportei o WSL, importei no desktop, e continuei trabalhando normalmente.

Ok, eu tive que fazer uma coisinha antes. O WSL por padrão tem algumas configurações que são feitas quando você inicia uma distro pela primeira vez depois de baixar da Windows Store. Se você simplesmente importar uma distro Debian (meu caso, por exemplo) e começar a escrever arquivos lá dentro via Windows, vai notar que os arquivos serão criados tendo o root como owner. Então eu baixei o binário do Debian pro WSL (semelhante ao que você baixa da Windows Store, mas foi mais prático) e rodei o comando:

debian config --default-user ataxexe

E pronto! Meus arquivos voltaram a ser criados tendo meu usuário como owner. O chato é que eu não consegui achar nada sobre esse problema. Provavelmente porque eu não fiz a pergunta certa pro Google, mas pelo menos eu resolvi.

Parece besteira, mas uma das coisas que me deixava louco de raiva pra usar o WSL era o terminal do Windows. O novo terminal é super agradável de usar e o Fluent Terminal é ainda mais agradável.

O IntellijIDEA acabou de ser atualizado e trouxe suporte ao WSL. Ainda não testei totalmente, mas esta foi a gambiarra que usei pra não ter problemas com classloading quando eu rodava um projeto Java dentro do WSL: criei um drive apontando pra dentro do WSL.

Sim, foi só usar algo como Z:\home\ataxexe\blablabla que eu podia usar o java no windows e carregar as classes do WSL. Parece que agora o Intellij já vai usar tudo de dentro do WSL, então creio que vá ficar ainda melhor.

Em pouco mais de 5 meses usando o WSL e o Windows, só sinto falta de uma tecla adicional pra teclas de atalho mas o AutoHotkey tá se saindo super bem pra eu usar a tecla WIN. Eu consigo criar atalhos que chamam scripts dentro do WSL sem problema algum.

O que houve com o NUC? Bem, ele voltou a ser meu lab e eu “terceirizo” algumas coisas pra ele, então eu provavelmente não estou tendo problemas relacionados a rede porque muita coisa que eu preciso roda no NUC.

Talvez meu uso seja bem simples, não uso VPN pra essas coisas, meus editores ficam no Windows e os códigos ficam no WSL. No meu caso, eu estou muito satisfeito e não me arrependo nem um pouco de ter saído do mundo Apple.

1 Curtida

Muito massa este relato, bem vindo Ataxexe!

Mas quando você manipular arquivos que estão em um sistema de arquivos NTFS, chegou a notar alguma lentidão? Tenho a impressão de que fica bem mais lento ali, especialmente quando trabalho com Node e a infinita pasta node_modules.

Valeu Kico!!

Teve uma vez que eu pensei em deixar o .m2 compartilhado. O Windows acessando o .m2 do WSL não deu certo, tive uns erros estranhos. O contrário foi super lento, por isso tenho tentado jogar o workload inteiro dentro do WSL, usando o Windows só pra editar os arquivos mesmo.

Meu trabalho quase não envolve desenvolvimento mesmo (geralmente scripts e troubleshoot no ambiente do cliente) então é bem fácil fazer essa separação. Quando eu vou codificar algo é geralmente criar uma ferramenta ou plugin pra algum sistema, então fica super simples ter o ambiente todo no WSL.

É, semana que vêm meu setup vai ser essencialmente Windows, então já to me preparando aqui :slight_smile:

Muito bom te ver por aqui, bora pra muitas discussões massas daqui pra frente!
Depois entra lá no Discord também!

1 Curtida

itexto