LINUX.ORG.RU

Перенос wine_prefix


0

1

Доброго времени суток, есть ситуация:

  • есть домашний ПК, с полноценным доступом к интернету
  • есть рабочий ПК с беспощадным ограничением по трафику
  • есть wine-префиксы, в которых уже установлен и настроен нужный софт

Задача:

  • перенести всё это дело на рабочий ПК, так чтобы всё сразу и само взлетело

Я попробовал просто сжать в zip, а затем им же распаковать на конечной машине. При запуске env WINEPREFIX=«блабла» wine «blabla» у меня почему то заного настраивается wine окружение (как будто ничего и не было), а приложение в нём не запускается (невнятные ошибки) =(

Версия wine и там и там примерно одиннаковая, 1.3+

Возможно, помимо префикса нужно тащить ещё какие-нибудь файлы? Почему wine окружение при первом запуске снова настраивается? Как можно решить эту задачу? (варианты «wine не нужен» и прочий мозг рака просьба излагать про себя :) )


>есть рабочий ПК с беспощадным ограничением по трафику

3G

MrHouse
()
Ответ на: комментарий от delete83

Wine, когда обнаруживает, что в боксе была другая версия, что-то там обновляет (видимо, системные библиотеки в Windows и System32), так что ничего страшного в этом нет. Должно взлететь нормально.

delete83 ★★
()

а приложение в нём не запускается (невнятные ошибки) =(


Вот. По существу. Давайте лог ваших ошибок невнятных, будем думать.

delete83 ★★
()
Ответ на: комментарий от delete83

> Версии wine «почти» одинаковые или все же одинаковые? Это важно.

К сожалению точно сказать, в данный момент, не могу. Как приду домой напишу. На работе версия - wine-1.3.15

Wine, когда обнаруживает, что в боксе была другая версия, что-то там обновляет (видимо, системные библиотеки в Windows и System32), так что ничего страшного в этом нет. Должно взлететь нормально.

Спасибо, теперь ясно.

Вот. По существу. Давайте лог ваших ошибок невнятных, будем думать.

pastebind

визуальные ошибки:

  • Unable to continue because hardware or system error
  • Microsoft visual c++ runtime error

Ещё 1 нюанс. Сжимал я wine_prefix папку WinRar-ом, ибо базовая убунтувская не смогла (оО) ни сжать, ни расжать. Возможно это критично.

faiwer
() автор топика
Ответ на: комментарий от faiwer

ОК. Первая ошибка:

err:setupapi:create_dest_file failed to create L"C:\\windows\\system32\\shlwapi.dll" (error=80)


И сразу первое же предположение, что у вас некорректно установлены права на всю директорию с wine_prefix. В таком случа странно выглядит, что wine при обновлении не заругался, но фиг его знает. Проверить стоит. Если же права и правда окажутся некорректными, придется удалить всю папку и распаковать ее заново. Для чистоты эксперимента.

Второй вариант: Эта библиотека уже лежит в каталоге C:\\windows\\system32\\shlwapi.dll и ее оттуда стоит попробовать удалить (переместить в другую директорию).

Третий вариант: возможно при обновлении полетели настройки wine и их нужно просто исправить. Проверить настройки можно командой env WINEPREFIX=«блабла» winecfg.

Больше пока идей нет.

delete83 ★★
()
Ответ на: комментарий от delete83

> И сразу первое же предположение, что у вас некорректно установлены права на всю директорию с wine_prefix. В таком случа странно выглядит, что wine при обновлении не заругался, но фиг его знает. Проверить стоит. Если же права и правда окажутся некорректными, придется удалить всю папку и распаковать ее заново. Для чистоты эксперимента.

Я не знаю какие должны быть правильные права, сделал так:

  • снёс ~/.wine_ps5
  • снова распаковал
  • chown -R faiwer ~/.wine_ps5 && chgrp -R faiwer ~/.wine_ps5 && chmod 777 ~/.wine_ps5

Ситуация не исправилась.

Второй вариант: Эта библиотека уже лежит в каталоге C:\\windows\\system32\\shlwapi.dll и ее оттуда стоит попробовать удалить (переместить в другую директорию).

Не помогло.

Третий вариант: возможно при обновлении полетели настройки wine и их нужно просто исправить. Проверить настройки можно командой env WINEPREFIX=«блабла» winecfg.

Открывается окно конфига вайна. Вроде бы все настройки правильные.

Получается, остаётся только то, что версии wine-а разные?

faiwer
() автор топика
Ответ на: комментарий от delete83

Немного покопался в логе:

err:shell:SHGetFileInfoW pidl is null!
...
err:shell:HCR_GetFolderAttributes should be called for simple PIDL's only!
...
err:ole:CoInitializeEx Attempt to change threading model of this apartment from apartment threaded to multi-threaded


Приводит к

2011-11-24 12:14:35 : INFO PlugPlugTerminate called
2011-11-24 12:14:35 : ERROR PlugPlugTerminate: PlugPlugErrorCode_internalError (PlugPlugRegisterCallbacks and PlugPlugSetup must be called first)
2011-11-24 12:14:35 : INFO Return value for PlugPlugTerminate: PlugPlugErrorCode_internalError
...
err:seh:raise_exception Unhandled exception code e06d7363 flags 1 addr 0x7b839552



Имхо, какой-то плагин не может загрузиться. Причина не ясна.

Как в wine реализована SHGetFileInfo я не знаю, но в MSDN сказано, что 0 она возвращает в случае ошибки или если файл не является исполняемым. Возможно проблема здесь. Правда я представления не имею, что за плагины пытается загружать фотошоп. Остальные ошибки, думаю, не критичны и работе программы не мешают. Фотошоп сам завершает свою работу, когда не может загрузить плагин.

delete83 ★★
()
Ответ на: комментарий от faiwer

Это главная версия. Возможно что-то поменяли между версиями в реализации WinAPI. Стоит попробовать точно такую же версию wine.

delete83 ★★
()
Ответ на: комментарий от faiwer

Не знаю, что именно помогло, но все ошибки исчезли, а значит они и не были критичны и проблема не в wine (хотя это не точно, но скорее всего) Причину искать надо в самом факте смены компьютера. Имя компьютера, используемые сетевые ресурсы, оборудование в конце концов. Временно попробовать отключить все плагины и если заведется, подключать по одному.

delete83 ★★
()
Ответ на: комментарий от delete83

> А путь '\\unix\\home\\faiwer\\.local\\share\\icons\\' реально существует? Вы можете через файловый менеджер туда зайти?

Сюда: /home/faiwer/.local/share/icons да, директория в которой куча .png, а через что заходить на \\unix\\home\\faiwer\\.local\\share\\icons\\, я не знаю. Если через wine в консоли, то пишет:

[code]faiwer@ubuntu-faiwer:/$ wine \\unix\\home\\faiwer\\.local\\share\\icons\\ wine: cannot find '\unix\home\faiwer\.local\share\icons\'[/code]

faiwer
() автор топика
Ответ на: комментарий от delete83

На рабочем (т.е. на котором НЕ работает - да), на домашнем я её не трогал. Насколько я знаю, она автоматически идёт с ubuntu11.04, так что, скорее всего запущена была. Но я точно там (в самбе) ничего не настраивал.

faiwer
() автор топика
Ответ на: комментарий от faiwer

А, не, я неправильно прочитал лог. Там особая магия NT применяется =) Путь вида \\?\\Unix\\... Это путь к диску, который в winecfg смотрит в /

