Проводники windows программ не видят exe файлы на ubuntu

Обновлено: 04.07.2024

Название Wine расшифровывается как Wine Is Not an Emulator. Это своего рода прослойка между приложениями Windows и системой Linux. Он позволяет устанавливать и запускать многие популярные Windows-программы и работать с ними так, как будто это родные приложения Linux.

Чтобы установить Wine, воспользуйтесь соответствующей командой.

1. Ubuntu, Debian, Mint:

sudo dpkg --add-architecture i386

sudo apt-key add Release.key

sudo apt-get update

sudo apt-get install --install-recommends winehq-stable

sudo dnf install winehq-stable

sudo zypper install wine

sudo pacman -S wine

Когда Wine установлен, откройте его через ваше меню приложений или с помощью команды winecfg . При первом запуске Wine может попросить установить некоторые дополнительные пакеты — позвольте ему это сделать. После этого все Windows-программы формата EXE ассоциируются в системе с Wine.

Теперь скачайте установщик нужного вам приложения Windows, найдите папку с ним в вашем файловом менеджере и откройте файл. Либо введите команду wine путь_к_приложению .

Windows-приложение запустится и будет работать так же, как и всегда. Если вы открыли установочный файл, начнётся установка приложения — как в Windows. Если программа не требует установки, вы сможете начать работать с ней немедленно.

Не все приложения могут быть установлены и запущены в Wine, хотя количество поддерживаемых впечатляет. Полный список можно посмотреть здесь.

2. Winetricks

Wine — неплохой инструмент, однако интерфейс у него оставляет желать лучшего. Если вы намучились с этой программой, но так и не добились результата, попробуйте Winetricks. У неё приятный графический интерфейс для установки и запуска Windows-приложений, в котором куда проще разобраться новичку.

Установить Winetricks можно так:

1. Ubuntu, Debian, Mint:

sudo apt-get install winetricks

sudo dnf install winetricks

sudo zypper install winetricks

sudo pacman -S winetricks

Winetricks позволяет установить различные версии Microsoft Office и Photoshop, плеер foobar2000 и множество других программ. Поддерживаются и такие популярные игры, как Call of Duty, Call of Duty 4, Call of Duty 5, Biohazard и Grand Theft Auto: Vice City. Некоторые программы загружаются автоматически, для других будет предложено вставить установочный носитель. И, естественно, вы можете открывать собственноручно скачанные файлы формата EXE.

3. PlayOnLinux

PlayOnLinux — ещё один удобный инструмент для запуска Windows-приложений в Linux. Как и Winetricks, он обладает простым графическим интерфейсом. Но, в отличие от него, PlayOnLinux позволяет вам выбирать конкретную версию Wine для того или иного приложения. Это полезно, если какая-то из нужных вам программ некорректно работает с новыми версиями Wine. В целом PlayOnLinux выглядит куда симпатичнее и практичнее, чем Winetricks.

Чтобы установить PlayOnLinux, выполните в терминале одну из следующих команд:

1. Ubuntu, Debian, Mint:

sudo apt-get install playonlinux

sudo dnf install playonlinux

sudo zypper install playonlinux

sudo pacman -S playonlinux

В меню установки PlayOnLinux можно найти множество предварительно сконфигурированных приложений и игр, которые вы можете загрузить и установить парой щелчков. Кроме того, PlayOnLinux можно скармливать собственные EXE-установщики. Приложение заботливо выберет за вас версию Wine и создаст значок установленной программы на рабочем столе.

4. Crossover

Изредка бесплатные PlayOnLinux и Winetricks не справляются с установкой какого-нибудь особенно привередливого приложения. В таком случае вам может помочь Crossover. Эта программа очень проста в использовании. Вам достаточно указать, какое приложение вы хотите установить, и подсунуть Crossover установочный файл. Всё остальное будет сделано за вас.

Лицензия Crossover на год стоит 39,95 доллара, но у программы есть и бесплатная пробная версия. Рекомендуется сначала установить необходимое вам приложение в ней, чтобы убедиться, что оно работает корректно.

