Вайновская команда не распаковывает: [lav@euclid 1]$ wine extrac32 /E vcredist.exe mfc42u.dll err:cabinet:FDICopy FDIIsCabinet failed. fixme:extrac32:ExtCab Can not extract cab file:L"vcredist.exe"!!! Линуксовый cabextract - без проблем: [lav@euclid 1]$ cabextract vcredist.exe -F "mfc42u.dll" Extracting cabinet: vcredist.exe extracting mfc42u.dll В Windows вроде как молча завершается: C:\> extrac32 /E vcredist.exe mfc42u.dll vcredist.exe лежит в windows/downloads вообще цель - чтобы vcredist установил mfc42u.dll при своей установке. По идее оно ставится только на NT-систему. В нашей системе он стирает даже тот файл mfc42u.dll, который есть.
В ies4linux есть ещё вот такое использование cabextract'а: $ cabextract -L -F ver1200.exe ./249973USA8.exe Сейчас это держит зависимость от cabextract при установке IE в свободной сборке. Если появится адекватная обработка такой команды, можно будет выкинуть зависимость.
Возможно будет достаточно просто запустить этот файл, чтобы он сам распаковался, с одним из ключей http://freesource.info/wiki/WINE/Programs/wcabextract
ошибка выдаётся при проверке MSCF signature. Вообще странно распаковывать файл вручную, если он сам может себя распаковать Думаю extrac32 должен сначала проверять расширение, и если оно *.exe, то запускать сам файл. Проблема в том, как распаковать отдельных файл оттуда. Если набрать wine vcredist.exe /?, то можно посмотреть поддерживаемые опции. Распаковки отдельных файлов там нет, хотя это ещё не значит, что она не поддерживается Есть ещё второй вариант - распаковывать именно через функции cabinet.dll, но для этого надо в *.exe файле научится находить место, откуда начинается *.cab -файл
Перевешиваю на Костю, чтобы он заменил когда-нибудь строку $ cabextract -L -F ver1200.exe ./249973USA8.exe на собственно вызов команды.
У меня есть своя бага про cabextract, мне чужого не нужно :) http://bugs.etersoft.ru/show_bug.cgi?id=693 Если всё с самораспаковкой решено - закрывайте, а я старую переоткрою пока...
extrac32 такие файлы не воспринимает, так уж он устроен.