はじめに
こんにちは、大正デモクラシーです。年末年始に実家に帰るにあたって、Windows 10がインストールされているXPS 13を持って行ったんですが、実家で庭木の剪定以外にやることがなかったので、それ以外の時間はずっとコード書いてました。しかし、持って行ったマシンの開発環境がまったく整ってなかったのでいろいろ設定しなおしてとりあえずいい感じになったので、その作業メモを書いておきます。
TL;DR
これまでLinuxやmacOSで育ててきた環境をWindows 10で使うことはあきらめて、これらのツールをとりあえず入れました。
- cmder | Console Emulator
- Chocolatey - The package manager for Windows
- GitHub - Microsoft/Git-Credential-Manager-for-Windows: Secure Git credential storage for Windows.
- GitHub - coreybutler/nvm-windows: A node.js version management utility for Windows. Ironically written in Go.
- GitHub - dahlbyk/posh-git: A PowerShell environment for Git
MSYS2を入れて捨てた
はじめはMSYS2を使ってLinuxやMacと似たような環境にしようかなと思ってごちゃごちゃやってたんですが、中に入ってるパッケージが古かったり、いろんなものとの相性が悪かったので捨てました。入れて作業して捨てるまでに1日半くらい使った気がします。まあMSYS2のいろいろな設定を見て回って一通り触ってみて良し悪しがわかったので、それは良かったとしましょう。
PowerShell on cmderで生きていくことにした
@ryushi と @aodag にどうしよっかねえ、と相談した結果、WindowsはWindowsの世界で生きたほうが楽になれそうだったので、全部すっぱり捨ててPowerShellに移行することにしました。bash on Windowsなどを使う、という方法もあるかもしれませんが、どうもしっくりこないなと思ったのでやめました。今度暇なときに触ってみようと思う。
さて、Windowsを使っていくとはいえ、素のPowerShellはフォント回りをいじるのにレジストリいじったりしないといけない感じだったので、10年前とかに無駄にRegseekerで遊びまくって何度もWindows XPを再起不能にしていた身としては、極力レジストリはいじりたくない気持ちがあったので、ターミナルエミュレータのcmderを使っていくことにしました。
cmderを入れた理由はこんな感じです。
- デフォルトでもろもろのコンソールを立ち上げられる
- PowerShell、コマンドプロンプトの両方を一般ユーザ、管理者権限の両方で上げるための設定
- bash on Windows、MSYS2用の設定
- タブで各コンソールを管理できる
- フォント回りを柔軟に設定できる
- デフォルトで設定されている
profile.ps1
がいい感じにGit for Windowsと連携してくれる - 上記の
profile.ps1
が追加でカスタムのprofile.ps1
を読み込む口を用意してくれている
Git Credential Manager for Windows
PowerShellで生きていく設定はできたので、次はコードを持ってくるために必要なGitの設定。ここで問題になるのは、自分はGitHubで2FAを使ってるので、そこをどうするか。LinuxやmacOSではいい具合にcredential managerを使えるので、HTTPSであってもパスワード入力なしにpushもできるんですが、Windowsではデフォルトではそれをサポートしていません。で、いい方法ないかなと思って探したらやはりありました。
インストーラーがあって、Gitのインストールも一緒にしてくれる。これを入れたら2FAにしたGitHubアカウントでも快適にコードの管理ができるようになりました。
nvm for Windows
正月休みにVisual Studio Codeの拡張を更新するかと思っていたので、node.jsの環境をまず整えることにした。nvmを使って入れたいと思っていたら、ちゃんとWindowsに対応したものがあったのでこれを使ってインストール。
chocolatey
Windowsの環境をまじめに設定するのがWindows XP以来なので変化に驚いています。Visual Studio向けにはNuGetがあってなんかいい感じらしい、ということは聞いていたのですが、それ以外の普通のツール(パッケージ)管理用にchocolateyというツールがあるのをいまさらながら知りました。これでいちいち自分でパッケージを探してきて入れなくても済むんですね。本当に便利。
posh-git
PowerShell上でGitを扱うためにposh-gitをインストールしました。これはchocolateyにパッケージとして登録されているのでそちら経由でインストールしました。
> choco install poshgit
Python 3.6
Pythonをちょろっと書く必要があったのでPythonもchocolatey経由でインストール。
> choco install python3
Go 1.7.3
当然Goもインストールした。最新版がパッケージ登録されている。
> choco install golang
細かなこと
権限回り
Windowsは権限回りがかなり厳しく、PowerShellでいろいろなことを行うにはもろもろの設定が必要でした。ただしこれらもコマンド1つで設定を変えられるのでかなり楽な印象。
> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
(追記: 2017/01/05 18:13:00)
Windows 10の開発環境を整えた - YAMAGUCHI::weblogb.hatena.ne.jppowershellはset-exectionpolicyでガバガバにするの止めて、powershell.exeの起動時のオプションに「-exectionpolicy remotesigned」付けて権限をプロセス単位に閉じ込める方が良いと思う。
2017/01/05 17:30
なるほどそういう方法があったのですね!早速cmderのPowerShellの起動オプションに追加します!
コマンドレット
PowerShellのコマンドレットを覚えるのは大変 *1 だけれども、Get-Help
コマンドレットで対象のコマンドのオプションはすぐにわかるし *2 、オプションで -Online
をつければ、ブラウザで詳細なドキュメントがすぐに読めるのでとても良い。