May 2, 2018

WSLENVでWSLとWindowsの環境変数を共有する(Go開発環境編)

見た目は地味だが役に立つ Windows 10 April 2018 Update (別名: バージョン1803)がリリースされました。タイムラインなど目立つ機能が注目されていますが、開発者支援系の機能、ツールも拡充されています。特に、WSL/Windowsの連携、相互運用まわりは着実に進化しています。そのうちのひとつが、このエントリーで紹介するWSLENVです。 WSLENVは、WSL/Windows間で環境変数を共有する仕組みです。ただ単純に共有するだけでなく、ルールに従って変換も行います。これが地味に便利。でも地味だから、あまり話題になっていない。なので具体例で紹介しよう、というのがこのエントリーの目的です。 TL;DR 英語が読めて、「あ、それ便利ね」とピンとくる人は以下を。 Share Environment Vars between WSL and Windows Go開発環境を例に 前述のリンクでも紹介されていますが、Goの開発環境はWSLENVの代表的なユースケースです。GOPATHをいい感じにWSL/Windowsで共有できます。掘り下げていきましょう。 想定開発者像、ペルソナ Windows端末を使っている Go言語を使っている CLIはbash/WSL中心 スクリプト書くならPowerShellもいいけど、インタラクティブな操作はbashが楽 アプリをDockerコンテナーとしてビルドするなど、OSSエコシステム、ツールとの連携を考慮 とはいえエディタ/IDEはWindows側で動かしたい、最近はVS Code中心 前提条件 WSL、WindowsそれぞれにGoを導入 バージョン管理のためにも、パッケージマネージャーがおすすめ わたしはWSL(Ubuntu)でapt、WindowsではChocolateyを使ってGoを導入しています GOPATHは %USERPROFILE%go とする ユーザー名を tomakabeとすると C:\Users\tomakabe\go setx GOPATH “$env:USERPROFILE\go” で設定 WSLでもこのディレクトリをGOPATHとする VS Code + Go拡張をWindowsに導入 WindowsのCLIはPowerShellを利用 そぞろ歩き その1(WindowsでのGo開発) では、何が課題で、WSLがどのようにそれを解決するか、見ていきましょう。 まず、Windowsで環境変数GOPATHを確認します。 PS C:\WINDOWS\system32> Get-ChildItem env:GOPATH Name Value ---- ----- GOPATH C:\Users\tomakabe\go GOPATHに移動し、ディレクトリ構造を確認します。この環境にはすでにディレクトリbinとsrcがあり、binにはいくつかexeが入っています。VS CodeのGo拡張を入れると導入を促されるツール群は、ここに格納され、構文チェックや補完でVS Codeと連動します。 Read more

© Copyright 2019 Toru Makabe

Powered by Hugo & Kiss.