5. VirtualBox

Если ваше приложение упорно отказывается запускаться в перечисленных выше программах, можно пойти на решительные меры и установить его в виртуальной машине. Учтите, что она отнимает гораздо больше системных ресурсов, поэтому использовать её стоит в крайних случаях.

Для запуска приложения в виртуалке вам понадобится установочный образ Windows в формате ISO. Загрузите и установите VirtualBox, создайте в нём виртуальную машину, укажите ей ISO с Windows, а затем просто установите систему как обычно.

Неоспоримый плюс виртуальной машины — в ней работает полноценная операционная система, а значит, запустится абсолютно всё. Минус — прожорливость в плане системных ресурсов, да и тратиться на лицензию Windows для виртуалки накладно.

Рано или поздно может понадобиться запустить программы Windows на Linux. Для операционной системы Linux написано огромное количество программ, для решения одной определенной задачи, может быть даже несколько десятков программ. Но такая тенденция наблюдается только для широко распространенных задач, что же касается специализированных программ и игр, то тут ситуация совсем иная.

Программ, для решения узкоспециализированных задач, например, в той же сфере СЕО для Linux попросту нет, а игры начали появляться только последние несколько лет. Были и раньше простенькие игры с открытым исходным кодом, но популярные игры, класса ААА начали появляться только тогда, когда этой платформой заинтересовалась Valve. Но до сих пор ситуация с играми обстоит не так, как хотелось бы. Поэтому и возникает необходимость установки Windows программ в Linux.

Немного теории

Windows программы не могут запускаться просто двойным щелчком по исполняемому файлу. Формат исполняемых файлов Linux очень сильно отличается от Windows. Поэтому для их запуска необходимо использовать специальное программное обеспечение - wine. Название Wine образовано с помощью, почему-то популярного в мире свободного программного обеспечения способа - рекурсивный акроним, и расшифровывается как Wine is not emultor. И это правда, wine не является эмулятором.

Это программная оболочка, которая преобразует системные вызовы 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, установленные программы, библиотеки, файлы реестра, конфигурационные файлы находятся в домашнем каталоге, а точнее, в

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

/.wine это префикс, но мы можем создавать для каждой новой программы свой префикс и она будет работать только с ним. Чтобы задать префикс, с которым нужно работать wine используется переменная окружения WINEPREFIX, например:

Для разных программ может потребоваться различная архитектура системы, wine может запускать и 64 битные программы, но многим для правильной работы нужна архитектура х86.

Чтобы задать архитектуру используйте переменную WINEARCH. Например, для х86:

Также не создавайте папку для нового префикса с помощью mkdir или файлового менеджера, пусть программа сама создаст эту папку при своем первом запуске.


Запуск exe программ в Linux с помощью wine


На странице программы есть версия Wine, с которой она была протестирована, версия тестируемой программы, а также оценка. Оценка может быть Platinum, Gold, Silver или ниже, она зависит от того насколько хорошо программа работает:


Как видите, программа тестировалась с версией wine 5.0 и работала довольно неплохо. К тому же на странице есть ссылка на загрузку программы, так как она бесплатна. Если при запуске программы возникают сложности, то на странице winehq обычно сообщается что надо сделать чтобы программу всё-таки запустить.

Если вам нужно запустить программу, полностью поддерживаемую Wine, например, проводник или notepad, достаточно выполнить:

$ wine /адрес/файла/программы.exe

Например, для программы Notepad++ надо выполнить:

Здесь я использую portable версию, её надо перед этим скачать и распаковать. Как видите, программа полностью работает:

Но как я уже говорил, нам придется запускать мало таких программ, большинство из них будут требовать функциональности, которая ещё не реализован в wine. Тогда нам придется заменить библиотеки Wine, на оригинальные библиотеки Windows.