Такой диск по умолчанию вроде создается и все здесь работает нормально. Искать надо в другом месте. Например, отключая плагины.

delete83 ★★
()
Ответ на: комментарий от delete83

Или сменив версию wine на ровно такую же, как дома.

delete83 ★★
()

Меня смущает вот эта строчка

fixme:wbemprox:wbem_locator_ConnectServer 0x575ad78, L"ROOT\\CIMV2", (null), (null), (null), 0x00000000, (null), (nil), 0x33d6bc)


Как я понимаю, «ROOT\\CIMV2» - это пространство имен и оно верное, а вот 0x575ad78 - это ip-адрес, куда функция пытается подключиться. И адрес этот записан в 16-ричном виде. Блин, кто бы помог приеобразовать в человеческий вид... Предположу, что это 120.173.117.5 Вам это о чем-нибудь говорит?

delete83 ★★
()
Ответ на: комментарий от delete83

Кстати, всезнающий MSDN утверждает, что на другом конце (по адресу 120.173.117.5) должен функционировать сервис WMI, а значит скорее всего винда.

delete83 ★★
()
Ответ на: комментарий от delete83

На данный момент я вижу 2 решения:

1. Поднять на виртуалке новую убунту, а на ней вайн, а в нём фотошоп. Получится более чистая версия :) 2. Привести домашнюю версию wine к той же версии, что и на работе.

А в целом я прав? Для того, чтобы перенести 1 префикс на другой ПК, достаточно переноса папки префикса? Т.е. тянуть за собой какие-нибудь отдельные либы и конфиги не надо?

faiwer
() автор топика
Ответ на: комментарий от faiwer

Обычно да. Но бывают особые случаи, когда софтина привязана к окружению. Например обращается к сетевому ресурсу, который на другом компьютере не доступен.

delete83 ★★
()
Ответ на: комментарий от Deleted

Выяснил: дома wine 1.3.32. Также попробовал установить на голую Ubuntu 11.10. Проставил из репы 1.3.28 (большей версии в репах не нашлось), эффект - те же ошибки. + убедился насколько же убога Unity, не зря я на .04 сижу.

Затем нашёл целый репозиторий с 1.3.32 версией, попробую проставить скачанные с него deb-ы на работе. + по совету cryptonymous-а сжимаю .tar-ом( по этому гайду ). «Глючные» иконки, на всякий случай, тоже записал :)

P.S. tar архив весит 201 Мб, а его zip аналог 438 Мб. Внутри вроде всё ok, странно :)

faiwer
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.