wime向けにATOK2009体験版を入れて試そうとしたが...
ATOK2009の体験版をwimeで使えるかどうかを試すためにWine環境へのインストールを試みた。
インストーラが固まる?
配布ファイルの自己展開書庫at22try3.exeを実行して展開されるディレクトリツリーのAUTOPLAY.exeからインストールを行ってもmsiexecで直接ATOK/ATOK22.msiを実行してもインストールの途中で固まる。以下は[ホームディレクトリ]/.wine-wime/へインストールしようとする作業例。
$ rm ~/.wine-wime -fr $ WINEPREFIX=~/.wine-wime msiexec /i [展開した場所]/ATOK/ATOK22.msi (中略) fixme:msi:msi_unimplemented_action_stub MigrateFeatureStates -> 7 ignored L"Upgrade" table values err:msi:HANDLE_CustomType34 Unable to execute command L"\"C:\\Program Files\\Common Files\\Justsystem\\LMA\\JSLMAUI.exe\" -q" fixme:msi:ACTION_HandleStandardAction unhandled standard action L"SetODBCFolders" fixme:msi:msi_unimplemented_action_stub MigrateFeatureStates -> 7 ignored L"Upgrade" table values fixme:msi:msi_unimplemented_action_stub RemoveExistingProducts -> 7 ignored L"Upgrade" table values fixme:msi:ACTION_CustomAction Rollback only action... rollbacks not supported yet err:rpc:I_RpcGetBuffer no binding fixme:msi:msi_unimplemented_action_stub DeleteServices -> 1 ignored L"ServiceControl" table values fixme:msi:msi_unimplemented_action_stub SelfUnregModules -> 3 ignored L"SelfReg" table values fixme:msi:msi_unimplemented_action_stub UnregisterTypeLibraries -> 1 ignored L"TypeLib" table values fixme:msi:msi_unimplemented_action_stub UnregisterProgIdInfo -> 1 ignored L"ProgId" table values fixme:msi:msi_unimplemented_action_stub RemoveShortcuts -> 16 ignored L"Shortcut" table values fixme:msi:msi_unimplemented_action_stub RemoveFolders -> 23 ignored L"CreateFolder" table values fixme:shell:DllCanUnloadNow stub fixme:shell:DllCanUnloadNow stub fixme:shell:DllCanUnloadNow stub fixme:shell:DllCanUnloadNow stub fixme:shell:DllCanUnloadNow stub fixme:shell:DllCanUnloadNow stub fixme:shell:DllCanUnloadNow stub fixme:shell:DllCanUnloadNow stub fixme:shell:DllCanUnloadNow stub fixme:reg:RegSetKeySecurity :(0xa0,1,0x4e50268): stub fixme:shell:DllCanUnloadNow stub err:module:import_dll Library MFC42.DLL (which is needed by L"C:\\Program Files\\Common Files\\Justsystem\\JsSchHlp\\JsWebEnqUI.ocx") not found Failed to load DLL C:\Program Files\Common Files\Justsystem\JsSchHlp\JsWebEnqUI.ocx err:module:import_dll Library MFC42.DLL (which is needed by L"C:\\Program Files\\Common Files\\Justsystem\\JsSchHlp\\JsSchUI.ocx") not found Failed to load DLL C:\Program Files\Common Files\Justsystem\JsSchHlp\JsSchUI.ocx err:module:import_dll Library MFC42.DLL (which is needed by L"C:\\Program Files\\Common Files\\Justsystem\\JsSchHlp\\JsSchWrap.ocx") not found Failed to load DLL C:\Program Files\Common Files\Justsystem\JsSchHlp\JsSchWrap.ocx fixme:msi:ITERATE_InstallService Dependency list unhandled! (固まる)
Ctrl+Cを繰り返し入力することで抜けることはできたが、この後、このWine環境でアプリケーションを実行しようとすると固まってしまって何もできない状態になってしまった。普段、Wine環境を標準の[ホームディレクトリ]/.wine/だけで使用している場合は試さないほうが良さそう(試すならコピーを作っておくとよい)。
(Ctrl+Cを押す) err:msi:ITERATE_StartService Failed to start service L"JustSystems License Manage Agent" (Ctrl+Cを押す) err:msi:ITERATE_Actions Execution halted, action L"ExecuteAction" returned 1627 (ウィザードのページが切り替わり終了ページになる) Deleting active MRSW lock (0x11495c), expect failure
途中のMFC42.DLLに関するメッセージが気になったので
$ WINEPREFIX=~/.wine-wime [winetricksの場所] mfc42
winetricksで「mfc42」をインストールしてみたが
$ WINEPREFIX=~/.wine-wime msiexec /i [展開した場所]/ATOK/ATOK22.msi (中略) fixme:shell:DllCanUnloadNow stub fixme:shell:DllCanUnloadNow stub fixme:reg:RegSetKeySecurity :(0xa0,1,0x4e50268): stub fixme:shell:DllCanUnloadNow stub Successfully registered DLL C:\Program Files\Common Files\Justsystem\JsSchHlp\JsWebEnqUI.ocx Successfully registered DLL C:\Program Files\Common Files\Justsystem\JsSchHlp\JsSchUI.ocx Successfully registered DLL C:\Program Files\Common Files\Justsystem\JsSchHlp\JsSchWrap.ocx fixme:msi:ITERATE_InstallService Dependency list unhandled! (以下MFCのDLLのインストール前と同様)
該当するファイルの登録の処理は正常に行われるようになったようだが、その後の処理は全く改善されなかった。
どうもmsiexecの「ITERATEなんとか」に関する処理がうまく行われていないようにも見えるのだが、詳しいことはよく分からない。
「WINEDEBUG=+msi」指定をすると、固まるところの少し手前の処理は
$ WINEPREFIX=~/.wine-wime WINEDEBUG=+msi msiexec /i [展開した場所]/ATOK/ATOK22.msi (中略) trace:msi:ControlEvent_FireSubscribedEvent Firing Event L"ActionText" trace:msi:MSIText_WndProc 0x70042 000c 00000000 007eb7a8 trace:msi:MSIDialog_WndProc 0x0138 trace:msi:MSIText_WndProc 0x70042 0138 0000030c 00070042 trace:msi:MSIDialog_WndProc 0x000f trace:msi:MSIDialog_WndProc 0x0014 trace:msi:MSIText_WndProc 0x70042 000f 00000000 00000000 trace:msi:MSIText_WndProc 0x70042 0085 00000001 00000000 trace:msi:MSIText_WndProc 0x70042 0014 0000030c 00000000 trace:msi:MSIDialog_WndProc 0x0138 trace:msi:MSIText_WndProc 0x70042 0138 0000030c 00070042 trace:msi:msiobj_release object 0x7e84d0 destroyed trace:msi:msiobj_release object 0xa7db90 destroyed trace:msi:MSI_DatabaseOpenViewW L"SELECT * FROM ServiceControl" 0x32f938 trace:msi:MSI_ParseSQL Parse returned 0 trace:msi:MSI_ViewExecute 0x7e84d0 (nil) trace:msi:MSI_ViewFetch 0x7e84d0 0x32f8f8 trace:msi:msi_view_get_row 0x12d140 0x7eb560 0 0x32f8f8 (固まる)
のようになっていた。
なお、msiexecの/aオプションを用いて取り出そうともしたが、同様の挙動となり失敗した。
ネイティブ版Windowsインストーラは動作せず
winetricksでネイティブ版Windowsインストーラがインストール/設定できるので(Wine環境を空にして)試してみた。$ rm ~/.wine-wime -fr $ WINEPREFIX=~/.wine-wime [winetricksの場所] msi2
しかし
$ WINEPREFIX=~/.wine-wime msiexec /i [展開した場所]/ATOK/ATOK22.msi fixme:sfc:SFC_3 0 (終了) $ WINEPREFIX=~/.wine-wime msiexec /a [展開した場所]/ATOK/ATOK22.msi targetdir="$(winepath -w /tmp/test)" /qn fixme:sfc:SFC_3 0 err:ole:create_server class {000c101c-0000-0000-c000-000000000046} not registered err:ole:CoGetClassObject no class object {000c101c-0000-0000-c000-000000000046} could be created for context 0x4 fixme:advapi:RegisterEventSourceA ((null),"MsiInstaller"): stub fixme:advapi:RegisterEventSourceW (L"",L"MsiInstaller"): stub fixme:advapi:ReportEventA (0xcafe4242,0x0002,0x0000,0x000003f7,(nil),0x0006,0x00000000,0xa1c758,(nil)): stub fixme:advapi:ReportEventW (0xcafe4242,0x0002,0x0000,0x000003f7,(nil),0x0006,0x00000000,0x12a8d0,(nil)): stub fixme:advapi:DeregisterEventSource (0xcafe4242) stub (3行の不明な文字列)
残念ながら動かなかった。
その環境を用いて、ATOK体験版に付属のWindowsインストーラ3.1再配布可能パッケージのインストーラ(WindowsInstaller-KB893803-v2-x86.exe)も(Windowsのバージョンを2000にして)試したが、こちらはインストール後に端末のプロンプトが表示されなかった(インストーラのGUIが終了してもプログラムが終了していない状態となった)ので手動でCtrl+Cで停止させることになった。
$ WINEPREFIX=~/.wine-wime wine [展開した場所]/ATOK/WindowsInstaller-KB893803-v2-x86.exe fixme:clusapi:GetNodeClusterState ((null),0x32f8a0,2128616200) stub! fixme:advapi:DecryptFileA "d:\\5f10f79eff0903bf4515c3d4f991c4dc\\" 00000000 fixme:setupapi:pSetupGetGlobalFlags stub fixme:wintrust:WinVerifyTrust unimplemented for 4 fixme:ntdll:server_ioctl_file Unsupported ioctl 9c040 (device=9 access=3 func=10 method=0) fixme:sfc:SFC_3 0 fixme:wintrust:CryptCATGetCatAttrInfo 0xffffffff, L"SPAttr" fixme:wintrust:CryptCATGetCatAttrInfo 0x19ad28, L"SPAttr" fixme:wintrust:CryptCATGetCatAttrInfo 0xffffffff, L"SPLevel" fixme:wintrust:CryptCATGetCatAttrInfo 0x19ad28, L"SPLevel" fixme:setupapi:InstallCatalog "C", "T", (nil) err:setupapi:SetupDefaultQueueCallbackA copy error 2 "d:\\5f10f79eff0903bf4515c3d4f991c4dc\\msi.dll" -> "C:\\windows\\system32\\DllCache\\msi.dll" err:setupapi:SetupDefaultQueueCallbackA copy error 2 "d:\\5f10f79eff0903bf4515c3d4f991c4dc\\msiexec.exe" -> "C:\\windows\\system32\\DllCache\\msiexec.exe" err:setupapi:SetupDefaultQueueCallbackA copy error 2 "d:\\5f10f79eff0903bf4515c3d4f991c4dc\\msihnd.dll" -> "C:\\windows\\system32\\DllCache\\msihnd.dll" err:setupapi:SetupDefaultQueueCallbackA copy error 2 "d:\\5f10f79eff0903bf4515c3d4f991c4dc\\msimsg.dll" -> "C:\\windows\\system32\\DllCache\\msimsg.dll" err:setupapi:SetupDefaultQueueCallbackA copy error 2 "d:\\5f10f79eff0903bf4515c3d4f991c4dc\\msisip.dll" -> "C:\\windows\\system32\\DllCache\\msisip.dll" fixme:setupapi:pSetupGetGlobalFlags stub fixme:setupapi:pSetupGetGlobalFlags stub fixme:wintrust:CryptCATGetCatAttrInfo 0x1652a8, L"SPAttr" fixme:wintrust:CryptCATGetCatAttrInfo 0x1652a8, L"SPAttr" fixme:wintrust:CryptCATGetCatAttrInfo 0x1652a8, L"SPLevel" fixme:wintrust:CryptCATGetCatAttrInfo 0x1652a8, L"SPLevel" fixme:setupapi:InstallCatalog "C", "K", (nil) fixme:advapi:RegisterEventSourceA ((null),"Windows Installer 3.1"): stub fixme:advapi:RegisterEventSourceW (L"",L"Windows Installer 3.1"): stub fixme:advapi:ReportEventA (0xcafe4242,0x0004,0x0000,0x400e1119,0x16ab60,0x0002,0x00000000,0x33bb40,(nil)): stub fixme:advapi:ReportEventW (0xcafe4242,0x0004,0x0000,0x400e1119,0x16ab60,0x0002,0x00000000,0x164c18,(nil)): stub fixme:advapi:DeregisterEventSource (0xcafe4242) stub (終了しないのでCtrl+Cで止める)
この状態で試しても
$ WINEPREFIX=~/.wine-wime msiexec /i [展開した場所]/ATOK/ATOK22.msi fixme:sfc:SFC_3 0 (3行の不明な文字列)
となってうまく動かなかった。
空のWine環境でWindowsインストーラ3.1をインストール後「msi」「msiexec.exe」を手動でDLLオーバーライド設定しても同様だった。
このように色々と試したが、インストーラが新しすぎるせいかうまくインストールが行えず、ATOK2009体験版の動作を確認することはできなかった。Wineの今後のバージョンに期待。
最後に.msi形式のファイルから中身を取り出す「msix」というツールも試したが
$ wine [MsiX.exeの場所] [展開した場所]/ATOK/ATOK22.msi Extracting Binary.NewBinary10 Extracting Binary.NewBinary20 Extracting Binary.NewBinary31 Extracting Binary.NewBinary12 Extracting Binary.NewBinary22 Extracting Binary.NewBinary32 Extracting Binary.NewBinary13 Extracting Binary.NewBinary23 Extracting Binary.NewBinary14 Extracting Binary.NewBinary24 Extracting Binary.NewBinary15 Extracting Binary.NewBinary25 Extracting Binary.NewBinary16 Extracting Binary.NewBinary26 Extracting Binary.NewBinary17 Extracting Binary.NewBinary27 Extracting Binary.NewBinary18 Extracting Binary.NewBinary28 Extracting Binary.NewBinary19 Extracting Binary.NewBinary29 Extracting Binary.NewBinary1 Extracting Binary.NewBinary2 Extracting Binary.NewBinary3 Extracting Binary.NewBinary4 Extracting Binary.NewBinary5 Extracting Binary.NewBinary6 Extracting Binary.NewBinary7 Extracting Binary.NewBinary8 Extracting Binary.NewBinary9 Extracting Binary.lma_ca.dll Extracting Binary.ISNetAPI.dll Extracting Binary.ISSELFREG.DLL Extracting Binary.InteriorBin1 Extracting ISSetupFile.SetupFile1 Extracting ISSetupFile.SetupFile2 Extracting ISSetupFile.SetupFile3 Extracting ISSetupFile.SetupFile4 Extracting ISSetupFile.SetupFile5 Extracting ISSetupFile.SetupFile6 Extracting ISSetupFile.SetupFile7 Extracting ISSetupFile.SetupFile8 Extracting ISSetupFile.SetupFile9 Extracting Binary.SetAllUsers.dll Extracting ISSetupFile.SetupFile10 Extracting ISSetupFile.SetupFile11 Extracting ISSetupFile.SetupFile12 Extracting ISSetupFile.SetupFile13 Extracting ISSetupFile.SetupFile14 Extracting ISSetupFile.SetupFile15 Extracting ISSetupFile.SetupFile16 Extracting Icon.ARPPRODUCTICON.exe Extracting Binary.ISSetupFilesHelper Found: _DigitalSignature Found: _SummaryInformation Extracting MsiDigitalCertificate.justsystems.cer Extracting Icon.NewShortcut9_3FD149111B744A9E89596C54413668C6.exe Extracting Icon.NewShortcut10_9E4A2B71AC024CBEB96AB3EADEA603D5.exe $ file * Binary.ISNetAPI.dll: PE32 executable for MS Windows (DLL) (GUI) Intel 80386 32-bit Binary.ISSELFREG.DLL: PE32 executable for MS Windows (DLL) (GUI) Intel 80386 32-bit Binary.ISSetupFilesHelper: PE32 executable for MS Windows (DLL) (GUI) Intel 80386 32-bit Binary.InteriorBin1: JPEG image data, JFIF standard 1.02 Binary.NewBinary1: PC bitmap, Windows 3.x format, 499 x 58 x 24 Binary.NewBinary10: MS Windows icon resource - 2 icons, 48x48, 256-colors Binary.NewBinary12: MS Windows icon resource - 1 icon (中略) Icon.NewShortcut10_9E4A2B71AC024CBEB96AB3EADEA603D5.exe: MS Windows icon resource - 8 icons, 16x16, 256-colors Icon.NewShortcut9_3FD149111B744A9E89596C54413668C6.exe: MS Windows icon resource - 4 icons, 16x16, 256-colors MsiDigitalCertificate.justsystems.cer: data
中身の展開自体はされているが、この状態ではファイル名も分からない。/extオプションも試したが、拡張子までしか分からない。
使用したバージョン:
- Wine 1.1.12-1.1.17, 1.1.26