Semua artikel

Setup WSL 2 untuk Development di Windows: Panduan Praktis

Panduan development di Windows dengan WSL 2: instalasi, di mana menyimpan file proyek, VS Code dan Git, membatasi memori lewat .wslconfig, Docker dan systemd, networking, backup, dan solusi masalah yang sering muncul.

Tools Developer|Dipublikasikan |10 menit baca
Terminal Linux yang menampilkan prompt Ubuntu dengan perintah sudo

Windows Subsystem for Linux (WSL) memungkinkan developer menjalankan distribusi Linux sungguhan seperti Ubuntu langsung di Windows, tanpa dual boot dan tanpa repot mengelola virtual machine sendiri. Untuk tim yang aplikasinya berjalan di server Linux, artinya Anda bisa development di environment yang sama dengan production, sambil tetap memakai Windows untuk pekerjaan lain. Instalasinya cukup satu perintah, tapi beberapa pilihan di jam pertama, terutama di mana file proyek disimpan dan berapa banyak memori yang boleh dipakai WSL, menentukan apakah setup-nya terasa cepat atau malah bikin frustrasi.

WSL 1 dan WSL 2

WSL 2 menjalankan kernel Linux asli di dalam virtual machine ringan yang dikelola otomatis oleh Windows. WSL 1 bekerja dengan cara menerjemahkan system call Linux ke Windows. Instalasi baru otomatis memakai WSL 2, dan untuk development, hampir selalu ini pilihan yang tepat.

AspekWSL 1WSL 2
Cara kerjaMenerjemahkan system call Linux ke WindowsMenjalankan kernel Linux asli di VM ringan
KompatibilitasSebagian tool dan system call tidak jalanKompatibel penuh dengan system call Linux
Kecepatan di filesystem LinuxLebih lambat untuk operasi file yang beratCepat, mendekati Linux asli
Kecepatan di drive Windows (/mnt/c)Relatif baikJauh lebih lambat
Docker dan containerTidak didukung langsungDidukung

Cara Install WSL

WSL membutuhkan Windows 10 versi 2004 (build 19041) ke atas, atau Windows 11. Buka PowerShell sebagai administrator, jalankan wsl --install, lalu restart komputer. Perintah ini mengaktifkan fitur Windows yang dibutuhkan dan meng-install Ubuntu. Saat pertama kali dibuka, Ubuntu akan meminta username dan password Linux, yang terpisah dari akun Windows Anda.

  • wsl --list --online menampilkan distribusi yang bisa di-install, dan wsl --install -d Debian meng-install distribusi tertentu.
  • wsl --list --verbose (atau wsl -l -v) menampilkan distribusi yang sudah ter-install dan apakah masing-masing jalan di WSL 1 atau WSL 2.
  • wsl --set-version Ubuntu 2 mengubah distribusi WSL 1 yang lama menjadi WSL 2.
  • wsl --update meng-update WSL-nya sendiri, sedangkan sudo apt update lalu sudo apt upgrade meng-update paket di dalam Ubuntu.

Simpan File Proyek di Filesystem Linux

Ini penyebab paling umum WSL terasa lambat. Drive Windows bisa diakses dari dalam WSL lewat /mnt/c, tapi setiap operasi file di sana harus menyeberang antara dua sistem. Perintah seperti npm install, composer install, git status, atau build yang besar bisa jauh lebih lambat dibanding perintah yang sama di file yang disimpan di dalam Linux. Microsoft sendiri menyarankan file disimpan di filesystem Linux kalau Anda bekerja dari command line Linux.

Clone repository ke home directory Linux, misalnya /home/username/projects. File-file ini tetap bisa dibuka dari Windows: jalankan explorer.exe . di terminal WSL untuk membuka folder saat ini di File Explorer, atau ketik \\wsl$ di address bar Explorer untuk melihat semua distribusi yang ter-install. File watcher untuk hot reload di tool seperti Vite, Next.js, dan Laravel Mix juga biasanya jauh lebih stabil kalau file-nya ada di sisi Linux.

