つい先日、Chocolateyを使用してChocolateyをアップグレードしたところChocolateyで一部のパッケージのインストール及びアップデートが使用できなくなりました。
ただし、自宅のWindows10 64-bitでは問題なくアップデートもインストールもできていたので原因がなかなか特定できずにいた。
とりあえず、正攻法かどうかは別として解決策が見つかったので覚書がてら書いておく。
インストールやアップデートが不可能になるのはインストーラを使用しないzip等のアーカイブからインストールするパッケージのみ
インストーラ使用するものは特に問題なく使用できる(というのに気づくのに数日かかった)
原因となっていそうなのは下記のログ
Extracting C:\Users\(username)\AppData\Local\Temp\chocolatey\autohotkey.portable\1.1.24.00\AutoHotkey112400.zip to C:\ProgramData\chocolatey\lib\autohotkey.portable\tools... 7zip found at 'C:\ProgramData\chocolatey\tools\7z.exe' Executing command ['C:\ProgramData\chocolatey\tools\7z.exe' x -aoa -bd -bb1 -o"C:\ProgramData\chocolatey\lib\autohotkey.portable\tools" -y "C:\Users\(username)\AppData\Local\Temp\chocolatey\autohotkey.portable\1.1.24.00\AutoHotkey112400.zip"] ERROR: Exception calling "Start" with "0" argument(s): "The specified executable is not a valid application for this OS platform." at Get-ChocolateyUnzip, C:\ProgramData\chocolatey\helpers\functions\Get-ChocolateyUnzip.ps1: line 159 at Install-ChocolateyZipPackage, C:\ProgramData\chocolatey\helpers\functions\Install-ChocolateyZipPackage.ps1: line 154 at <ScriptBlock>, C:\ProgramData\chocolatey\lib\autohotkey.portable\tools\chocolateyInstall.ps1: line 6 at <ScriptBlock>, C:\ProgramData\chocolatey\helpers\chocolateyScriptRunner.ps1: line 48 at <ScriptBlock>, <No file>: line 1
The specified executable is not a valid application for this OS platform.
という表示が出ている。
これをローカルで実行してみた
$ 7z このバージョンの C:\ProgramData\chocolatey\tools\7z.exe は、実行中の Windows のバージョンと互換性がありません。コンピ ューターのシステム情報を確認して、プログラムの x86 (32 ビット) のバージョンと x64 (64 ビット) のバージョンのどちらが 必要か確認してから、ソフトウェアの発行元に問い合わせてください。
というわけで、Chocolateyを最新版にアップデートした際にChocolateyがローカルで使用している7-zipの実行ファイル(恐らくdllも)が64ビット版になってしまったようだ
なので、ここからは今後のアップデートで同様の現象が発生する可能性はあるが対処法
対処法といっても簡単で、自分で「圧縮・解凍ソフト 7-Zip」から32ビット版の最新版をダウンロードしてローカルに解凍
念のためオリジナルの7z.exe
と7z.dll
をバックアップして、ローカルに解凍した32ビット版の7z.exe
と7z.dll
に置き換える
これで無事、Zipパッケージもインストール及びアップデートが可能になる。
もし同様の現象が発生している方の参考になれば