воскресенье, 15 июля 2012 г.

Как грамотно установить WINE и PlayOnLinux на Linux Mint Debian Edition 64 / How to correctly install WINE under LMDE 64

Текущие проблемы в Linux Mint Debian Edition 64 и их причины

  1. отсутствует библиотека lib32asound2-plugins (не путать с libasound2-plugins!), предоставляющая доступ 32битных приложений к PulseAudio 64битной системы.
    Таким образом, все 32битные приложения при обращении к ALSA не смогут быть перенаправлены в PulseAudio. Причина отсутствия не ясна.
  2. отсутствует WINE даже базовой версии.
  3. конфигурация PulseAudio оставляет желать лучшего.

  Шаг 1. Устанавливаем WINE

  • WINE является жесткой зависимостью для установки PlayOnLinux
  • в репах Debian'a WINE отсутсвует напрочь, кроме sid - поэтому мы его из sid'a и потянем. Попытка вытянуть WINE из Ubuntu чревата поломкой системы
  • cборка вручную лишняя, тк PoL позволяет доустанавливать любые версии WINE сам
  • обратите внимание, что wine.list после установки wine нужно заблокировать, иначе сломаете всю систему 

открываем терминал, и пишем:
sudo su [вводим пароль]
mkdir -p /etc/apt/sources.list.d 
еcho "deb http://frickelplatz.de/debian sid main contrib non-free" >> /etc/apt/sources.list.d/wine.list 
[теперь нужно обновить репы и установить wine]
[ни в коем разе ничего более не устанавливайте!]
apt-get update 

[проконтроллируйте, чтобы тянулся только wine, без кучи зависимостей или ошибок]
apt-get install --dry-run wine 

[и если все хорошо]
apt-get install wine 

