babunでパッケージアップデート後特定のコマンドが動かなくなったら


babunでupdate.batを利用しパッケージアップデート実施後、特定のコマンドを実行すると、以下のようなエラーメッセージが出る場合がある。

C:/Users/**/.babun/cygwin/bin/perl.exe: error while loading shared libraries: ?: cannot open shared object file: No such file or directory

このエラーメッセージからだと、なんのモジュールが読み込むことができないのかさっぱりわからない。
ついでに重要なコマンドが使えなくなるので大変困る。

調べてみると全く同じ現象に対応しているブログがあった。
https://blog.darkedges.com/2016/11/20/perl-exe-error-while-loading-shared-libraries-cannot-ed-object-file-no-such-file-or-directory/

上記の記事によるとcygcheckコマンドで読み込めないモジュールを特定して、そのモジュールのパッケージを再インストールするとうまく動くらしい。

$ cygcheck perl                                                                          ~
Found: C:\Users\**\.babun\cygwin\bin\perl.exe
C:\Users\**\.babun\cygwin\bin\perl.exe
  C:\Users\**\.babun\cygwin\bin\cygperl5_22.dll
    C:\Users\**\.babun\cygwin\bin\cygwin1.dll
      C:\WINDOWS\system32\KERNEL32.dll
        C:\WINDOWS\system32\ntdll.dll
        C:\WINDOWS\system32\KERNELBASE.dll
    C:\Users\**\.babun\cygwin\bin\cyggcc_s-1.dll
    C:\Users\**\.babun\cygwin\bin\cygssp-0.dll
cygcheck: track_down: could not find cygcrypt-0.dll

自分の環境でもどうやらcygcryptが読み込めないらしい。ブログの通り、cryptパッケージを入れなおしたら無事動いた。

pact remove libcrypt0 crypt
pact install crypt