WSL, yani Windows Subsystem for Linux’un ilk sürümü yaklaşık 4 sene önce son kararlı ikinci sürümü wsl2 ise bir sene önce piyasaya sürüldü. Ben ise wsl’i yaklaşık 3 aydır kullanıyorum ilk deneyimlerim ise gayet sorunsuzdu. Şuan kişisel projelerimde geliştirme ortamı olarak tamamen WSL kullanıyorum. Öncesinde geliştirme ortamı olarak kullandığım dual-boot linuxuma girmeme nerdeyse hiç gerek kalmadı diyebilirim. Windows WSL ile beni kendine kazandı. Bu yazımda ise Visual Studio Code ve WSL ve Windows terminal uygulamaları kullanarak kendimize işlevsel ve hoş görünümlü bir geliştirme ortamı hazırlayacağımızı anlatmaya çalışacağım.

WSL etkinleştirme

Linux distro seçimine başlamadan önce ve linux kurulumuna başlamadan önce WSL özelliğini etkinleştirmemiz gerek bunun için Windows tuşuna bastıktan sonra Powershell yazarak Powershell uygulamasını admin olarak çalıştırma seçeneğini seçmemiz gerekiyor ve aşağıdaki komutu çalıştırmamız gerekiyor. Kısaca PowerShelli administratör olarak başlatın ve aşağıdaki komutu çalıştırarak wls aktif edin ve windowsu restartlayın.

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Activation

WSL Linux Dağıtımı seçimi

Windowsa restart attıktan sonra Microsoft Store`da wsl kelimesini ile aratarak ücretsiz linux dağıtımlarına kolaylıkla ulaşıp kurabiliriz.

WSL-Store

Linux Dağıtımı ve WSL Kernel kontrolu

Kurulumu yaptıktan sonra komut satırında wsl -l -v komutunun çalıştırarak linux distrolarınızı ve çalıştığı wsl kernel versiyonunu görüntüleyebilirsiniz.

wsl -l -v

Eğer bu komut çalışmıyor ve hata veriyorsa windows sürümünüz wsl2 desteklemiyordur. Windows wsl`in ikinci versiyonunu kullanmayı önersede biz ilk version ile devam edeceğiz. Daha sonra isterseniz wsl2 kernel ile değiştirebilirsiniz. wsl1 ile wsl2 arasındaki genel özellik farklarını aşağıdaki tablodan inceleyebilirsiniz.

Ozellik WSL 1 WSL 2
Windows and Linux arasındaki uyum
Hızlı önyükleme
Az miktarda kaynak ayak izi
VMWare ve VirtualBox ile birlikte kullanılabilme
Linux Kernelin hepsi
Bütün system çağrı desteği uygunluğu
İşletim sistemlerinin dosya sistemleri arasındaki performans

Windows Terminal

Windowsta birçok terminal emülatör olarak kullanabileceğiniz program bulunmakta (başta termius, hyper vb.) bu programların bir çoğu size çok geniş özelliler sağlıyor ve ekstra eklentiler ekleyerek özelliklerini genişletebilmezi sağlıyor fakat windows bir çoğu typescript html css ile geliştirildiği için çok fazla ram kullanımına sahipler ve kullanmadığım bir sürü özellik ile birlikte geliyorlar. Bunun gibi sebepler ile windows terminali tercih ettim. Bu terminal emülatörü haricinde önerbileceğim rust ile geliştirilen alacritty var.

Windows Terminali kurduğumuzda wsl seçeneklere otomatik olarak ekleniyor fakat bunu varsayılan olarak ayarlamak istersek settings.json içerişnde bulunan defaultProfile kendi wls ortamımızın guid’isini girmemiz gerek. Bunu aynı sayfada ayarlar içerisinden profiles’in guid seçeneğinde bulabiliriz.

"defaultProfile": "{2c4de342-38b7-51cf-b940-2309a097f518}",

Visual Studio Code

