Linux: как запустить несколько версий wine в среде multilib?

Я запускаю Slackware 64 14.0 с 32-битными мультилибами.

многочисленные сайты объяснили, что невозможно запустить несколько версий wineserver и что решение состоит в том, чтобы убить старую версию wineserver, чтобы использовать новую версию. Некоторые сайты упоминали, что это возможно, используя различные WINEPREFIX для каждой версии wineserver.

вот что я делаю случайно в течение нескольких месяцев, потому что Netflixplayer по сути делает. Я не уверен, работает ли wineserver Netflixplayer или использует wineserver моей установки wine. Я не смог проверить версию вина, которая находится в Netflixplayer.смола.gz потому что когда я бегу:

/opt/Netflix64/bin/wine --version

или

cd /opt/Netflix64/bin && ./wine --version

он сообщает любую версию wine, установленную в /usr / bin. Я проверил это, установив / удалив несколько версий.

по данным http://sourceforge.net/projects/postinstaller/files/data/, это не похоже на Netflixplayer был обновлен, так как 12/24/2012 и последнюю версию Wine, то был 1.5.20 по http://sourceforge.net/projects/wine/files/Source/

так я бегал

вино 1.5.25 32 бит

и Netflixplayer с

вино < = 1.5.20 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 выступает показывает, что библиотека runpaths разные.

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 FilesMozilla Firefoxfirefox.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 стал бесполезен.

22
задан user2270773
23.05.2023 3:39 Количество просмотров материала 3507
Распечатать страницу

1 ответ

Я попытался задать вопрос значительное количество раз, но к тому времени, как я закончу заполнять форму, я понял за несколько минут, что заняло дни или даже недели без результатов. Я, вероятно, должен был спросить и ответить на него сам, потому что мои вопросы, как правило, имеют результаты 1 или 2 страницы в google, скрытые между тысячами похожих, но несвязанных вопросов.

во всяком случае, вот мой ответ:

Netflixplayer.смола.gz использует вино-1.5.19. Я получил это, создав другого пользователя и выполнив те же команды из вопроса:

bash-4.2$ /opt/Netflix64/bin/wine --version
wine-1.5.19
bash-4.2$ /usr/bin/wine --version
wine-1.5.25

Это говорит мне, что определенно что-то не так с моим текущим пользователем. Возможно, мое окружение каким-то образом повреждено.

В настоящее время я решил это, запустив второй wineserver в качестве нового пользователя, но я думаю, что если бы я исправил своего текущего пользователя, я мог бы запустить оба wineservers в той же учетной записи. Но это не имеет большого значения. Что касается меня, однако, что могут быть и другие неизвестные побочные эффекты того, что происходит.

bash-4.2$ ps aux | grep wineserver
user1  7415 15.7  0.3  15460 12320 ?  Ss 17:40  17:26 /usr/bin/wineserver
user2  10661 8.7  0.3  13316 10272 ?  Ss 19:14   1:26 /opt/Netflix64/bin/wineserver

автоматизация команды "sudo su-user"

Я не уверен, но возможно, что мой $LD_LIBRARY_PATH, который я установил из предыдущей компиляции, мешал библиотечным путям исполняемых файлов. У моего нового пользователя, очевидно, не было этого на своем пути.

0
отвечен user2270773 2023-05-24 11:27

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх