Blog (3)
Komentarze (191)
Recenzje (0)

Linux w winie: przepis na aplikacje windowsowe pod Linuksem

@vriesLinux w winie: przepis na aplikacje windowsowe pod Linuksem 24.07.2020 11:20

Po napisaniu artykułu o stawaniu dość nietypowego NASa spotkałem się z opiniami, że Windowsowe aplikacje należy odpalać pod Windowsem i nie należy wiązać nadziei na uruchamianie ich w środowisku Linuksowym. Niby logiczne, ale moim zdaniem nie jest to do końca prawda. W tym artykule podstawiam się zatem przybliżyć jak obsługiwać Wine i jak uruchamiać aplikacje Windowsowe pod Linuksem.

Logo Wine
Logo Wine

Wine: o co chodzi?

Wypadało by powiedzieć o co chodzi w ogóle z tym Wine (akronim rekurencyjny od ang. Wine is not an emulator, tłumaczony oczywiście jako wino). Jest to warstwa kompatybilności, której zadaniem jest uruchamianie programów windowsowych w środowisku Linuksa. Jak to działa? Teoretycznie wystarczyć powinno podwójne kliknięcie na aplikacji windowsowej i wszystko powinno się uruchomić tak jak na Windowsie. Łatwe? Łatwe. Niestety nie zawsze będzie tak cudownie.

Co zatem taki Wine robi, żeby zaczęło działać? Tworzy sztuczne środowisko uruchomieniowe dla aplikacji Windowsa (domyślnie w podkatalogu .wine w folderze użytkownika). Ścieżka do tego katalogu nazywa się Prefiksem Wine.  Czasami jednak wolimy ustalić własny prefix. Jak to zrobić? WINEPREFIX=<nazwa katalogu> wine <ścieżka do pliku .exe> Jeżeli z tego prefiksu będziemy chcieli korzystać to będziemy odpalać z nim również wszystkie aplikacje konfiguracyjne i skrypty. No dobrze, a co, jeśli coś się nie uruchamia? Zacznijmy od tego, że Wine posiada swój program konfiguracyjny winecfg. Możemy ustawiać tam właściwości graficzne aplikacji (np. sztuczny ekran o określonej wielkości), ustawienia dźwięku, montować linuksowe katalogi pod windowsowe literki określające dysk. Możemy też wybierać wersję systemu Windows, którą Wine będzie udawać lub określić czy nie zastąpić biblioteki wbudowanej zamkniętym odpowiednikiem windowsowym. Cóż niestety nie zawsze to co wychodzi z projektu open source działa jak należy. Jak to robimy?

winecfg - wizualnie cudowne jak Windows 98
winecfg - wizualnie cudowne jak Windows 98

Winetricks

Zabawę w podmienianie bibliotek niby można wykonywać ręcznie, ale w rzeczywistości nikt tego nie robi. Od tego jest dodatkowy skrypt winetricks, który trzeba sobie najczęściej doinstalować osobno. Ten pozwala min. na instalacja bibliotek czy czcionek, ale również daje łatwy dostęp do narzędzi takich winecfg, edytora rejestru, explorera, konsoli cmd czy powłoki pozwalającej odinstalować pogramy. Czynności za jego pomocą można wykonywać z linii poleceń, jak również za pomocą graficznego kreatora. No dobrze, samo podmienianie bibliotek nie wydaje się jakoś szczególnie trudne, gdy można to sobie wyklikać w winetricks. Ale skąd mamy widzieć co podmienić, by działało? Tu z pomocą przychodzi szeroka biblioteka gier i programów WineDB, w której opisane są sposoby ich instalacji i uruchamiania aplikacji i oceniane jest na ile działają one z Wine. Czasami jednak opisu nie ma i trzeba będzie patrzeć w konsolę, szukać wyświetlanych tam błędów aplikacji i wydedukować jakoś rozwiązanie. Nawet jeśli nam się już uda coś odpalić, nie zawsze jest tak różowo, jeśli chodzi o stabilność i wydajność.

Ano właśnie, wydajność...

