Як запустити програми 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:
Тепер програма працює і більше не падає з помилкою. Таким чином, ви можете замінити багато бібліотек Wine. Можна запустити практично будь-яку програму, написану кілька років тому і яка потребує понад нових технологій. Досить тільки замінити потрібні бібліотеки. Ви можете не тільки використовувати winetricks або копіювати бібліотеки з інтернету, але і брати їх прямо з Windows. Точно не варто замінювати gdi32.dll, kernel32.dll, і user32.dll - ці бібліотеки реалізують функції ядра Windows на найнижчому рівні, і якщо їх замінити, це тільки порушить роботу Wine. Напевно, є й інші бібліотеки, які не можна замінювати, але це обчислюється тільки шляхом експериментів. Експериментуйте і нехай ваші програми працюють без помилок!
- Установка програм через wine - winewizard
- Куди встановлюються програми в ubuntu
- Продуктивність ігор linux vs wine vs windows
- 9 Причин змінити windows 10 на linux
- Мтчелл м. - програмування для linux. Професійний підхід
- Ігри в linux. Все що вам потрібно знати
- Програми для запису образу на флешку linux
- Запуск android-додатків linux за допомогою sahshlik
- Кращі програми для запису відео з екрану linux
- Кращі відеоредактори для linux
- Чим відрізняється unix від linux
- Як дізнатися версію linux mint
- Установка rpm пакетів в linux
- Установка steam в ubuntu 16.04
- Оновлення драйверів ubuntu
- Порівняння linux і bsd
- Chakra linux отримала kde plasma 5.7.3 і firefox 48
- Microsoft збирається відкрити вихідний код powershell
- Lame - linux administration made easy
- Автозавантаження в linux mint 17
- Opera для linux