Як запустити програми windows на linux

Рано чи пізно може знадобитися запустити програми Windows на Linux. Для операційної системи Linux написана величезна кількість програм, для вирішення однієї певної задачі, може бути навіть кілька десятків програм. Але така тенденція спостерігається тільки для широко поширених завдань, що ж стосується спеціалізованих програм та ігор, то тут ситуація зовсім інша. Програм, для вирішення вузькоспеціалізованих завдань, наприклад, в тій же сфері СЕО для Linux просто немає, а гри почали з`являтися тільки останні кілька років.

Були і раніше простенькі ігри з відкритим вихідним кодом, але популярні ігри, класу ААА почали з`являтися тільки тоді, коли цією платформою зацікавилася Valve. Але до сих пір ситуація з іграми йде не так, як хотілося б. Тому і виникає необхідність установки Windows програм в Linux.

трохи теорії

Windows програми не можуть запускатися просто подвійним клацанням по виконуваного файлу. Формат виконуваних файлів Linux дуже сильно відрізняється від Windows. Тому для їх запуску необхідно використовувати спеціальне програмне забезпечення - wine. Назва Wine утворено за допомогою, чомусь популярного в світі вільного програмного забезпечення способу - рекурсивний акронім, і розшифровується як Wine is not emultor. І це правда, wine не є емулятором.

Відео: Wine. Запуск Windows додатків в Linux

Це програмна оболонка, яка перетворює системні виклики Windows програм в виклики функцій операційної системи Linux. Таким чином, wine вдає із себе прошарок між Windows програмою і операційною системою Linux разом з її ядром і бібліотеками.

Щоб зрозуміти як працює Wine, потрібно спочатку сказати кілька слів про ядрі Windows. У Windows, так само як і у Linux є ядро. Як ви знаєте ядро ​​Linux складається з одного файлу і знаходиться в папці boot. Ядро Windows зовсім інше, по суті це набір dll бібліотек, які розташовані в папці C: windows system32. Тому нам, щоб змусити Windows програми працювати в Linux досить реалізувати dll бібліотеки, які потрібні програмі, так щоб вони викликали необхідні нам функції з системи linux, що власне і робить Wine. Але проект розвивається дуже повільно і розробники не встигають реалізувати всі функції з системних бібліотек Windows, тому працюють далеко не всі програми, особливо нові.

Популярні програми в Wine запускаються легко, і без додаткових налаштувань. Але справа в тому, що для вирішення популярних і затребуваних завдань в Linux є досить альтернатив, а запускати нам доведеться спеціалізовані програми та ігри, що вимагають серйозних компонентів, ще не написаних в Wine. Ось тут і спливає недоработанность цієї програми. Але є вихід, його ми і розглянемо далі.

Основи використання Wine

Всі файли програм wine, встановлені програми, бібліотеки, файли реєстру, конфігураційні файли знаходяться в домашньому каталозі, а точніше, в ~ / .wine.




Оскільки для різних програм, знадобиться різна архітектура бібліотек і потрібно буде підміняти на оригінальні бібліотеки від windows різні файли була придумана така можливість, як префікси.

Папка ~ / .wine це префікс, але ми можемо створювати для кожної нової програми свій префікс і вона буде працювати тільки з ним. Щоб задати префікс, з яким потрібно працювати wine використовується змінна оточення WINEPREFIX, наприклад:

$ Export WINEARCH = win32

Також не створюйте папку для нового префікса за допомогою mkdir або файлового менеджера, нехай програма сама створить цю папку при своєму першому запуску.

Установка Windows програм в Wine




Якщо вам потрібно запустити програму, повністю підтримувану Wine, наприклад, провідник або notepad, досить виконати:

Відео: Відео # 32. Запуск Windows-програм на Linux

$ Wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
$ Chmod + x winetricks

Щоб встановити потрібний компонент досить передати ім`я цього компонента:

$ Winetriks riched30

Після установки цього пакета програма запуститися і буде працювати.

Але залишається питання, що ж робити, якщо інструкцій немає, інформації мінімум, а потрібно щоб програма працювала. Ми можемо аналізувати висновок Wine при запуску програми. Причому нас будуть цікавити не всі повідомлення з логу програми, а тільки останні, саме те що викликало помилку.

Розглянемо на прикладі тієї ж Advego Plagiatus. Спочатку створимо новий префікс, щоб не зіпсувати те що вже було встановлено:

$ Export WINEARCH = ~ / win64

Далі запускаємо програму і останнє що ми побачимо в балці перед дампом змінних ядра це:


fixme: richedit: ITextRange_fnEndOf (0xa04410) -> (6 0 (nil)): stub
fixme: richedit: ITextRange_fnEndOf (0xa04410) -> (6 0 (nil)): stub

Залишилося зрозуміти, що таке richedit, і Microsoft TechNet нам люб`язно повідомляє що це їх API і складається воно з Riched32.dll, це остання версія, але раніше це була riched20.dll, вже розумієте які бібліотеки потрібні?

Відео: Як запустити Windows програми в Linux

Ми знаємо як їх встановити за допомогою winetricks, але це робити необов`язково, можна і вручну. Скачайте бібліотеки, знайти їх не складе труднощів за допомогою Google. Тільки шукайте версію для Windows XP.

Копіюємо бібліотеку в наш префікс, в папку syswow64:

$ Cp ~ / Завантаження / riched32.dll ~ / advego / drive_c / windows / syswow64 / wine ~ / advego / drive_c / Program Files (x86 ) / Advego Plagiatus / plagiatus.exe

Тепер програма працює і більше не падає з помилкою. Таким чином, ви можете замінити багато бібліотек Wine. Можна запустити практично будь-яку програму, написану кілька років тому і яка потребує понад нових технологій. Досить тільки замінити потрібні бібліотеки. Ви можете не тільки використовувати winetricks або копіювати бібліотеки з інтернету, але і брати їх прямо з Windows. Точно не варто замінювати gdi32.dll, kernel32.dll, і user32.dll - ці бібліотеки реалізують функції ядра Windows на найнижчому рівні, і якщо їх замінити, це тільки порушить роботу Wine. Напевно, є й інші бібліотеки, які не можна замінювати, але це обчислюється тільки шляхом експериментів. Експериментуйте і нехай ваші програми працюють без помилок!

Поділися в соціальних мережах:

Схожі
Програми для запису образу на флешку linuxПрограми для запису образу на флешку linux
Lame - linux administration made easyLame - linux administration made easy
Автозавантаження в linux mint 17Автозавантаження в linux mint 17
Кращі програми для запису відео з екрану linuxКращі програми для запису відео з екрану linux
Кращі відеоредактори для linuxКращі відеоредактори для linux
Чим відрізняється unix від linuxЧим відрізняється unix від linux
9 Причин змінити windows 10 на linux9 Причин змінити windows 10 на linux
Opera для linuxOpera для linux
Chakra linux отримала kde plasma 5.7.3 і firefox 48Chakra linux отримала kde plasma 5.7.3 і firefox 48
Установка програм через wine - winewizardУстановка програм через wine - winewizard
» » Як запустити програми windows на linux