При установке 1С Предприятия 8.0 появляется вот такая ошибка: 1608: Unable to create InstallDriver instance Return code: -2147221021 winelog: ... Программа проверки WINE@Etersoft. 09.10.08 (c) 2005, 2006, 2007, 2008 Etersoft Проверяем libwine.so.1... ИМЕЕТСЯ. (версия 20080705) Проверяем /usr/bin/winelog ... пакет WINE@Etersoft: УСТАНОВЛЕН Проверяем libwine-etersoft.so.1... NETWORK ИМЕЕТСЯ (сборка 0x211) ------- WINE@Etersoft 1.0 Network (1.0.9), registration number is XXXX-B0A8. Legality check is available on the page http://sales.etersoft.ru/product/. ------- Проверяем libcups.so.2... ИМЕЕТСЯ. Проверяем libfreetype.so.6...ИМЕЕТСЯ (версия 2.2.1) Установлено соединение с Икс-сервером на :1003.0 Расширение GLX имеется (3D поддерживается) Используемая модель потоков (thread): pthread (NPTL) Ядро: Linux, версия: 2.6.18-6-686 Максимальное число файловых дескрипторов в системе: 50593 (3872 используется) Максимально доступное количество открытых файлов для одного процесса: 1024 Число тиков таймера в секунду (CLK_TCK): 100 Нет ограничений виртуальной памяти Количество бит для смещения в файле: 64 Установка блокировки на смещение более 512Мб прошла успешно Установка блокировки на смещение более 4Гб прошла успешно Текущая локаль: ru_RU.UTF-8 ... trace:loaddll:load_native_dll Loaded L"C:\\Program Files\\Common Files\\InstallShield\\Driver\\7\\Intel 32\\IDriver.exe" at 0x400000: native ... fixme:rpc:alloc_serverprotoseq protseq "mswmsg" not supported - около 100 сообщений ... fixme:rpc:I_RpcServerStopListening (): stub
Версия 1С Предприятие 8.0: 8.0.18.2
Какую проблему вызывает эта ошибка?
Не устанавливается.
Устанавливаете командой $ winexp setup.exe ?
Устанавливаю: winexp autorun.exe Running in NT environment... fixme:msg:pack_message msg 14 (WM_ERASEBKGND) not supported yet ALSA lib seq_hw.c:457:(snd_seq_hw_open) open /dev/snd/seq failed: No such file or directory ALSA lib seq_hw.c:457:(snd_seq_hw_open) open /dev/snd/seq failed: No such file or directory fixme:storage:StgCreateDocfile Storage share mode not implemented. fixme:rpc:RpcMgmtWaitServerListen not waiting for server calls to finish fixme:rpc:RpcImpersonateClient (0x15bfec8): stub fixme:ole:NdrClearOutParameters (0x33c698,0x7e6e75ba,0x15c86e0): stub fixme:rpc:RpcRevertToSelfEx (0x15bfec8): stub fixme:rpc:RpcImpersonateClient (0x15d22b0): stub fixme:rpc:RpcRevertToSelfEx (0x15d22b0): stub fixme:rpc:RpcImpersonateClient (0x15d24c0): stub fixme:rpc:RpcRevertToSelfEx (0x15d24c0): stub fixme:rpc:RpcImpersonateClient (0x15d26f0): stub fixme:rpc:RpcRevertToSelfEx (0x15d26f0): stub fixme:msi:msi_unimplemented_action_stub MsiUnpublishAssemblies -> 2 ignored L"MsiAssembly" table values fixme:msi:msi_unimplemented_action_stub UnregisterTypeLibraries -> 3 ignored L"TypeLib" table values fixme:msi:msi_unimplemented_action_stub UnregisterClassInfo -> 1 ignored L"AppId" table values fixme:msi:msi_unimplemented_action_stub UnregisterProgIdInfo -> 9 ignored L"ProgId" table values fixme:msi:msi_unimplemented_action_stub RemoveShortcuts -> 12 ignored L"Shortcut" table values fixme:rpc:RpcImpersonateClient (0x15fe270): stub fixme:rpc:RpcRevertToSelfEx (0x15fe270): stub fixme:msi:MsiGetMode 2 6 fixme:rpc:RpcImpersonateClient (0x15ff068): stub fixme:rpc:RpcRevertToSelfEx (0x15ff068): stub fixme:rpc:RpcImpersonateClient (0x15ff068): stub fixme:rpc:RpcRevertToSelfEx (0x15ff068): stub fixme:msi:install_assembly Manifest unhandled fixme:msi:install_assembly Win32 assemblies not handled fixme:msi:install_assembly Manifest unhandled fixme:msi:install_assembly Win32 assemblies not handled fixme:rpc:RpcImpersonateClient (0x1602380): stub err:ole:CoGetClassObject class {f618c514-dfb8-11d1-a2cf-00805fc79235} not registered err:ole:CoGetClassObject class {f618c514-dfb8-11d1-a2cf-00805fc79235} not registered err:ole:create_server class {f618c514-dfb8-11d1-a2cf-00805fc79235} not registered fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported err:ole:CoGetClassObject no class object {f618c514-dfb8-11d1-a2cf-00805fc79235} could be created for context 0x17 err:ole:CoGetClassObject class {f618c514-dfb8-11d1-a2cf-00805fc79235} not registered err:ole:CoGetClassObject class {f618c514-dfb8-11d1-a2cf-00805fc79235} not registered err:ole:create_server class {f618c514-dfb8-11d1-a2cf-00805fc79235} not registered fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported err:ole:CoGetClassObject no class object {f618c514-dfb8-11d1-a2cf-00805fc79235} could be created for context 0x17 fixme:netapi32:NetUserAdd ((null), 1, 0x33b468, 0x33b460) stub! fixme:netapi32:NetUserGetLocalGroups ((null), L"USER1CV8SERVER", 0, 00000001, 0x33b43c -1, 0x33b444, 0x33b490) stub! И 1С выдает ошибку: При регистрации COM+ приложения произошла ошибка (код ошибки = 8ad). Вам необходимо зарегестировать это приложение вручную.
Только сейчас заметил что 8.0. А почему autorun? Там же наверное есть и собственно дистрибутив с setup.exe?
1C 8.0 установилась нормально под winexp. А вот обновление до 8.0.18.2 вываливается с ошибкой msi. err:msi:ACTION_InstallFiles compressed file wasn't extracted (L"C:\\Program Files\\1cv8\\bin\\ru\\BP.res") err:msi:ITERATE_Actions Execution halted, action L"InstallFinalize" returned 1603
после обновления вайна поведение изменилось. Теперь с той же ошибкой 1603 вываливается на другом файле (wbase.dll) Ясно одно -- после выполнения msi_cabextract() остаются не распакованы те файлы, которые уже существовали в Program Files Так, если wbase.dll удалить из Program Files, то msi_cabextract() изменит его состояние на msifs_installed и программа завершится с ошибкой 1603 уже на другом файле. Также, похоже, что проблема никак не связана с регистром литер в имени файла.
для проведения экспериментов на extrac32 /E Data1.cab взял два файла BP.dll -- который всегда создаётся BP.res -- который никогда не создаётся функция, которая вызывает CreateFile для создания файла - это sc_cb_open в setupcab.c . Она же и возвращает хэндл, полученный от CreateFile. Функция CreateFile и для первого и для второго файла вызывается абсолютно идентично. Вот куски лога полученного за один extrac32-запуск: для BP.dll с проверкой существования файла ди после вызова CreateFile: ***sc_cb_open("BP.dll", 8101, 180) before CreateFileA(), file_exist->no ***sc_cb_open("BP.dll", 8101, 180) before CreateFileA(ioflag=40000000, sharing=3, sa={nLength=c, bInheritHandle = 1}, creation=4) CreateFileW -> L"BP.dll" GENERIC_WRITE FILE_SHARE_READ FILE_SHARE_WRITE creation 4 attributes 0x80 ***sc_cb_open("BP.dll", 8101, 180) after CreateFileA(), file_exist->yes ***sc_cb_open("BP.dll", 8101, 180) ret -> 44 для BP.res с проверкой существования файла до и после вызова CreateFile: ***sc_cb_open("BP.res", 8101, 180) before CreateFileA(), file_exist->no ***sc_cb_open("BP.res", 8101, 180) before CreateFileA(ioflag=40000000, sharing=3, sa={nLength=c, bInheritHandle = 1}, creation=4) CreateFileW -> L"BP.res" GENERIC_WRITE FILE_SHARE_READ FILE_SHARE_WRITE creation 4 attributes 0x80 ***sc_cb_open("BP.res", 8101, 180) after CreateFileA(), file_exist->no ***sc_cb_open("BP.res", 8101, 180) ret -> 44 Соответственно в обоих случаях она возвращает хэндл. Как видно из куска одного лога, разница между вызовами в том, что в первом случае она создаёт файл, а во втором -- нет.
несмотря на исследование в http://bugs.etersoft.ru/show_bug.cgi?id=2873 установка обновления под виндой происходит нормально (с установкой BP.res ёмкостью 12288 байт). Вероятно, в процессе установки под виндой используются какие-то другие способы распаковки.
Патч - http://lists.etersoft.ru/pipermail/wine-patches/2008-November/000077.html В функции ACTION_InstallFiles, после того, как функция FDICopy распаковывает Data1.cab, на дублирующимся файле не ставится file->stat в msifs_installed Патч добавляет проверку существования файла в этом случае, и не допускает прерывание процесса инсталляции, если файл уже существует.