Конечно, есть оболочки для Wine, которые автоматизируют этот процесс, например, Crossover, PlayOnLinux, Lutris и другие. Но мы рассмотрим ручной вариант.

Для установки компонентов Windows в wine существует специальный инструмент - winetricks. Устанавливать его лучше из сайта программы, так версия будет новее:

Чтобы установить нужный компонент достаточно передать имя этого компонента:

$ winetricks имя_компонента

На её странице сообщается, что программа работает, но для её работы надо установить компонент msxml и urlmon:

winetricks msxml6 urlmon

После установки этих пакетов программа надо добавить ключ в реестр, который описан на странице winehq. После этого установщик запуститься и установит программу.

После установки вы можете её запустить:


Выглядит всё не очень, но зато работает. Инструкции не обязательно искать только на winehq, это могут быть различные форумы, блоги и так далее.

fixme:richedit:ITextRange_fnEndOf (0xa04410)->(6 0 (nil)): stub
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, уже понимаете какие библиотеки нужны?

Их можно установить с помощью winetricks, но это делать необязательно, можно и вручную. Скачайте библиотеки, найти их не составит труда с помощью Google. Только ищите версию для Windows XP.

Копируем библиотеку в наш префикс, в папку system32:

Для 64 битных библиотек используется папка syswow64, а поскольку мы указали архитектуру 32 бит нужно и библиотеки использовать соответствующие. Затем запустите winecfg и на вкладке библиотеки, в поле новое замещение для библиотеки наберите *riched32, затем добавить и *riched20 и опять добавить:


Все, теперь можете пробовать запускать программу. Если программа снова падает с ошибкой, смотрите дальше логи и ищите библиотеки, которых ей не хватает.

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

Упрощённая установка exe в Linux

Вариант, который мы рассмотрели выше слишком сложный и не очень то подходит для новичков. Специально для таких ситуаций были придуманы различные программные решения вроде PlayOnLinux или CrossOver. Это оболочки над wine, которые уже знают какие библиотеки надо ставить для той или иной программы. Вы просто выбираете программу, выбираете установщик, а дальше программа сделает всё за вас сама.

Утилита Crossover поддерживает множество программ и работают они довольно неплохо, но единственный минус этой программы в том, что она платная. Программа PlayOnLinux бесплатная, но поддерживает намного меньше программ.

Запуск Windows программ в виртуальной машине

Если ни один из перечисленных выше способов вам не помог, осталось только последнее решение. Оно поможет, при условии, что у вас мощный компьютер. Вы можете установить виртуальную машину VirtualBox, затем установить туда Windows и уже там запускать вашу программу. Можно пойти ещё дальше и сделать из старого компьютера сервер, на котором будет запущена Windows, к которой вы сможете подключаться по VNC или RDP и делать там всё, что угодно. Это не совсем способы запуска exe в Linux, однако это решение будет работать почти всегда, где не будет работать wine.

Выводы

Теперь вы знаете как запустить exe на Linux. Не пренебрегайте инструментами упрощения установки вроде PlayOnLinux. Они очень сильно экономят ваше время, так как имеют уже готовые профили для многих программ. Экспериментируйте и пусть ваши программы работают без ошибок!

Решено: Почему в дистрибутивах линукса нет поддержки exe-файлов?

Любые разговоры которые хоть как-то связаны с тематикой форума

Решено: Почему в дистрибутивах линукса нет поддержки exe-файлов?

Собственно, вопрос в названии. Ведь если линукс будет поддерживать windows api или как там это называется, дистрибутивы линукса станут самыми распространнеными и винда благополучно сыграет в ящик. Знакомый программист, тоже линуксоид, сказал, что разработчики линукса не могут это использовать, т.к. это нарушение авторских прав билла гейтса и продукта его жизнедеятельности. Но ведь вайн открывает программы для виндовса, и это не эмулятор (само слово рекурсивный акроним - Wine Is Not Emulator), и что разработчики вайна купили лицензию на это? Объясните пожалуйста ламеру, почему в дистрибутивах линукса нет поддержки exe-файлов? Собственно, вопрос в названии. Ведь если линукс будет поддерживать windows api или как там это называется, дистрибутивы линукса станут самыми распространнеными и винда благополучно сыграет в ящик. Объясните пожалуйста ламеру, почему в дистрибутивах линукса нет поддержки exe-файлов?