VSCode ile WSL beraber kullanabilmemiz için kurmamamız gereken bir adet eklenti paketi var. Remote Development eklenti paketi sizin için Remote - WSL Remote-SSH ve Remote Containers paketlerini kuracak. Kurulumlar tamamlandıktan ve etkin hale getirdikten sonra Remote Explorer sekmesinden istediğiniz klasöre bağlanabilirsiniz.

WSL-Store

Yada terminalde iken bulunduğunuz folderi VSCode ile açmak için code . komutunu kullanabilirsiniz. Bu şekilde VSCode bulunduğunuz klasörde başlayacaktır.

İpucu: code -r {dosyadı} komutu ile wsl bağlatısı yapılarak açılmış olan vscode ekranında yeni bir sekme ile dosyanızı açıp düzenleyebilrisiniz.

Bu kurulumuları ve ayarları NodeJs,Go,React veya Vue gibi kütüphane ve yazılım sistemlerini kullarak geliştirdiğim kişisel projeler için kullanıyorum. Buradan sonra yazacaklarım. WSLde bash yerine zsh kullanma ve vscode ile entegre etme ve fontFace ayarlama ile ilgili olacak. Aslında gerekli temel kurulumlar bu kadar.

WSL Ubuntu`ya zsh kurulumu

Temelde kurulum normal bir Ubuntu’dan farklı olmayacak. zsh ve oh-my-zsh kuracağız. Ve tema olarak agnoster temasını kullanacağız.

  • zsh kurulumu

    sudo apt-get install zsh
    
  • Curl ile oh-my-zsh kurulumu

    sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
    
  • Wget ile oh-my-zsh kurulumu

    sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
    

Kurulumları yaptıktan sonra code -r ~/.zshrc komutunu çalıştırıp temayı ZSH_THEME="agnoster" ile değiştireceğiz. Agnoster temasında karakter sorunu yaşamamamız için powerline destekli bir yazı tipi gerek. Bunun için Windows 10 powerline yazı tiplerini araştırıp deneyebilirsiniz. Ben OSX’in Menlo yazı tipinin for Powerline için editlenmiş halini kullanıyorum. Menlo for Powerline‘i buradan indirebilirsiniz.

Yazı tipini kurduktan sonra VSCode ve Windows Terminal ayarlarını yapalım.

  • VSCode Ayarları

    "terminal.integrated.shell.linux": "/bin/zsh",
    "terminal.integrated.fontSize": 14,
    "terminal.integrated.fontFamily": "Menlo for Powerline",
    
  • Windows Terminal Ayarları

    commandline ve fontFace alanlarını editlemeniz gerekiyor wsl.exe ~ zsh ayarı bize başlangıçta bash yerine zsh ile başlatmamızı sağlıyor.

    "profiles": [
        {
          "hidden": false,
          "name": "Ubuntu",
          "commandline": "wsl.exe ~ zsh",
          "source": "Windows.Terminal.Wsl",
          "colorScheme": "wsl",
          "fontFace": "Menlo for Powerline"
        },
    ]
    
  • ~/.zshrc Ayarlari git ve zsh-autosuggestions eklentilerini ve klasör uzunluğunu iki ile sınırlandırıp kullanıyorum. Siz istediğiniz gibi editleyebilirsiniz.

    plugins=(git zsh-autosuggestions)
    POWERLEVEL9K_SHORTEN_DIR_LENGTH=2
    

Font-Result-VSCode

Sonuç olarak windowsta iken linux kullanarak geliştirme yapmak gayet güzel öğrenci iseniz yada kişisel projeler yapıyorsanız size Yeni aldığınız laptoplara çift önyükleme ayarlamak yerine
bu şekilde kullanmak çok ideal. Wsl aynı zamanda bu hazırlamış olduğunuz distroları export alıp farklı bilgisayarlara taşımanızıda sağlıyor. Wsl için bir kere geliştirme ortamınızı sağladıktan sonra başka bilgisayarlarada çok kolay bir şekilde taşıyabilirsiniz.

Kaynaklar