теперь, важно, нужно заблокировать wine.list, так как это раздел debian sid, и он может поломать систему. Разблокируйте, если wine нужно будет переустановить.
nano /etc/apt/sources.list.d/wine.list
[поставьте перед строкой #, это закомментирует строчку]
#deb http://frickelplatz.de/debian sid main contrib non-free 
[Ctrl-O,Ctrl-X] 
 apt-get update

Шаг 2. Устанавливаем PlayOnLinux 

PlayOnLinux способен обновлять себя, а также подключать дальнейшие версии WINE
echo "deb http://deb.playonlinux.com/ squeeze main" >> /etc/apt/sources.list.d/playonlinux.list 
apt-get update 
apt-get install playonlinux

Шаг 3. Правим шероховатости самого Linux Mint Debian 64. Проблема с lib32asound2-plugins

Зачем нужен этот плагин? 
Lib32asound2-plugins - предоставляет несколько связок для ALSA, позволяя ALSA переадресовывать вывод в том числе и на PulseAudio.Приложение, нагло пытающееся захватить ALSA (здесь - wine) в этом случае будет отправлено в PulseAudio, где оно встанет в очередь и будет "промешано" как и все остальные потоки.

Почему Lib32, а не просто libasound2-plugins
libasound2-plugins уже есть в системе, однако непригоден для 32битных приложений. В данном случае - wine. Это 64битная библиотека.Если нам нужен звук от 32битных приложений в 64битной среде, то нужен дубликат в 32битном коде, который будет связывать 32битные вызовы на 64битный PulseAudio. Если такого дубликата не будет, то не будет и звука. Или не будет перевода и wine полезет в наглую на ALSA.

Инструкции касательного нового 1.0.25 и почему его не ставить.

ВНИМАНИЕ: Начиная с недавнего релиза 1.0.25, lib32asound2 и lib32asound2-plugins были исключены из релиза и поставляются по другому. Смотри тут

теоретически, для установки должно хватать:
dpkg --add-architecture i386
apt-get update
apt-get install --no-install-recommends libasound2-plugins:i386

НО
в этот момент Debian переходит на новую реализацию multilib - возможности адресовать и запускать одну архитектуру из другой. К примеру i386 вызывать x64. И все упирается  в то, что Linux Mint взял не полноценный срез. При ручном разжовывании придется вручную выкачивать и устанавливать отдельно:
libopenjpeg2:i386 из SID (testing), так как она не была захвачена еще.

Но дальше все упирается в:
libcap2 - эта библиотека убрана из x64 в SID и доступна в SID только в i386 исполнении, плюс в новой версии добавили поддержку multiarch. Однако версия, которая еще присуствует в testing (и в срезе Linux Mint Debian Edition) не знает multiarch, доступна в x64 и i386 раздельно. И против нее выстроено 99% приложений.

При попытке:
apt-get install --dry-run libasound2-plugins:i386  libavcodec53:i386 libpulse0:i386 libcap2:i386
apt-get пытается удалить 99% всех пакетов в системе.... и фактически перевести систему на х86. Оно и понятно, у него нет выхода. Брать же версию libcap2 из SID бесполезно, так как в этом случае будет выставлен ультиматум:

Пакеты, имеющие неудовлетворённые зависимости:
 libcap2 : Конфликтует: libcap2:i386 но 1:2.22-1 будет установлен
 libcap2:i386 : Конфликтует: libcap2 но 1:2.22-1 будет установлен
E: Ошибка, pkgProblemResolver::Resolve сгенерировал повреждённые пакеты. Это может быть вызвано отложенными (held) пакетами.


Брать новую SIDовскую версию бесполезно! Так как в этом случае затребуются все 99% пакетов SID системы!

Вывод: инженеры Linux Mint Debian Edition допустили очередной ляп, пропустив asound2 версии 1.0.25.
Цепная реакция заставляет переставлять всю систему на новый подход multiarch, который в свою очередь, не полностью перенесен в срезе взятом Linux Mint Debian Edition.

Решение - откатиться на libasound2 версии 1.0.23 (имеется ввиду все - и libasound2 и libasound2-plugin, и 32битной и 64битной версии) и ждать лучших времен. Откат производится ручной выкачкой следующих файлов версии 1.0.23 (сейчас это stable):
lib32asound2_1.0.23-2.1_amd64.deb
lib32asound2-plugins_1.0.23-1+b1_amd64.deb
libasound2_1.0.23-2.1_amd64.deb
libasound2-plugins_1.0.23-1+b1_amd64.deb


Затем, нужно удалить все версии библиотек установленных ранее (если установлены): libopenjpeg2 и libcap2:i386.

Произвести автопочинку системы:
apt-get install -f --dry-run
скорее всего будет затянут обратно ia32-libs, то есть возврат на старую модель multlib. Опцию --dry-run убрать, если довольны результатом.

Форсировано установить библиотеки:
dpkg --force-conflicts --dry-run -i libasound2_1.0.23-2.1_amd64.deb libasound2-plugins_1.0.23-1+b1_amd64.deb lib32asound2_1.0.23-2.1_amd64.deb
lib32asound2-plugins_1.0.23-1+b1_amd64.deb
опять же, уберите --dry-run, если он не "выносит пол системы", а действует разумно. Звук должен опять появится, как и соответствующий вывод в pavucontrol для wine при воспроизведении.

Инструкция касательно более старого релиза - 1.0.23 и подходит также при возврате на него, "покуда погода не посветлеет".

apt-get install lib32asound2
Скачаем вручную lib32asound2-plugins (версии 1.0.23) Она, по неясным причинам, отстутствует в репах LMDE64. Для тех кто в замешательстве, да LMDE имеет собственные репы, а не дебиановские. Можно сходить по ниже описанному адресу вручную и проверить наличие последней версии. Интересует - lib32asound-plugins, причем именно под 64битную архитектуру.

cd /tmp wget http://ftp.us.debian.org/debian/pool/main/a/alsa-plugins/lib32asound2-plugins_1.0.23-1+b1_amd64.deb 
dpkg -i lib32asound2-plugins_1.0.23-1+b1_amd64.deb 

Все должно встать без конфликтов.

Шаг 4. Доисправим интеграцию ALSA и PulseAudio

поправим конфиги:
nano /etc/asound.conf

приведите к этой форме:
pcm.pulse {
    type pulse
}
ctl.pulse {
    type pulse
}
pcm.!default {
    type pulse
}
ctl.!default {
    type pulse
}
 Есть еще один вариант, использующий dmix - для случаев когда есть приложения, конфликующие с PulseAudio. Вот он:
pcm.paul {
    type dmix
    ipc_key 1024
    slave {
        pcm "hw:0,0"  
        period_time 0
        period_size 1024
        buffer_size 8192
       #format "S32_LE"
       #periods 128
        rate 44100
    }
}
pcm.dsp0 {
    type plug
    slave.pcm "paul"
}
pcm.dsp1 {
    type plug
    slave.pcm "pulse"
}
ctl.mixer0 {
    type hw
    card 0
}
pcm.pulse {
    type pulse
}
ctl.pulse {
    type pulse
}
pcm.!default {
    type pulse
}
ctl.!default {
    type pulse
}
[Ctrl-O, Ctrl-X] 

Скопируйте этот файл заместо устаревшего:
cp /etc/asound.conf /usr/share/alsa/pulse-alsa.conf 

Теперь, перегрузите ALSA:
/etc/init.d/alsa-util restart 
 вывод не должен содержать ошибок.

Запустив настройки, если Вы все сделали правильно, то внутри конфигурации wine для вывода будет доступно поле "out:default".

Его и стоит выбрать для вывода.

Запустив параллельно pavucontrol можно убедится, что звук WINE выводит через ALSA канал для Pulse.










Все, успехов!

Комментариев нет:

Отправить комментарий