Cek cepat: jalankan pwd di terminal tempat Anda mengerjakan proyek. Kalau path-nya diawali /mnt/c, pindahkan dulu proyeknya ke home directory Linux sebelum mengutak-atik pengaturan lain.

Editor dan Git

Dengan extension WSL untuk Visual Studio Code, menjalankan code . di terminal WSL akan membuka folder tersebut di VS Code di Windows, sementara extension, terminal, dan debugger-nya berjalan di dalam Linux. Language server dan linter pun melihat path dan versi tool yang sama dengan proses build. IDE JetBrains juga sudah mendukung proyek dan toolchain di dalam WSL.

  • Install dan jalankan Git di dalam WSL untuk proyek yang disimpan di Linux. Hindari memakai Git for Windows dan Git Linux bergantian di repository yang sama.
  • Atur ulang nama dan email di dalam WSL, karena Git di Linux punya konfigurasi sendiri.
  • Tambahkan file .gitattributes dengan aturan line ending yang konsisten, misalnya * text=auto eol=lf, supaya file tidak dianggap berubah hanya karena pernah diedit di Windows.
  • Buat SSH key di dalam WSL untuk GitHub atau GitLab, atau atur Git supaya memakai Git Credential Manager dari Git for Windows agar kredensialnya bisa dipakai bersama.

Batasi Memori dan CPU dengan .wslconfig

Secara default, virtual machine WSL 2 boleh memakai sampai setengah dari RAM komputer, ditambah swap sebesar seperempatnya. Di laptop dengan RAM 16 GB, Docker yang sibuk di dalam WSL bisa membuat Windows kekurangan memori untuk browser dan IDE. Buat file bernama .wslconfig di folder user Windows (C:\Users\username) dengan section [wsl2] dan baris seperti memory=6GB, processors=4, dan swap=4GB, disesuaikan dengan spesifikasi laptop Anda. Versi WSL terbaru juga menyediakan aplikasi WSL Settings di Start menu untuk mengatur hal yang sama.

Perubahan baru berlaku setelah virtual machine WSL benar-benar berhenti. Jalankan wsl --shutdown dari PowerShell, tunggu beberapa detik, lalu buka lagi terminalnya.

Docker dan systemd

Ada dua cara umum menjalankan container. Docker Desktop dengan backend WSL 2 paling mudah dan terintegrasi dengan Windows, tapi lisensinya mewajibkan langganan berbayar untuk perusahaan yang lebih besar, saat ini yang karyawannya lebih dari 250 orang atau pendapatan tahunannya di atas 10 juta dolar AS. Alternatifnya, install Docker Engine langsung di dalam distribusi Linux, yang cara kerjanya sama seperti di server Linux.

Docker Engine dan banyak service lain membutuhkan systemd. Image Ubuntu versi baru di WSL biasanya sudah mengaktifkannya. Kalau belum, tambahkan section [boot] berisi systemd=true di file /etc/wsl.conf di dalam distribusi, lalu jalankan wsl --shutdown dan buka lagi.

Networking dan Mengakses Aplikasi

Development server yang dijalankan di dalam WSL, misalnya di port 3000, bisa dibuka dari browser di Windows lewat localhost:3000 karena WSL meneruskan localhost secara default. Masalah biasanya muncul kalau memakai VPN kantor, proxy, atau ketika perangkat lain di jaringan perlu mengakses aplikasinya. Di Windows 11 versi 22H2 ke atas, mengatur networkingMode=mirrored di .wslconfig membuat WSL memakai antarmuka jaringan yang sama dengan Windows, dan ini menyelesaikan banyak kasus tersebut.

Backup dan Ruang Disk

  • File Linux Anda tersimpan di dalam sebuah file virtual disk. Kalau distribusinya di-unregister, disk itu ikut terhapus, jadi simpan pekerjaan di Git dan backup file lain yang penting.
  • wsl --export Ubuntu D:\backup\ubuntu.tar menyimpan seluruh distribusi ke satu file, dan wsl --import mengembalikannya. Ini juga cara mudah memindahkan setup ke laptop baru.
  • Virtual disk membesar saat file bertambah, tapi tidak selalu mengecil otomatis setelah file dihapus. Bersihkan image Docker dan cache lama secara rutin.

Masalah yang Sering Muncul dan Solusinya

MasalahKemungkinan penyebabSolusi
npm install atau git status sangat lambatProyek disimpan di /mnt/cPindahkan proyek ke home directory Linux
Windows jadi lambat saat Docker jalanWSL memakai memori terlalu banyakAtur memory dan processors di .wslconfig, lalu jalankan wsl --shutdown
Hot reload tidak mendeteksi perubahanFile watching antara Windows dan LinuxSimpan file di Linux dan edit lewat extension WSL di VS Code
Tidak ada internet atau DNS error saat pakai VPNVPN mengubah route atau DNS yang tidak terbaca oleh WSLUpdate WSL, dan coba mirrored networking di Windows 11
Perubahan di .wslconfig tidak berpengaruhVirtual machine WSL masih berjalanJalankan wsl --shutdown dan tunggu beberapa detik sebelum membuka lagi

Checklist Setup Laptop Developer Baru

  1. 1Jalankan wsl --install sebagai administrator, restart, lalu buat user Linux.
  2. 2Update WSL dan paket di distribusinya, lalu aktifkan systemd kalau belum aktif.
  3. 3Buat .wslconfig dengan batas memori dan CPU yang masih menyisakan cukup ruang untuk Windows.
  4. 4Install Git, atur nama dan email, tambahkan SSH key, lalu clone proyek ke home directory Linux.
  5. 5Install VS Code dengan extension WSL, lalu buka proyek dengan code . dari terminal WSL.
  6. 6Install runtime bahasa pemrograman dan Docker yang dibutuhkan proyek di dalam Linux, lalu export distribusinya setelah semuanya jalan sebagai backup siap pakai.

Poin penting

  • Pakai WSL 2 dan install dengan wsl --install di Windows 10 build 19041 ke atas, atau Windows 11.
  • Simpan proyek di filesystem Linux, jangan di /mnt/c. Satu keputusan ini paling berpengaruh ke kecepatan dan hot reload.
  • Development lewat extension WSL di VS Code, jalankan Git di dalam Linux, dan atur line ending yang konsisten di .gitattributes.
  • Batasi memori dan CPU di .wslconfig, dan ingat perubahannya butuh wsl --shutdown supaya berlaku.
  • Pilih antara Docker Desktop dan Docker Engine di dalam WSL dengan memperhatikan lisensinya, dan backup distribusi dengan wsl --export.

Artikel terkait

Artikel lain tentang software development, AI, cloud, dan infrastruktur.

Smartphone yang menampilkan folder berisi aplikasi pesan
Pengembangan AI|

Chatbot AI untuk Bisnis: Manfaat, Contoh Penggunaan, dan Biayanya

Panduan untuk pemilik bisnis yang mempertimbangkan chatbot AI: bedanya dengan chatbot biasa, kapan sepadan, contoh per industri, memilih antara website, Telegram, dan WhatsApp, komponen biaya, dan cara mengukur hasilnya.

Tim yang sedang merencanakan proyek software dengan sticky note di papan tulis
Pengembangan Software|

Cara Memilih Software House untuk Proyek Aplikasi Anda

Hal yang perlu dicek sebelum memilih software house: pengalaman yang relevan, siapa yang benar-benar mengerjakan, proses engineering, kepemilikan source code, isi kontrak, komunikasi, support setelah aplikasi live, dan tanda bahaya yang perlu dihindari.

Sedang mencari partner untuk pengembangan software?

Ceritakan proyek yang sedang Anda bangun, kebutuhan yang ingin diselesaikan, dan tantangan yang dihadapi. Kami dapat membantu membahas pendekatan teknis, scope, timeline, dan estimasi biaya.

Mulai diskusi