Я использую Slackware 64 14.0 с 32-битными мультилибами.
Многочисленные сайты объясняют, что невозможно запустить несколько версий wineserver и что решение состоит в том, чтобы убить старую версию wineserver, чтобы использовать новую версию. Некоторые сайты упомянули, что это возможно, используя разные WINEPREFIX для каждой версии wineserver.
Это то, что я делал по неосторожности в течение нескольких месяцев, потому что это то, что по сути делает Netflixplayer. Я не уверен, работал ли винсервер Netflixplayer или использовал винный сервер моей винной установки. Мне не удалось проверить версию Wine, которая находится в Netflixplayer.tar.gz, потому что при запуске:
/opt/Netflix64/bin/wine --version
или же
cd /opt/Netflix64/bin && ./wine --version
он сообщает, какая версия Wine установлена в /usr /bin. Я подтвердил это путем установки / удаления нескольких версий.
Согласно http://sourceforge.net/projects/postinstaller/files/data/, не похоже, что Netflixplayer был обновлен с 24/12/2012, а последняя версия Wine тогда была 1.5.20 в соответствии с http://sourceforge.net/projects/wine/files/Source/
Итак, я бежал
вино 1.5.25 32 бит
и Netflixplayer с
вино <= 1,50 32 бит
Согласно «файлу» обе версии вина являются 32-битными:
bash-4.2$ file /opt/Netflix64/bin/wine
/opt/Netflix64/bin/wine: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), BuildID[sha1]=0x2acec63c4ffa5cd7515f1c9fead64d54616df195, stripped
bash-4.2$ file /usr/bin/wine
/usr/bin/wine: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), stripped
И readelf показывает, что пути к библиотекам разные.
bash-4.2$ readelf -d /usr/bin/wine | grep -e Library -e library
0x00000001 (NEEDED) Shared library: [libwine.so.1]
0x00000001 (NEEDED) Shared library: [libpthread.so.0]
0x00000001 (NEEDED) Shared library: [libc.so.6]
0x0000000f (RPATH) Library rpath: [$ORIGIN/../lib]
0x0000001d (RUNPATH) Library runpath: [$ORIGIN/../lib]
bash-4.2$ readelf -d /opt/Netflix64/bin/wine | grep -e Library -e library
0x00000001 (NEEDED) Shared library: [libwine.so.1]
0x00000001 (NEEDED) Shared library: [libpthread.so.0]
0x00000001 (NEEDED) Shared library: [libc.so.6]
0x0000000f (RPATH) Library rpath: [$ORIGIN/../lib32]
0x0000001d (RUNPATH) Library runpath: [$ORIGIN/../lib32]
Я смог запустить Netflixplayer только один раз после того, как все это произошло, и это потому, что я удалил все, что касается Wine, и удалил все в /tmp, включая скрытые файлы, и удалил все ссылки на wine, кроме истории пакетов. Я вернулся к 1.5.25 и, что бы я ни делал, даже закрытие старой версии wineserver с помощью wineserver -k не сработает.
Выполнение этого:
env WINELOADER="/opt/Netflix64/bin/wine" WINESERVER="/opt/Netflix64/bin/wineserver" WINEPREFIX="$HOME/.Netflix" /opt/Netflix64/bin/wine "C:\Program Files\Mozilla Firefox\firefox.exe" http://netflix.com/
Производит это:
wine client error:0: version mismatch 437/439.
Your wineserver binary was not upgraded correctly,
or you have an older one somewhere in your PATH.
Or maybe the wrong wineserver is still running?
Netflixplayer больше не будет работать с любым другим вином, установленным в системе. Я думаю, что переменные среды игнорируются. И это как-то WINEPREFIX стало бесполезным.