Cygwinのsetup.exeまで含めたアップデート方法。

Cygwinが、たとえばpacmanやrpmのようなパッケージマネージャを使わずにsetup.exeを使わせるのは、Windowsの仕組みとして「開いているファイルは上書きができない」というのが根底にあって、そのためにpacman自身やそれを実行しているshellなどのアップデートがうまくいかないから、らしいです。

なのでsetup.exeを使うわけですが、setup.exeを実行すると「新しいバージョンがあるのでそっちを使って」とかメッセージが出てきて、けっこう煩わしい。setup.exe自身も同様の理由で自分をアップデートできない、ということなんですが…。

じゃあpipはどうなのよ、という話もありますが、Windows環境でpipをアップデートするときには "python -m pip install pip --upgrade" という形で実行するので、pythonがpipを読み込んだあとでcloseしてしまえばできるんだよ、ということですね。きっと。

で、setup.exeのほうは煩わしいので以下のようなバッチファイルを書いてみました。

cygupdate.bat:
wget -N https://cygwin.com/setup-x86_64.exe.sig
wget -N https://cygwin.com/setup-x86_64.exe

gpg2 --verify setup-x86_64.exe.sig setup-x86_64.exe

pause

if not %ERRORLEVEL% == 0 (
  echo BAD Signature!!
  pause
) else (
  setup-x86_64.exe
)

こうしておくと、setup.exeが更新されていた場合にはwgetがリトリーブしてきて、署名も確認してくれて、よければそのまま実行されます。
わりと楽ちん。

Vimの補完プラグインをインストール。その4

Vimの補完プラグインをインストール。その3 で、 ddc-tabnine が使えそうです、などと書いたのですが、早速やってみました。 まず、tabnineのバイナリを用意しないといけません。がどうにもTabNineのサイトがわかりにくいので、 tabnine-nvim にあるダ...