P.S. При ответе стоит иметь в виду, что задачи вроде "заставить винду сыграть в ящик" или "сделать дистрибутивы линукса самыми распространенными" для подавляющего большинства Linux-разработчиков интереса не представляют.

Собственно, вопрос в названии. Ведь если линукс будет поддерживать windows api или как там это называется, дистрибутивы линукса станут самыми распространнеными и винда благополучно сыграет в ящик.

не до конца понятен вопрос. вроде как wine -- это есть и альтернативная реализация winapi. что значит "поддерживать exe-файлы"? под вайном их запустить можно -- другое дело, как они будут работать. если будут вообще. даже можно сделать привязку, например, в mc, чтобы они по одному энтеру запускались, если неохота каждый раз wine писать.

Знакомый программист, тоже линуксоид, сказал, что разработчики линукса не могут это использовать, т.к. это нарушение авторских прав билла гейтса и продукта его жизнедеятельности. Но ведь вайн открывает программы для линукса, и это не эмулятор (само слово рекурсивный акроним - Wine Is Not Emulator), и что разработчики вайна купили лицензию на это? Объясните пожалуйста ламеру, почему в дистрибутивах линукса нет поддержки exe-файлов?

поясните, что вы понимаете под продуктом жизнидеятельности билла гейтса?) лицензий они никаких не покупали, у них GNU LGPL.

Что значит "поддерживать" ?

windows api или как там это называется,

Что " это " ?
Вы сами не знаете о чем спрашиваете ?

дистрибутивы линукса станут самыми распространнеными

Что значит "самычми распространенными" ?
По сравнению с кем они будут "самыми" ?
Кому и зачем это вообще нужно ?

Кому и зачем это нужно ?
Она Вам жить мешает ?
Вы фанатик ?

Что значит "тоже" ? А кто еще "линуксоид" ? Вы ?

сказал, что разработчики линукса не могут это использовать,

Что " это " они "не могут использовать" ?

Авторских прав на ЧТО ?
Вы сами пониаете смысл того, что пишете ?

Вы имеете в виду пот, выдыхаемый углекислый газ и отпадающие волосы ?
Или что другое ?

Объясните пожалуйста ламеру, почему в дистрибутивах линукса нет поддержки exe-файлов? Это невозможно объяснить ламеру.
В моем линуксе exe-файлы прекрасно запускаются.
Вот этот текст написан в редакторе notepad.exe и скопирован в окошко браузера.

тогда уже добавить к этой теме вопрос "А почему в линуксе нету Program Files?", раздуть 10 страниц флейма и в юмор

зы. да, Вы, я смотрю, уже начали))

тогда уже добавить к этой теме вопрос "А почему в линуксе нету Program Files?", раздуть 10 страниц флейма и в юмор к чему стремятся разработчики линукса? к тому чтобы ПО было бесплатно, доступно всем, чтобы его могли изменять под свои нужды. ладно, немножко пересформулирую вопрос. почему разработчики линукса, всегда стремящийся улучшить свой продукт частыми обновлениями и т.д., не позволят пользователям легко открывать exe-файлы, без вайна и прочего? Пятничная какая-то темка раньше времени только. Имхо. :girl_blum: не позволят пользователям легко открывать exe-файлы, без вайна и прочего?

Вы просто не понимаете сути проблемы
что значит без wine?
exe файлы бывают разные. они бывают и под DOS и под windows. Если этот exe под виндос, то он использует для общения с операционной системой winAPI. wine - это открытая реализация winAPI для unix систем.
Linux - это операционная система построеная по другим стандартам и правилам, там исполняемые программы взаимодействуют с ядром через другой интерфейс.
Создатели Linux не собирались писать замены винды. Они собирались разрабатывать открытую реализацию Unix!
Если Вы хотите получить открытую реализацию Windows - то вам нужен ReactOS

