読者です 読者をやめる 読者になる 読者になる

沖の雑記帳

基本的には趣味に絡んで雑多な内容を色々と

Windows7 32-bitでChocolateyが使えなくなった話と解決した話

Chocolatey Windows 覚書

つい先日、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.exe7z.dllをバックアップして、ローカルに解凍した32ビット版の7z.exe7z.dllに置き換える

これで無事、Zipパッケージもインストール及びアップデートが可能になる。

もし同様の現象が発生している方の参考になれば