Windows Subsystem for Linuxでエンジニアは幸せになれるか?
職場では長らくWindows7を使い続けていたのだが, 本日(正確にはもう昨日. ねむい)ひょんなことからWindows10のマシンが手元に舞い込んできまして, ちまちま移行を進めています.
で, せっかくWindows10になったことだし, パッケージ管理とかツールとか諸々, これを機にアップデートしてナウでイケイケ(死語/dead word)な感じにしようと思いまして.
ひとまずパッケージ管理から, プライベートで愛用しているMacではbrewによるパッケージ管理が完成されているし, Windowsでもさすがにこの2018年の今日日, CLIから全部管理できるような素敵なものがあるだろうと期待しながら調べていくと, どうもPackageManagementってのがいいらしい. …この名前を見ただけで寒気がするのは私だけか?
まぁね, 名前なんてどうでもいいのです, まともにつかえさえすれば.
それでPackageManagement. Windows組み込みでコマンドプロンプトでもPowerShellでも使えるらしい.
PackageManagement自体の詳しい説明は上のリンクやこちらのもう少し古い公式ブログ記事を参照してほしいのだけど, 要はこれまでにもあったChocolateyやNuGetといったパッケージ管理ツールをPackageProvider(パッケージプロバイダ)として, いわばサブモジュールとして透過的に扱えるようにしたラッパーコマンドのようだ.
具体的には以下のようなPackageProviderを利用することができる.
PS C:\WINDOWS\system32> Get-PackageProvider -ListAvailable
Name Version DynamicOptions
---- ------- --------------
Chocolatey 2.8.5.130 SkipDependencies, ContinueOnFailure, ExcludeVersion, ForceX86, PackageSaveMode, FilterOnTag, Contains, AllowPrereleaseVersions, ConfigFile, SkipVa...
msi 3.0.0.0 AdditionalArguments
msu 3.0.0.0
NuGet 2.8.5.208 Destination, ExcludeVersion, Scope, SkipDependencies, Headers, FilterOnTag, Contains, AllowPrereleaseVersions, ConfigFile, SkipValidate
PowerShellGet 1.0.0.1 PackageManagementProvider, Type, Scope, AllowClobber, SkipPublisherCheck, InstallUpdate, NoPathUpdate, Filter, Tag, Includes, DscResource, RoleCap...
Programs 3.0.0.0 IncludeWindowsInstaller, IncludeSystemComponent
いろんなパッケージ管理コマンドがあって, それぞれ得意な守備範囲があったりして使い分けてたものをまとめて扱えるようにする, いいじゃないですか.
これでようやっとWindowsでも幸せになれるのだな, と思ったのも束の間. このPackageManagement, install失敗してるのにインストール済みとして扱ったり往々にしてアンインストールに失敗するというではないですか. クソがぁ.(#^ω^)
でね, 私思ったんですよ. Windows10でWindows Subsystem for Linux(通称WSL)ってやつあるじゃないですか. Windowsシステム上でUbuntuとか使えるようにするやつ.
旧Bash on Ubuntu on Windowsとして発表された2016年当時, 試した人からまだまだ使いもんになんないみたいな話を聞いてましたけど, あれから2年, そろそろ使えるものになっててもいいんでないか?ということでさっそく試しています.
で, まだほんのちょびっと触ってみただけですけど, なんとなくいい感じです.(小並感)
設定手順はこちらの記事を参考にさせてもらいました. 以前Bash on Ubuntu on Windowsの頃などに一度環境を構築したことのある方はそちらの古いWSL環境を一度削除してから入れなおしたほうがいいみたいです.
とりあえず手順にそってUbuntu 18.04を入れて、そこにapt
でhugo
を入れてこの記事を書くところまで, うまくいきました.
そうなにもかもうまくはいかないだろうけど, やりたいことは大体このUbuntuでできちゃうかも…?
とりあえず次はこのUbuntu上でDocker環境を構築してみようと思います. 記事はまた後日にでも.
もう全部このUbuntu上でやりたいな. # 最初からLinux使え
深夜テンションでいろいろアレな記事になってしまった…
おわり!