PS если Вам нужен Линукс, в котором разработчики хотят добиться максимальной совместимости с виндой, то можно глянуть Linspire ( но там все равно будет wine. может конечно он будет чуть лучше спрятан. типа все файлы имя которых кончается на .exe будут ассоциированный с программой wine по умолчанию. И при клике на porg_name.exe будет сразу запускаться wine porg_name.exe )
Где то еще кажется видел проект в котором wine пытались интегрировать с ядром. Кажется хотели сделать что бы при системном вызове execpv(wine porg_name.exe. ) , автоматически при необходимости запускался wine porg_name.exe

Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.

installing cbl mariner in virtualbox

Пользователи, недавно перешедшие с Windows на Linux, часто задаются вопросом, можно ли запускать приложения и программы Windows на новой системе. Ответ на этот вопрос влияет на представление пользователя о Linux в целом, поскольку операционные системы должны быть простыми в использовании и в то же время доброжелательными к идее работы с файлами различных форматов.

К концу статьи вы получите краткое представление об исполняемых файлах, а также о различных способах запуска этих программ в Linux.

Исполняемые файлы в Windows и Linux

В отличие от других типов файлов (текстовых файлов или PDF), исполняемый файл не читается компьютером. Вместо этого система компилирует такие файлы, а затем выполняет соответствующие инструкции.

Некоторые распространенные форматы исполняемых файлов включают:

  • EXE, BIN и COM в Microsoft Windows
  • DMG и APP на macOS
  • OUT и AppImage в Linux

Внутренние различия в операционных системах (в основном системные вызовы и доступ к файлам) являются причиной того, что ОС не поддерживает все доступные форматы исполняемых файлов. Но пользователи Linux могут легко решить эту проблему, используя либо программное обеспечение уровня совместимости, такое как Wine, либо гипервизор виртуальных машин, такой как VirtualBox.

Способы запуска программ Windows в Linux

Использование уровня совместимости

Уровни совместимости Windows могут помочь пользователям Linux запускать файлы EXE в своей системе. Wine, сокращение от Wine Is Not an Emulator, является популярным слоем совместимости Windows, который соответствует своему названию.

В отличие от эмуляторов и виртуальных машин, Wine не запускает программу в Windows-подобной среде, созданной в системе Linux. Вместо этого он просто преобразует системные вызовы Windows в эквивалентные им команды POSIX.

Прочтите: Выпущен Ubuntu Web Remix 20.04.3 с поддержкой WayDroid и ядром Linux 5.11

В целом, уровни совместимости, такие как Wine, отвечают за преобразование системных вызовов, реформирование структуры каталогов и предоставление программе системных библиотек, специфичных для ОС.

Установка и использование Wine для запуска Windows-программ в Linux очень просты. После установки вы можете выполнить следующую команду для запуска EXE-файла с помощью Wine:

Запуск Windows внутри виртуальной машины

Другим обходным решением является запуск EXE-файлов Windows с помощью виртуальных машин. Гипервизор виртуальных машин, такой как VirtualBox, позволяет пользователям устанавливать вторичную операционную систему, которая работает в рамках их основной ОС.

Для этого достаточно установить VirtualBox, KVM или VMWare, создать новую виртуальную машину и установить на ней Windows. Затем вы можете просто запустить виртуальную машину и запустить Windows внутри вашей ОС на базе Linux. Таким образом, вы сможете запускать EXE-файлы и другие программы, как это обычно делается на компьютере только с Windows.

В настоящее время огромная доля доступного программного обеспечения ориентирована исключительно на одну операционную систему. Большинство приложений, которые вы можете найти, доступны исключительно для Windows, macOS, Linux или комбинации этих ОС. Редко когда удается установить программу, работающую на всех основных операционных системах.

Читайте также: