Bu yanıt, VS Code'daki terminal için WSL kullanırken diğerlerinin 1-2 saat sorun giderme harcamaktan ve yaygın sorunlar için yavaşça farklı çözümler bulmaktan kaçınmalarına yardımcı olmayı amaçlamaktadır. Belirli paketlerin kurulumunu kapsamaz, daha ziyade, varlıklarına bağlı olan şeyleri kurarken ve ilgili ortak ayarları düzeltirken bağımlılıklar olarak düzgün şekilde kurulamayan yaygın olanları kapsar.
Adımların özeti
- WSL yüklendi
- Terminal için yapılandırılmış VS Kodu (veya diğer IDE)
- .Profile'da NPM yüklendi ve yol düzeltmesi (diğer araçlarla yardımcı olabilir)
- build-essential yüklendi (make / gcc / etc kullanan tüm araçlara yardımcı olur)
- WSL kullanarak VS Code Görevleri
- Ekstralar
Başlarken ve Gereksinimler
- WSL'nin kurulu olması gerekir . (Bu , uygun güncellemelerle 64 bit Windows 10 çalıştırmanız gerektiği anlamına gelir ) Henüz yüklenmediyse kurulum kılavuzunu izleyin . Bu, bazı yeniden başlatmalar gerektirecektir.
VS Kodu Terminal Yapılandırması
Ya CTRL+ ,klavye kısa veya File
→ Preferences
→Settings
Düzenleme penceresinin sağ üst köşesinde, sizin için doğru bağlamda çalıştığınızdan emin olun: Kullanıcı Ayarları veya Çalışma Alanı Ayarları .
Ayarlar arama çubuğuna yazın terminal.integrated.shell.windows
(veya sizi yeterince uzağa götüren her şeyi)
Ayarı gerçek ayarlar dosyasında bulun, kullanın Edit
(fareyi satırın üzerine getirin, solda olacaktır: faresiz bir dokunmatik ekranda, satırın soluna dokunmanız yeterlidir) ve öğesini seçinReplace in Settings
Sağ bölmede, değiştirilen json dosyasında oluşturulan girişi değiştirin: önceki ayarı şununla değiştirin:
"C:\\WINDOWS\\Sysnative\\bash.exe"
Diğer IDE'ler: IntelliJ
Ayarlar / Araçlar / Terminal'i açın ve "Kabuk yolu" alanını şu şekilde ayarlayın: "C:\Users\USERNAME\AppData\Local\Microsoft\WindowsApps\ubuntu.exe"
WSL Ubuntu Bash Terminalinizi geliştiriciler için işlevsel hale getirme
Terminali açmak için CTRL+ kullandığınızda `, artık bir bash terminaliniz olmalıdır.
Bash.exe'yi ilk kez çalıştırıyorsanız, Ubuntu'yu kurmanız istenebilir. Böyle yap. Kurulumunuz tamamlandığında, WSL Ubuntu'da kullanılacak kullanıcı adınızı ve şifrenizi seçin. Bunların mevcut Windows hesabınızla çakışması gerekmez ve Windows hesabınızın şifresindeki değişikliklere bağlı olarak değişmeyeceklerini unutmamak önemlidir.
İşiniz bittiğinde, terminalinizde bir bash komut isteminiz olacaktır.
Windows'taki git-bash'dan farklı olarak, bunun ayrı bir ortam olduğunu unutmayın. Windows yazılımını kendi dışında başlatmak için kullanılabilse de , bunları gerçek terminalde çalıştırmak için uygun Ubuntu paketlerine ihtiyacınız olacak.
Şu anda WSL, beklediğiniz veya alışık olabileceğiniz her şeyle yüklü olarak gelmemektedir ve varsayılan profil ayarlarına bağlı olarak bazı şeyler Windows'a yüklediğiniz yazılımla çakışabilir.
Güncellemeler ve git
Not: Bunları yalnızca tek bir parçaya ihtiyaç duyan kişiler için sudo olarak belgeleyeceğim, ancak başlangıçta bir seçenek bunun yerine sudo su
aşağıdaki komutları sudo olmadan çalıştırmaktır.
Ubuntu paketlerinizin güncel olduğundan emin olun :
sudo apt-get -y update
sudo apt-get -y upgrade
sudo apt-get -y dist-upgrade
sudo apt autoremove
Git'i yükle:
sudo apt-get install git
Node.js ve NPM
Windows'ta zaten Node veya NPM yüklüyse, bunları Ubuntu'da çalıştırmak, yol sorunları nedeniyle sorunlu olabilir. Bu nedenle, Ubuntu yerel sürümlerini yüklemeniz ve bunun yerine kullanıldıklarından emin olmanız gerekir.
İlk olarak, NPM ile node.js'yi kurun . (alternatif: NVM'yi yüklemek ve node.js yüklemek için kullanabilirsiniz)
Yükledikten sonra, npm komutlarını çalıştırmak büyük olasılıkla başarısız olacaktır: örneğin, npm -v
muhtemelen size şunları verecektir:
: not foundram Files/nodejs/npm: 3: /mnt/c/Program Files/nodejs/npm:
: not foundram Files/nodejs/npm: 5: /mnt/c/Program Files/nodejs/npm:
/mnt/c/Program Files/nodejs/npm: 6: /mnt/c/Program Files/nodejs/npm: Syntax error: word unexpected (expecting "in")
Bu, oldukça basit bir çözüme sahip olan bir yol sorunundan kaynaklanmaktadır . (Gibi favori CLI düzenleyicisi kullanarak nano
, vim
, emacs
, cat
ve sed
... vb), açmak senin~/.profile
nano ~/.profile
Not: Linux dosyalarını Windows araçlarını kullanarak düzenlemeye ÇALIŞMAYIN . ( Bunu açıklayan kalın kırmızı metinle resmi bağlantı için @ david-c-rankin'in yorumu sayesinde) Terminalde bunun için bir CLI editörü kullanmak istemiyorsanız, nasıl yapılacağına ilişkin bir bağlantı için bu yazının altına bakın çalışan bir GUI almak için.
Şu anda, WSL'deki varsayılan bash PATH değişkeni
PATH="$HOME/bin:$HOME/.local/bin:$PATH"
İlk iki ikili dizinden sonra Windows yolunu enjekte eden. Ne yazık ki, bu, / usr / bin'in Windows npm yüklenmesinden önce kullanılmasına neden olmaz, bu nedenle bunu son $ PATH'dan önce ekleyin:
PATH="$HOME/bin:$HOME/.local/bin:/usr/bin:$PATH"
Kaydedin ve ardından ya terminali yeniden yükleyin ya da sadece yol dosyasını kaynak olarak kaydedin
source ~/.profile
Yapı gerekli
Derleme gerektiren veya başka türlü make kullanan herhangi bir şey kullanıyorsanız, bunlara ihtiyacınız olacağı neredeyse garantidir; bu nedenle, node.js'yi kurarken kurmadıysanız, kurun. Her şeyi ayrı ayrı yüklemeyi denemek yerine basitçe build-essential paketini kullanmak çok daha kolaydır .
Ruby FFI'ye dayanan Compass gibi paketlerin bunlar olmadan başarısız olacağını unutmayın. Bir aracı düzgün bir şekilde kurmakta ve çalıştırmakta sorun yaşıyorsanız, gcc'ye sahip olduğunuzdan ve kurulu olduğundan emin olmak, başlamak için iyi bir yer olabilir.
sudo apt-get install -y build-essential
Ubuntu kullanarak Görevleri Çalıştırma
Derleme görevlerini çalıştırmak için VS Code's tasks.json kullanırsanız, varsayılan olarak bu görevlerin Ubuntu yerine Windows alt sistemini kullanarak çalıştırmaya devam edeceğini unutmayın. Bazen istediğiniz şey bu olabilir, ancak grunt-cli'yi Windows'ta değil Ubuntu'da yüklemeyi yeni bitirdiyseniz, muhtemelen değildir.
VS Code, kısa süre önce Görevler'in nasıl çalıştığına dair 2017 Mayıs güncellemesini yaptı ve bu , görev çalıştırıcısını terminal olarak ayarlamasına izin verdi . Bu, görevleri taşımanın açık ara en kolay yoludur.
Basitçe ayarlayın
"runner": "terminal",
senin içinde tasks.json
ve bitirdiniz (varsayarak uygun tüm araçları artık WSL Ubuntu yüklü çalıştırmak için çalışıyoruz var).
Bu çok taşınabilir, ideal olarak WSL'ye sahip olan veya olmayan sistemler arasında veya diğer işletim sistemlerinde değişiklik gerektirmez ve tavsiye edeceğim yöntemdir.
Şu an itibariyle, bu yöntem başka bir TERMINAL
sekme örneği oluşturur (açılır menüden erişilir). Yine de uygun izleyicileri kurabilirsiniz, ancak bu artık OUTPUT
sekmede oturmadığı anlamına gelir .
Eski yöntem, WSL Ubunutu Bash kabuğunu çağırabilir ve bunun içinde OUTPUT
görünmesini sağlayabilir ve ya bash.exe'yi -c bağımsız değişkeniyle çağırmayı veya bir kabuk komut dosyasını kullanmayı içerir. Ne yazık ki o kadar anlambilimsel değil, çünkü bash
emrimizi veriyor ve yerine argüman olarak çalıştırmak istediğimiz şeyi iletiyoruz. Bu aynı zamanda diğer sistemlere o kadar hızlı taşınabilir olmadığı anlamına gelir.
VS Kodunu daha önce terminalin kendisi için verdiğiniz konumu C:\\WINDOWS\\Sysnative\\bash.exe
, değeri olarak kullanabilirsiniz.command
args
Dizinin ilk öğesini olarak -c
ve ikincisini çalıştırmak istediğiniz komut olarak ayarlayın (bu cevabın ikinci yarısına atıfta bulunun ).
Alternatif olarak, burada görüldüğü gibi bir kabuk betiği çalıştırabilirsiniz .
Daha fazla yardımcı bit
İster WSL Bash komut satırından Windows VSCode başlayacak ?
WSL Ubuntu'nuz için bir grafik arayüze sahip olmak ister misiniz ? (Bu kullanım gibi dosyalar için Linux GUI editörü şeyler yapmanızı sağlayacaktır içinde : NPM bölümünde yorumlarınızı / nota bakın, değil düzenlemek onları araçlarını düzenleme Windows'u kullanarak bunu Ubuntu sisteminde kendisi)
Oluşturmak (VS Code Görevlerini WSL için doğru şekilde kurma hakkındaki yukarıdaki bölüme bakın) ve tamamen WSL Ubuntu içinde hata ayıklamak mı istiyorsunuz? (bu, gdb kullanılarak bunun nasıl yapılacağını gösterir, ancak pipeTransport
kavram diğer hata ayıklayıcılarla birlikte kullanılabilir) ( bu yanıta atıfta bulunun, ancak ondan önceki yanıt aynı zamanda yararlı olabilecek yerel geri döngü kullanan bir yöntem sağlar)