Tu czasami będziemy mieli wydajność porównywalną z tą z Windowsową, a czasami koszmarnego żółwika. Jeśli chodzi o gry i aplikacje graficzne dochodzą nam dodatkowe biblioteki, które pozwalają nam na przyspieszenia pracy programów korzystających z akceleracji 3d. Dla AMD jest to min. Gallium Nine. Jest to biblioteka przeznaczona do emulacji DirectX 9, z którą podobno jest mniej problemów niż z standardową wbudowaną wersją. Ma też lepsza wydajność. Problemem jest, że Gallium Nine nie jest domyślnie obsługiwane przez Wine i trzeba dysponować specjalną kompilacją Wine. Bardziej uniwersalny jest projekt DXVK. Jest to implementacja DirectX od wersji 9 po 11 korzystająca z biblioteki Vulkan. Vulkan jest biblioteką dość niskopoziomową, a przez to szybką i wydajną, więc jego wykorzystanie powinno znacząco zwiększyć wydajność samego Wine. Niektóre gry wymagają tej implementacji do prawidłowego działania, inne jej nie obsługują. Analogicznie sprawa wygląda z Vkd3d, które implementuje (częściowo) biblioteki Direct3D 12.

W skrajnych przypadkach te nowe biblioteki, w połączeniu z Wine, dadzą wydajność porównywalną lub nawet wyższą niż w Windowsie.

No i wróćmy do prefiksów Wine. Jak sobie wszystko pozastępujemy, to często trudno coś takiego odkręcić. Tym samym dobrze jest dla aplikacji niepowiązanych ze sobą korzystać z osobnych prefiksów.

W ten oto sposób, dowiedzieliśmy się, że Wine nie jest takie proste w obsłudze. Da się coś tym zrobić? Po części tak. Mamy nakładki graficzne pomagające zarządzać nam aplikacjami Wine. Przedstawię tutaj obecnie najpopularniejszą: Lutris.

Lutris

Lutris w założeniach jest programem agregującym gry na Linuksie. Obsługuje produkcje natywne, emulowane i te odpalane przez Steam czy GOG. Niezależnie od tego jest bardzo fajnym narzędziem do zarządzania aplikacjami uruchamianymi poprzez Wine. Niestety nie jest to aplikacja wielojęzyczna i jej interfejs jest tylko po angielsku. Jakie są podstawowe założenia programu? Lutris posiada stronę z bazą gier. Jeśli mamy szczęście znajdziemy tam tytuł, który chcemy zainstalować. Klikniemy w specjalny link i przygotowany przez twórców skrypt zainstaluje grę za nas. Jeśli mam mniej szczęścia, to nic nie znajdziemy. W wypadku jeszcze większego pecha, tytuł będzie w bazie, ale nie będzie chciał się zainstalować lub nie będzie działać. Co wtedy? Można skorzystać z Lutrisa, by zainstalować aplikację ręcznie. Możemy skorzystać z naszego Wine zainstalowane w systemie, albo dociągnąć dodatkową wersję zarządzając programami uruchomieniowymi (runners). Niezależnie od wszystkiego powinniśmy mieć jednak Wine zainstalowane w systemie, ponieważ jego zależności będą potrzebne dla instalacji i uruchamiania programu. Środowisko graficzne daje możliwość dodania aplikacji i stworzenia jej konfiguracji od zera. Można ustawić prefix, plik instalacyjny/uruchomieniowy, architekturę 32-bitową lub 64-biotwą, użyć DXVK i parę innych mniej lub bardziej przydatnych funkcji. Dla konkretnego środowiska programu możemy uruchomić winetricks czy winecfg. Innymi słowy, GUI daje duże pole do popisu.

Lutris ma zatrzęsienie parametrów do konfiguracji
Lutris ma zatrzęsienie parametrów do konfiguracji

Gry

Jako jeden z największych platform dystrybucji gier, Steam również nie ignoruje Wine jako potencjalnej platformy do odpalania gier pod Linuksem. Na potrzeby projektu stworzył on i rozbudował własnego forka Wine – Proton. Ma ona osobną bazę kompatybilności gier – ProtonDB. Zdarza się nawet, że gry odpalane przez Protona działają lepiej niż natywne linuksowe porty. Sama procedura uruchamiania gier ze Steam jest identyczna jak pod Windowsem, czyli klikami i jest. Rozwój Wine i Protona powoduje, że granie na linuksie nie jest już totalnym wymysłem linuksowego fanatyka, a powoli staje się jakąś tam alternatywą dla systemu Microsoftu. Trzeba tu jednak zwrócić uwagę, że wydajność bywa gorsza niż w Windowsie, nie wszystko działa i zdarzają się irytujące błędy. Często gry sieciowe nie pozwalają na zabawę przez Wine, gdyż ich zabezpieczenia przed oszustami stosującymi modyfikacje, interpretują Wine jako niepożądaną modyfikację systemu. Uruchamiając taką grę można wpakować się nawet w permanentnego bana.

Pod Linuksem interfejs Steam'a jest równie paskudny
Pod Linuksem interfejs Steam'a jest równie paskudny

Kontrowersje

Wine budzi w środowisku linuksowym sporo kontrowersji. Z jednej strony często spełnia swoją funkcję, z drugiej potrafi zawieść pokrywane w nim oczekiwania. Proces instalacji może być bardzo prosty lub stosunkowo skomplikowany. Użytkownik powinien rozumieć czego wymagają od nas twórcy, jeśli chodzi o instalację dodatkowych bibliotek natywnych lub tłumaczących Direct X na inne biblioteki. Do tego wymagane jest jako takie zrozumienie jak to wszystko obsłużyć przy wykorzystaniu Wine. Dla sporej części użytkowników dystrybucji Linuksa nie będzie to najmniejszy problem, lecz dla początkujących może być to coś nie do przeskoczenia i powód frustracji. Nie pomaga duża fragmentacja związana z wykorzystaniem różnych wersji Wine i często nieaktualna lub myląca dokumentacja dotycząca kompatybilności. Jako że DXVK jest projektem rozwijanym poza Wine, to moderatorzy WineDB krzywym okiem patrzą na wskazywanie tej biblioteki jako rozwiązania problemu działania aplikacji. Dodatkowo sam Vulkan, z którego korzysta DXVK, jako biblioteka niskopoziomowa, potrafi negatywnie wpłynąć na stabilność pracy systemu. Różne konfiguracje sprzętowe mogą generować inną wydajność lub nie uruchamiać konkretnych aplikacji. Poza tym aplikacje Wine nie funkcjonują w taki sam sposób co linuksowe odpowiedniki. Instalują się na poziomie użytkownika i musza być instalowane dla każdego użytkownika systemu osobno. (oczywiście można kombinować...). Integracja z aplikacjami linuksowymi też nie zawsze musi działać. Czasami też Lutris nie funkcjonuje jak należy i korzystać z poleceń konsoli. Wszytko to jest frustrujące i wymaga niemałej wiedzy, jak postępować z warstwą kompatybilności.

MtG:Arena akurat działała dobrze, gdy był wykonywany test ze screena
MtG:Arena akurat działała dobrze, gdy był wykonywany test ze screena

Przykład na podstawie gry, którą odpalam regularnie pod Wine: MtG Arena. Gra jest sieciowa i pojawiają się nowe jej wersje. Na początku udało się po niemałych staraniach grę zainstalować i uruchomić: działała ok. Później zaczęła się wieszać, ale sprawę rozwiązało DXVK. Niedawna aktualizacja postanowiła się nie zainstalować, grę trzeba było przeinstalować pod nowym prefiksem. Ostatecznie gra przestała się aktualizować i instalować, ale kopia jeden do jeden z Windowsa działa (tak to jest, jak się zaczęło korzystać z powershella w instalatorze). Jak widać, kolorowo nie jest.

Użytkownik powinien mieć zatem świadomość, że próba przeniesienia wszystkich swoich programów z Windows na Linuksa, jest raczej skazana jest na niepowodzenie i powinien skupić się na natywnych aplikacjach linuksowych, a z Wine korzystać doraźnie.

Z drugiej strony

Osobiście już dobrych 8 lat temu nie stosowałem się do tego zalecenia i używałem Windowsowych aplikacji, o ile te mi bardziej odpowiadały (np. foobara). Nie byłbym jednak skłonny używać warstwy kompatybilności, by odpalać kluczowe aplikacje w środowisku firmowym (niezależnie od ich stabilności!). Osobiście nie uważam jednak, że należy bać się Wine. Trzeba jednak pamiętać, że nawet obecnie nie jest to narzędzie proste i w 100% niezawodne.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.