cygwinのperlでCPANのセットアップをするとperlやminttyが消える

CPAN

CPANを使うために、 /usr/bin/cpan または perl -MCPAN -e shell を実行。 そのままENTERを押してインストールを継続すると、CPANのモジュールがロードされる。がこの瞬間ターミナルが消えてしまう

ここで確認すると

  • /usr/bin/mintty が消えてる
  • /usr/bin/perl も消えている

再インストール、そして再現

setup_x86_64.exeで消えたパッケージだけ再インストールしようとしたらなぜか存在しないmintty.exeが使用中で結局全消去&再インストール。
そして cpanを実行するとまた同じことが再現

消えたパッケージを確認

$ cygcheck -c | grep -v OK
Cygwin Package Information
Package                  Version             Status
mintty                   3.0.1-1             Incomplete
perl_base                5.26.3-1            Incomplete

再インストールしようとすると、やっぱりファイルが使用中といわれる。ファイルを作ろうとして作れない。

C:\cygwin64\bin>touch perl.exe
touch: cannot touch 'perl.exe': Permission denied

ようやくロックの原因判明。Avastだった。

Avastを10分停止すると、再インストールOKだった。

Avastが特にウィルス検出していたわけではなさそうだけど、 なぜかファイルをロックしていたようだ。

結局のところ CPANは・・・

ActivePerl を入れることにする
(ActivePerl 5.28を入れると ppm が無かった。5.26を入れるといい

ちなみに

> ppm install Spreadsheet-ParseExcel
> ppm install Spreadsheet-ParseXLSX

でインストールできる