Разное

В windows запуск linux приложений: Запуск Linux-приложений в Windows — фантастика или суровая реальность? / Мастерская

Содержание

Запуск Linux-приложений в Windows — фантастика или суровая реальность? / Мастерская

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

Прежде чем городить огород с эмуляторами, лучше поищите портированные версии или аналоги ваших любимых программ. Те же GIMP, Audacity, Pidgin и множество других утилит имеют родные сборки не только для Windows, но и для Mac OS X. Для получения какой-то конкретной функциональности зачастую не требуется полноценный аналог софта из Linux. Например, к автодополнению по Tab в оболочке bash привыкаешь очень быстро, а в командной строке Windows этого нет и в помине. Исправить это и другие досадные упущения поможет утилита clink.

Стандартные консольные утилиты, например из пакета GNU Coreutils, давно спортированы на Windows. Есть как довольно старые наборы GNUWin II и UnxUtils, так и постоянно обновляющиеся UWIN (не рекомендуется к использованию) и Gnuwin32. Для последнего по завершении установки базового инсталлятора надо последовательно запустить файлы download.bat и install.bat, а затем скопировать по желанию папку gnuwin32 в любое удобное место и запустить из неё файл update-links.bat. После отработки последнего скрипта в подкаталоге StartMenu будут ссылки на запуск командной строки с окружением GNU и документацию к утилитам.

Обладатели Windows Vista/7 в максимальной и корпоративной версиях, а также серверных версий ОС Microsoft могут вообще не заморачиваться. Для них доступна подсистема для приложений на базе UNIX (Subsystem for UNIX-based Applications, SUA) или сервисы Microsoft Windows для UNIX (Microsoft Windows Services for UNIX, SFU). Этот набор базовых утилит наличествует прямо в компонентах системы. Дополнительные наборы программ можно скачать здесь. Наконец, последнее в списке и первое по популярности решение для запуска UNIX-программ — это Cygwin. Этот пакет прост в установке и содержит далеко не маленький набор приложений, портированных под Windows. Рекомендуется использовать именно его.

Теперь можно поговорить о странном — запуске неродной для Windows системы KDE. Вообще-то проект KDE on Windows существует не первый год, и поначалу пользоваться им было просто невозможно из-за регулярных падений, которые разве что не загоняли несчастную систему в BSOD. Однако разработчики не сидели сложа руки, и в нынешней реинкарнации проекта его можно смело инсталлировать — ошибки довольно редки, да и те — некритичные. Всё сразу ставить смысла, наверное, нет, а вот некоторые приложения могут приглянуться.

К сожалению, портированные приложения далеко не всегда ведут себя так, как в родном окружении, или могут конфликтовать с другими программами. Поэтому единственным выходом, помимо установки «пингвиньей» ОС на голое железо, является эмулирование Linux. Для разового использования можно применить оболочку для QEMU под названием MobaLiveCD, которая без лишних телодвижений поможет запустить LiveCD/USB с различными дистрибутивами. Для постоянного использования лучше инсталлировать Linux в виртуальную машину: в VirtualBox или VMWare Player. Только не забудьте установить гостевые дополнения для более комфортной работы. Альтернативный вариант — применение VDI-решений с возможностью бесшовной интеграции в Windows Linux-приложений, запущенных на отдельном хосте, который также может быть виртуализирован.

Оптимальным вариантом для запуска Linux-приложений является использование среды coLinux. Она, условно говоря, запускает ядро Linux на уровне ядра Windows и имеет доступ ко всем аппаратным ресурсам машины, за счёт чего потерь производительности практически нет. При этом она сохраняет полную совместимость с Linux-приложениями, позволяя напрямую запускать их. На базе coLinux имеются готовые системы для быстрого запуска Portable Ubuntu Remix, Topologilinux (Slackware), SpeedLinux (различные дистрибутивы) и andLinux (Ubuntu). Единственным неприятным ограничением coLinux и всех пакетов на его основе является необходимость использования 32-битной версии Windows 2k/XP/2k3/Vista/7. В качестве примера разберём минимальную настройку Debian Squeeze. Первым делом установим свежую версию coLinux, отказавшись от загрузки готовых образов и попутно инсталлировав WinPcap.

Теперь необходимо скачать архив образа диска с Debian и распаковать его в ту папку, в которую был установлен coLinux. Размер диска rootfs_2gb.img при желании можно увеличить. Файл squeeze.conf придётся немного отредактировать. Изменений минимум — увеличить объём выделяемой RAM (mem), разрешить доступ к диску C: посредством COFS и добавить сетевой интерфейс TAP. Обратите внимание, что при использовании COFS лучше не обращаться одновременно к одним и тем же файлам с папками из Linux и Windows.

kernel=vmlinux
cobd0="rootfs_2gb.img"
cobd1="swap_128mb.img"
root=/dev/cobd0
ro
cofs0="C:\"
initrd=initrd.gz
mem=512
eth0=slirp
eth2=tuntap

После запуска squeeze.bat вы попадёте в консоль Debian. Логин по умолчанию root, а пароля нет. С помощью nano отредактируем параметры сетевых интерфейсов в файле /etc/network/interfaces. Добавим секцию для eth2. В качестве IP-адреса используем любой, лишь бы не было пересечения с другими локальными подсетями. В Windows в настройках IPv4 сетевого адаптера TAP-Win32 Adapter V8 (coLinux) надо указать адрес из той же подсети.

auto eth2
iface eth2 inet static
address 192.168.100.2
netmask 255.255.255.0

Выходим из nano с сохранением изменений — F2, Y, Enter. Теперь создадим папку, куда будет монтироваться диск C:…

mkdir /mnt/windrvc 

…добавим одну строчку в конец файла /etc/fstab и сохраним его:

/dev/cofs0	/mnt/windrvc	cofs	defaults	0	0

Сейчас мы займёмся установкой X-сервера, а пока для простоты пропишем экспорт переменной DISPLAY в файл ~/.profile (это надо будет сделать и для любых других пользователей). В качестве IP-адреса используйте тот, что указан для TAP-адаптера в Windows. После этого можно перезагрузиться командой reboot.

export DISPLAY=192.168.100.1:0 

Нелишней будет установка набора шрифтов, в том числе и кириллических. Опционально можно пройтись по каталогам со шрифтами, включая C:\Windows\Fonts, утилитами mkfontdir и mkfontscale из состава Cygwin. Теперь всё готово для установки X-сервера Xming. Сразу же после этой процедуры добавляем в файл X0.hosts IP-адрес TAP-интерфейса в Debian (в нашем примере это 192.168.100.2).

«Поблагодарим» Windows за бдительность и в стандартном брандмауэре поменяем все правила, касающиеся Xming, с запрещающих на разрешающие, а иначе программы просто не достучатся до X-сервера. Теперь запускаем утилиту XLaunch, в которой можно выбрать режим отображения X-окон и задать дополнительные параметры. Для нас важно настроить поддержку русской и английской раскладок с переключением по Alt+Shift и опционально задать DPI. В конце файл настроек надо сохранить как имя.xlaunch. В дальнейшем по двойному клику по этому файлу X-сервер будет запускаться с заданными нами параметрами.

-xkblayout us,ru -xkbvariant basic,winkeys -xkboptions grp:alt_shift_toggle –dpi 96

Чтобы не было так скучно, установим графический менеджер пакетов synaptic для более удобной инсталляции софта и какую-нибудь легковесную панель с меню приложений, например lxpanel. Последнюю для простоты пропишем в автозапуск при входе, добавив в конец ~/.profile команду lxpanel&.

apt-get update
apt-get upgrade
apt-get install synaptic lxpanel

Для полноты картины добавим поддержку звука. Скачиваем отсюда архив с Pulseadio и распаковываем его в какой-нибудь каталог, в котором создаём текстовый файл default.pa. Наполняем этот файл нижеследующими строками. Здесь 192.168.100.0/24 — это наша TAP-подсеть.

load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.100.0/24
load-module module-esound-protocol-tcp auth-ip-acl=127.0.0.1;192.168.100.0/24
load-module module-detect 
add-autoload-sink output module-waveout sink_name=output 
set-default-sink output

Запускаем pulseaudio.exe и в очередной раз идём править разрешения в брандмауэре Windows. В консоли Debian устанавливаем необходимые утилиты и библиотеки.

apt-get install libpulse0 libasound2-plugins alsa-utils

В файле /etc/pulse/client.conf добавляем IP-адрес хост-машины с запущенным сервером Pulseaudio — default-server = 192.168.100.1, а в /etc/asound.conf следующие параметры:

pcm.!default {type pulse}
ctl.!default {type pulse}
pcm.pulse {type pulse}
ctl.pulse {type pulse}

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

aplay /usr/share/sounds/alsa/Front_Center.wav 

Автоматический запуск Pulseaudio при старте Debian осуществляется добавлением в конец файла конфигурации squeeze.conf такой команды.

exec0="X:\путь\до\папки\pulseaudio\pulseaudio.exe"

Для X-сервера такой трюк не подходит. В принципе, того, что уже сделано, достаточно для работы. Однако неплохо было бы добавить в Linux нового не-root пользователя, настроить для него автологин с mingetty, установить coLinux в качестве службы Windows и прописать Xming в автозапуск. Для удобства можно поставить утилиту Desktops, которая создаёт несколько виртуальных рабочих столов в Windows, и запускать X-сервер в полноэкранном режиме на втором рабочем столе.

В итоге мы получили быструю среду для почти что нативного запуска Linux-приложений в Windows. Её можно использовать для написания и отладки веб-приложений, кросскомпиляции драйверов и прочих задач. Вот только вменяемого ускорения графики для работы тяжёлых приложений пока ещё нет, да 64-битная версия начала разрабатываться всего несколько месяцев назад. Тем не менее coLinux вполне пригоден для повседневного использования. Для дальнейшего изучения возможностей и настроек этой системы обратитесь к вики проекта. Ну а мы на этом пока что закроем тему симбиотических отношений Windows с Linux через разные места. Удачи!

Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.

Как запустить exe на Linux

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

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

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

export WINEPREFIX=~/program

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

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

export WINEARCH=win32

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

Прослойка совместимости Wine поддерживает далеко не все программы, чтобы проверить поддерживается ли программа Wine вы можете воспользоваться сайтом appdb.winehq.org здесь есть поиск и перечислены все поддерживаемые и не очень программы для Linux.

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

Первым делом, надо посмотреть страницу программы на сайте appdb.winehq.com. Здесь есть поиск, поэтому вы можете попытаться искать нужную программу. Например, я хочу установить довольно популярную программу Notepad++. Cначала надо посмотреть поддерживается ли она Wine. Для этого на сайте есть поиск:

 

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

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

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

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

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

wine ~/Загрузки/npp/notepad++.exe

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

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

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

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

wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks

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

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

С установкой компонентов более-менее понятно, но как узнать какие компоненты нужны? Скорее всего, вашу программу уже пытались устанавливать и другие пользователи нашли решение проблемы. Поэтому воспользуйтесь поиском Google для того, чтобы найти способы установки программы. Также очень полезным будет сайт appdb.winehq.org.

Давайте рассмотрим пример. Наберите в поиске по appdb.winehq.com программу Internet Explorer 8, это последняя версия программы, которую можно установить в Linux. Как видите, здесь бронза, значит программа поддерживается:

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

winetricks msxml6 urlmon

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

wine ~/Загрузки/iexplorer.exe

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

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

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

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:

cp ~/Загрузки/riched32.dll ~/program/drive_c/windows/system32/

cp ~/Загрузки/riched20.dll ~/program/drive_c/windows/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. Они очень сильно экономят ваше время, так как имеют уже готовые профили для многих программ. Экспериментируйте и пусть ваши программы работают без ошибок!

Оцените статью:

Загрузка…

Как запускать приложения, работающие под Linux

Linux для системных администраторов Windows

Запуск Linux-приложений из командной строки и с рабочего стола

Трейси Бост
Опубликовано 18.10.2012

Серия контента:

Этот контент является частью # из серии # статей: Linux для системных администраторов Windows

https://www.ibm.com/developerworks/ru/library/?series_title_by=**auto**

Следите за выходом новых статей этой серии.

Этот контент является частью серии:Linux для системных администраторов Windows

Следите за выходом новых статей этой серии.

Предварительные требования

Чтобы извлечь максимальную пользу от этой статьи, вы должны обладать опытом работы с оконными приложениями в среде Windows. Я также предполагаю, что читатель уже обладает базовыми знаниями об использовании рабочего стола Linux. Желательно, чтобы у вас имелась работающая Linux-система, на которой можно было бы исследовать идеи и примеры, представленные в этой статье.

Обзор

Иногда первоначальный запуск приложения на ОС Linux требует небольших дополнительных усилий. Некоторые приложения, например, серверные службы, могут не устанавливаться в качестве служб, и их придется запускать из командной строки. Для учетной записи пользователя, которая будет использоваться для запуска приложений, необходимо установить полномочия на запуск файлов приложений (флаг x).

Запуск приложений из пространства пользователя

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

Доступ к пространству ядра по умолчанию имеет только пользователь root. В ОС Linux пользователь root – это суперпользователь, которого можно сравнить с учётной записью администратора в Windows. Запуск приложений от имени пользователя root может представлять угрозу с точки зрения безопасности и поэтому не рекомендуется.

Для запуска многих серверных служб требуются полномочия root. Однако после того как служба запущена, пользователь root обычно передает её под контроль учетной записи службы. Технически, учетные записи служб в Linux – это обычные учетные записи пользователей. Их основное отличие заключается в том, что учетные записи служб применяются только для запуска конкретной службы и не предназначены для того, чтобы кто-то использовал их для входа в систему.

Настройка полномочий

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

В большинстве дистрибутивов Linux параметр umask равен 022, что означает, что по умолчанию для нового файла установлены полномочия 644. Эти числовые значения расшифровываются как – 4 – чтение, 2 – запись, 1 – исполнение. Так что загрузка приложения с полномочиями по умолчанию — 644 — говорит о том, что владелец файла обладает правами на чтение и запись по отношению к нему, в то время как группа, владеющая файлом, и все остальные пользователи обладают правами только на чтение.

Чтобы предоставить всем пользователям права на запуск файла, необходимо воспользоваться командной chmod a+x. Параметр а означает все (all), символ + — означает добавить (add), а x означает выполнить (execute). Кроме того, если приложение — это серверная служба, необходимо убедиться, что только авторизованные учетные записи могут использоваться для запуска службы.

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

Если говорить более конкретно, то также можно настроить список управления доступом (access control list — ACL) с правами для исполняемого файла, что позволит определенному пользователю или группе запускать приложение. Используйте утилиту setfacl для установки прав с помощью ACL.

Для приложений, которые должны запускаться от имени пользователя root, например, как серверных служб, доступно несколько вариантов. В таблице 1 приведены различные способы, позволяющие пользователям запускать сервисные службы, требующие полномочий root.

Таблица 1. Таблица 1. Варианты запуска приложений, требующих полномочий root
СпособОписание
от имени пользователя rootНе рекомендуется для серверных служб. Допускается для приложений, когда пользователь уже знает пароль root и возможная компрометация приложения не является проблемой.
setUIDНе рекомендуется по соображениям безопасности. Команда setUID позволяет обычному пользователю запускать файлы от имени другого пользователя, например, root.
sudoОбщеизвестная и общепринятая практика. Команда sudo предоставляет пользователю или группе права на запуск файла, который в другом случае потребовал бы полномочий root. При этом пользователю не требуется знать пароля root.
учетная запись обычного пользователя с правом на работу с файламиУстановить разрешение на запуск файла для пользователя-владельца, группы-владельца или всем остальным. Это стандартный способ предоставления прав для запуска приложения пользователям, которым не требуются полномочия root.
учетная запись обычного пользователя с полномочиями в ACLРеже используемый, но также жизнеспособный способ, когда нежелательно давать пользователю права через sudo или изменять права на доступ к файлу. Применив к файлу команду setfacl, можно предоставить конкретному пользователю или группе пользователей право на запуск данного файла.

Запуск приложения из командной строки

Запуск приложений из командной строки является стандартной операцией в администрировании Linux-серверов. Многие приложения содержат сценарии оболочки (аналогичные .bat-файлам в Windows), которые запускают приложения и выполняют другие задачи, например, настройку переменных среды и передачу процессов другим пользователям. Например, для работы приложения может быть необходима виртуальная Java™-машина (JVM). В данном случае сценарии оболочки настраивают соответствующие переменные среды, а затем выполняют команду java для запуска JAR-архива или class-файла. Аналогично обстоит дело и для приложений, использующих Perl, Python и даже C# (да, скомпилированные C#-приложения можно запускать под Linux!).

Обычные учетные записи и команды, требующие полномочий root

Обратите внимание, что в листингах, приведенных в этой статье, каждая команда начинается с символа $ или #. Эти символы в оболочках Linux имеют разное значение. Символ $ в приглашении оболочки означает, что пользователь обладает стандартными полномочиями, а символ # говорит о том, что пользователь обладает полномочиями root (администратора). Для запуска команд, которые приведены в листингах с использованием символа #, вам потребуется sudo-доступ или прямой доступ к учетной записи root.

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

Часто упакованные приложения уже содержат сценарии оболочки для настройки переменных среды и предоставляют путь к интерпретатору необходимого языка с помощью символов #!, например, #!/usr/bin/python. Я рекомендую ознакомиться и с подобным подходом.

В листинге 1 приведен стандартный сценария catalina.sh, используемый для запуска сервера приложений Apache Tomcat с помощью ./ подхода. Затем для запуска сервера используется sh-подход. Так как в данном случае используется стандартный порт 8080, то никаких специальных изменений для запуска службы от имени обычного пользователя вносить не потребуется.

Листинг 1. Листинг 1. Запуск приложения из командной строки
$ ./catalina.sh start 
Using CATALINA_BASE:   /opt/apache-tomcat-7.0.26
Using CATALINA_HOME:   /opt/apache-tomcat-7.0.26
Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.26/temp
Using JRE_HOME:        /usr
Using CLASSPATH:   /opt/apache-tomcat-7.0.26/bin/bootstrap.jar:
	/opt/apache-tomcat-7.0.26/bin/tomcat-juli.jar
$ ./catalina.sh stop

.....................................................................
$ sh catalina.sh start 

Using CATALINA_BASE:   /opt/apache-tomcat-7.0.26
Using CATALINA_HOME:   /opt/apache-tomcat-7.0.26
Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.26/temp
Using JRE_HOME:        /usr
Using CLASSPATH:   /opt/apache-tomcat-7.0.26/bin/bootstrap.jar:
	/opt/apache-tomcat-7.0.26/bin/tomcat-juli.jar

Рассмотрим стандартный HTTP Web-сервер. На платформе Linux любой порт с номером меньше 1024 считается привилегированным, и такие порты может открывать только пользователь root. Так как по умолчанию Web-серверы используют порт 80, то для запуска такого процесса необходимы полномочия root. Как упоминалось выше, с точки зрения безопасности не рекомендуется запускать службы от имени пользователя root. Правильным подходом будет запустить службу от имени root и передать её под управление учетной записи обычного пользователя или специальной учетной записи для данной службы.

К счастью, у большинства серверных служб имеются сценарии для выполнения подобной операции. Можно собрать Web-сервер Apache из исходного кода, запустить его от имени пользователя root и передать управление потоками httpd пользователю apache.

В листинге 2 запускается стандартная сборка Web-сервера Apache 2. Процесс установки выполняет несколько действий, включая преобразование команды apachectl в исполняемый файл. Так как этот процесс использует порт 80, он запускается с полномочиями root. Однако, как показывает команда ps, процессы httpd выполняются под управлением учетной записи apache.

Листинг 2. Листинг 2. Запуск Web-сервера Apache
# cd /usr/local/apache2/bin
# apachectl start
#ps aux | grep httpd
apache   23094  0.0  0.3  11784  1912 ?        S    10:41   0:00 /usr/sbin/httpd -k start
apache   23095  0.0  0.3  11784  1912 ?        S    10:41   0:00 /usr/sbin/httpd -k start
apache   23096  0.0  0.3  11784  1912 ?        S    10:41   0:00 /usr/sbin/httpd -k start
apache   23097  0.0  0.3  11784  1912 ?        S    10:41   0:00 /usr/sbin/httpd -k start
apache   23098  0.0  0.3  11784  1912 ?        S    10:41   0:00 /usr/sbin/httpd -k start

Запуск приложений в фоновом режиме

Некоторые установленные программы могут быть не так дружелюбны, как Web-сервер Apache. За исключением ситуаций, когда вы разбираетесь со сбоями в работе программы или хотите получать подробную информацию о её работе, вы скорее всего предпочтете, чтобы после запуска она работала в фоновом режиме. В противном случае приложение будет остановлено в момент, когда будет закрыта оболочка. Такое поведение, очевидно, не подходит для серверных служб, если служба будет останавливаться каждый раз, когда вы закрываете терминал с оболочкой или выходите из системы.

Если приложение запустить в фоновом режиме, оно продолжит работать даже после того, как вы закроете окно оболочки. Вы можете запустить приложение в фоновом режиме, добавив символ & в конец команды, используемой для запуска приложения. Например, можно открыть файл в редакторе vi, запущенном в фоновом режиме, с помощью команды vi /etc/sysconfig/network &, так как символ & открывает файл /etc/sysconfig/network и удерживает его открытым в фоновом режиме. Можно также воспользоваться утилитой nohup, которая позволяет процессам продолжать работу даже после того, как вы выйдете из системы:

nohup vi /etc/sysconfig/network  &

В листинге 3 файл открывается для редактирования в редакторе vi и переводится в фоновый режим.

Листинг 3. Листинг 3. Запуск приложения в фоновом режиме
# vi /etc/sysconfig/network &
[1] 24940
# jobs
[1]+  Stopped   vi /etc/sysconfig/network

Чтобы увидеть список приложений, работающих в фоновом режиме, используется команда jobs. Каждой задаче, выполняющейся в фоновом режиме, присваивается последовательный номер, начиная с 1. Задаче, показанной в листинге 3, был установлен номер 1, а 29940 — это идентификатор процесса (PID). Приложение можно перевести в обычный режим с помощью команды fg, указав при этом номер определенного задания. В этом примере пользователь не использует процесс, поэтому он отображается в состоянии Stopped (остановлен). Однако команда fg 1 переключит терминал обратно в процесс редактирования файла, сделав его активным.

Запуск приложений с рабочего стола

Запуск приложений с графическим интерфейсом пользователя (graphical user interface – GUI) с рабочего стола в Linux не сильно отличается от аналогичного действия в Windows. В основном вам потребуется понять, как именно приложения группируются в меню в вашем конкретном менеджере оконного интерфейса (GNOME, KDE и т.д.). В Linux имеется множество оконных приложений, предназначенных для выполнения различных задач. Некоторые из них являются «родными» приложениями Linux, в то время как другие, как разработанные на C# и использующие общую среду исполнения, могут быть мультиплатформенными, подобно приложениям на основе .NET Framework. Также в Linux можно запускать и ваши любимые Windows-приложения с помощью различных виртуальных сред, например, Wine.

«Родные» Linux-приложения

Как правило, можно найти Linux-аналог для почти любого Windows-приложения. Запуск «родных» Linux-приложений с рабочего стола выполняется крайне просто. Также как и в Windows, обычно достаточно найти нужное приложение в соответствующем меню и щелкнуть кнопкой мыши по его пиктограмме, чтобы оно запустилось.

Перед запуском приложений, которые требуют полномочий root, будет предложено ввести пароль root. В принципе это аналогично опции Run as Administrator (запустить от имени администратора) в Windows. В остальных случаях все приложения будут запускаться в пространстве пользователя, относящемся к учетной записи, которой вы воспользовались для входа в систему.

В Windows вы можете помещать на рабочий стол ярлыки (shortucts), используемые для быстрого запуска программ. В Linux имеются аналогичные ярлыки (только они называются загрузчики — launchers), которые можно помещать на панель или рабочий стол. При щелчке левой кнопкой мыши по загрузчику он запускает соответствующую программу.

На рисунке 1 показаны два загрузчика для Web-браузера Mozilla Firefox на рабочем столе GNOME. Первый загрузчик расположен на панели быстрого доступа, а второй на рабочем столе.

Рисунок 1. Рисунок 1. Загрузчики приложений на рабочем столе и на панели быстрого доступа

Mono

Множество Windows-приложений было разработано с использованием технологии .NET Framework. Mono – это open source реализация технологии .NET, работающая на различных платформах, включая Linux. На самом деле на сайте Mono написано, что Mono – это реализация языка программирования C# и стандартной среды исполнения CLR (Common Language Runtime), бинарно совместимая с .NET. В данный момент этот проект поддерживается сообществом Xamarin.

На платформе Linux вы можете запускать приложения, разработанные в инфраструктуре .NET или Mono, точно так же, как в Windows. Однако напомню, что в Linux существуют параметр umask и стандартные полномочия для работы с файлами. Так что вам всё равно потребуется предоставить необходимые права для доступа к файлу, чтобы Linux позволил запустить его.

Некоторые мультиплатформенные приложения, разработанные в Mono, например, F-Spot, можно установить прямо на рабочий стол Linux, и они будут располагаться в одном меню вместе с «родными» приложениями GNOME. F-Spot – это open-source приложение для работы с фотографиями. Несмотря на то, что оно написано на C#, оно отображается как родное приложение GNOME. И если создать для него загрузчик, то его можно будет запускать простым щелчком по ярлыку точно так же, как в Windows.

На рисунке 2 показано размещение Mono-приложения F-Spot и продемонстрировано, как вы можете создать для него загрузчики на рабочем столе или соответствующей панели.

Рисунок 2. Рисунок 2. Создание загрузчика для F-Spot

Wine

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

При использовании Wine в Linux в домашнем каталоге вашей учетной записи создается скрытый каталог, эмулирующий среду Windows, как показано в листинге 4.

Листинг 4. Листинг 4. Скрытый каталог Wine, эмулирующий среду исполнения Windows
$ cd /home/tbost/.wine/drive_c/windows
$ls
cf8e.tmp
command
explorer.exe
Fonts
help
hh.exe
inf
Installer
ls.txt
Microsoft.NET
notepad.exe
pwd.txt
regedit.exe
rundll.exe
system
system32
system.ini
temp
twain_32.dll
twain.dll
winhelp.exe
winhlp32.exe
win.ini
winsxs

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

В качестве примера рассмотрим программу Camstudio – open source инструмент для записи и редактирования видео с экрана компьютера. В данный момент Camstudio не предлагает версии программы для операционной системы Linux. Однако, используя Wine, я установил Windows-версию на рабочий стол Linux. Wine-приложения обычно сгруппированы в меню Applications (приложения) -> Wine -> Programs (программы), как показано на рисунке 3.

Рисунок 3. Рисунок 3. Запуск Windows-приложения под Linux с помощью Wine

Заключение

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

Ресурсы для скачивания
Похожие темы

Как запускать программы Linux на основе GUI в Windows 10

В конце 2016 года Microsoft неожиданным образом объявила о партнерство с Linux Foundation, Сотрудничество нового века заключалось в том, чтобы сделать часть Linux для Windows 10 более удобной для разработчиков. Перенесемся в 2020 году, и, похоже, партнерство в значительной степени окупилось, поскольку проект претерпел некоторые значительные улучшения и вышел за пределы команд Linux Terminal. Теперь вы можете запускать программы Linux на основе GUI в Windows 10 без многих обходных путей. Мы попробовали несколько популярных приложений для Linux, и они безупречно работали на нашем ноутбуке с Windows. Итак, если вы хотите узнать, как устанавливать и использовать приложения Linux в Windows 10 в графическом пользовательском интерфейсе, следуйте нашему руководству шаг за шагом.

Установить программы Linux на Windows 10 с WSL

Здесь мы собираемся показать вам, как установить программы Linux на Windows 10 с помощью функции WSL (Windows Subsystem for Linux). Если вы не в курсе, WSL – это настоящее ядро ​​Linux, которое поставляется с Windows 10. Это не уровень совместимости или виртуальная машина в Windows 10, поэтому производительность остается на высшем уровне. Сказав все это, давайте без промедления перейдем к ступеням.

1. Прежде всего, включите Linux Bash Shell в Windows 10, если вы этого еще не сделали.

Замечания: Не обновляйте до WSL 2, так как в нем есть некоторые ошибки, которые блокируют программы Linux на основе GUI в Windows 10.

2. Теперь, когда вы настроили WSL 1, давайте установить приложение VcXsrv на вашем компьютере. Это приложение Windows Desktop Server, которое позволяет программам Linux работать в графическом интерфейсе пользователя. Во время установки оставьте все по умолчанию и завершите настройку, Наконец, VcXsrv начнет работать в фоновом режиме и будет сидеть в системном трее.

3. Затем вам может быть предложено диалоговое окно брандмауэра Windows. Установите флажок для частных сетей и нажмите на кнопку «Разрешить доступ»,

4. Теперь давайте установим программы Linux на наш ПК. Вы можете выбрать любую нужную программу прямо из Vim в Gedit и установить их в традиционном стиле Linux с использованием apt-get install команда, Для вашего прочтения пользователь GitHub создал список программ для Linux, которые хорошо работают на Windows 10 так проверьте это для получения дополнительной информации. Вот, например, я устанавливаю Gedit через терминал Linux.

sudo apt-get install gedit

5. После установки приложения выполните следующую команду, чтобы подключить VcXsrv Windows Server с Linux,

export DISPLAY=:0

6. Сделав это, теперь запустите программу Linux так же, как в дистрибутивах Linux. Введите имя приложения и нажмите Enter, Программа для Linux мгновенно откроется в графическом интерфейсе Windows 10. Это потрясающе, верно?

gedit

7. Если вы хотите запустить несколько программ Linux одновременно, откройте оболочку Linux Bash в терминале Windows. Здесь вы можете использовать Linux Bash Shell на нескольких вкладках и выполнять команды одновременно. Все, что вам нужно сделать, это выполнить экспорт DISPLAY =: 0 команда в каждой вкладке и затем запустите программу Linux, как обычно. Здесь я использую VLC (на базе Linux) и Gedit рядом с Windows 10.

Программа Linux не открывается в GUI на Windows 10? Вот исправление

1. Как я уже говорил выше, проблема связана с последней сборкой WSL 2. Если вы уже на последнем обновлении, вам нужно перейти на WSL 1 вручную, Выполните приведенную ниже команду в Windows PowerShell, чтобы найти версию WSL.

wsl -l -v

2. Если отображается «версия 2», то выполните команду ниже, чтобы вернуться к WSL 1 что гораздо стабильнее и без ошибок. Процесс займет около 20-30 минут. После этого просмотрите вышеприведенное руководство, и приложения Linux начнут открываться в графическом интерфейсе без каких-либо проблем.

wsl --set-version Ubuntu 1

Запустите любую программу Linux на Windows 10 через WSL

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

Как запустить Windows-приложение в Linux? | Info-Comp.ru

Всем привет! Практически у всех начинающих пользователей Linux, которые только перешли с Windows, возникает один и тот же вопрос – а как в Linux запустить программу (игру), которая была в Windows? Иными словами, как запустить программу или игру, которая была разработана для Windows, в Linux, т.е. в другой операционной системе. В этом материале я расскажу Вам, можно ли это сделать, и если можно, то как.

Можно ли запустить Windows-приложение в Linux?

Для начала обязательно отмечу, что Linux – это совсем другая платформа, не Windows и не совместимая с ней, поэтому абсолютно любая программа или игра, разработанная для Windows, запускается только на Windows.

На заметку! Новичкам рекомендую почитать мою книгу «Linux для обычных пользователей» – в ней я подробно рассказываю про основы операционной системы Linux, и как пользоваться этой системой без командной строки.

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

Обзор инструментов Wine, Winetricks и PlayOnLinux

Итак, если у Вас все-таки остро стоит задача запустить Windows-кую программу в Linux, то существует специальная программа под названием Wine.

Wine – это альтернативная реализация Windows API.

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

Но как я уже отметил, совместимость программ не полная, не все программы поддерживаются, а те, которые поддерживаются, могут работать некорректно. В то же время большинство популярных программ работают в Wine очень даже неплохо, например, есть возможность запустить даже Microsoft Office.

Для упрощения установки и запуска Windows-программ в Linux разработчики также придумали специальные вспомогательные инструменты, которые упрощают всю эту работы.

К таким инструментам относится скрипт Winetricks.

Winetricks – скрипт для загрузки и установки различных распространённых библиотек, необходимых для запуска некоторых программ в Wine. Winetricks автоматически создаёт для программ правильные настройки и скачивает требуемые для их работы компоненты.

Winetricks – скрипт для упрощения работы с Wine.

Еще одним инструментом для упрощения установки Windows-приложений в Wine является программа – PlayOnLinux. Она создана для автоматизации установки программ и игр, созданных для Windows в Linux, т.е. она может автоматически скачать и установить некоторые программы (игры). Также PlayOnLinux в случае необходимости может скачать специальную версию Wine вместе с настройками для конкретной программы, и даже применять к программе некоторые исправления для того, чтобы добиться более стабильной работы.

PlayOnLinux – графическая программа, надстройка над Wine, которая упрощает установку и использование программ и игр в Linux, которые были разработаны для Windows.

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

Однако работа с PlayOnLinux и, в частности, с Wine непредсказуемая, иными словами, стандартного сценария установки программ нет, в процессе установки любой программы могут (и, наверное, будут) появляться различные ошибки, например, отсутствие какого-нибудь пакета или еще что-нибудь.


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

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

Установка и запуск Windows-приложения в Linux

Теперь давайте я покажу, как установить и запустить Windows-приложение в операционной системе Linux, в качестве примера я возьму программу Notepad++, которая была разработана для Windows, т.е. версии для Linux на текущий момент у этой программы нет.

Шаг 1 – Установка Wine

Сначала необходимо установить программу Wine. Пример установки Wine можете посмотреть в материале – Установка Wine в Linux Mint, в этой статье я подробно рассказывал и показывал, как установить Wine в дистрибутиве Linux Mint.

После того, как Wine Вы установили, повторно, для установки другой программы, Wine устанавливать не нужно.

Шаг 2 – Скачивание установочного файла программы

Следующее, что нужно сделать, это, конечно же, скачать установочный дистрибутив программы, в нашем случае Notepad++, т.е. так же, как и в Windows, Вам необходимо скачать ровно тот же самый установочный файл, который Вы бы использовали, если устанавливали программу на Windows.

Шаг 3 – Установка программы

После того как Вы установили Wine, Вы можете запускать exe файлы точно так же, как и в Windows.

Таким образом, для запуска установки программы мы просто щелкаем двойным кликом по скаченному файлу.

Потом программа Wine попросит загрузить и установить необходимые для корректной работы пакеты (в случае их отсутствия в системе). Нажимаем «Установить» и ждем окончания процесса установки этих пакетов.

После чего запустится установка программы, в нашем случае установка Notepad++, и этот процесс ничем не будет отличаться от установки в Windows, ведь это тот же самый установщик.

Более подробно посмотреть на процесс установки Notepad++ Вы можете в материале – Установка Notepad++ в Linux Mint

Шаг 4 – Запуск программы

После окончания установки ярлык программы появится в меню, а также на рабочем столе, если Вы поставили соответствующую галочку в процессе установки программы.

Для того чтобы запустить программу, просто щелкаете по ярлыку.

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

Да и тогда, когда установка пройдет успешно, никто не дает гарантии, что приложение будет работать корректно, т.е. так же как в Windows.

Видео-инструкция

На сегодня это все, надеюсь, материал был Вам полезен, пока!

Нравится4Не нравится1

Как запускать приложения Linux GUI в Windows 10. G-ek.com

Рекомендуем: Как запустить OpenSUSE 42.2 Leap или SUSE Linux Enterprise Server 12 в Windows 10

 В конце прошлого месяца, к всеобщему удивлению, Microsoft объявила , что  в Windows 10 добавлена поддержка Bash, утилита командной строки Linux. Это дает возможность пользователям запускать свои любимые приложения Linux поверх Windows 10 … в режиме командной строки. В этой статье хотим поделится с вами как запустить GUI (более известные как современные) приложения в Linux на Windows 10, если вы о этом мечтали то ваша мечта сбылась. 

Для запуска программ или игр Linux помимо установленного WSL вам требуется Xming X Server и сборка Windows 10  не ниже- 14316. 

Шаг 1: Установите WSL (см. как).  

Шаг 2: Загрузите и установите приложение Xming X Server  в вашей системе. 

Шаг 3:  Запустите Ubuntu wsl и Xming X Server (от имени Администратора).  

 Теперь необходимо обновить список доступных пакетов Linux, вы должны использовать команду sudo apt-get update.  

Шаг 4:  В командной строке  Bash введите: sudo apt-get update 

 

На запрос Do you want to continue? [Y/n]  отвечаем Y

После обновления доступных пакетов можно попробовать запустить первое приложение Linux в Windows 10 

Установка и запуск графического редактора Gimp  в Windows 10

GIMP («Гимп») — свободно распространяемый растровый графический редактор, программа для создания и обработки растровой графики и частичной поддержкой работы с векторной графикой. 

Шаг 5: В командной строке Bash введите  sudo apt-get install gimp — это установит программу GIMP. 

 

Шаг 6: для запуска установленного  текстового редактора введите команду DISPLAY=:0 gimp 

 

 

Вот и все мы запустили приложение Linux GUI  на Bash . 

Ниже  представлен небольшой список приложений и команд для Bash для установки и запуска  программ linux в Windows 10. 

Gedit 

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

 Установка:  sudoapt-get install gedit

 Запуск: DISPLAY=:0 gedit

 

Матрица — cmatrix

 Установка:  sudo apt-get install cmatrix

 Запуск: cmatrix

 

Игра — lmemory

 Установка:  sudo apt-get install lmemory

 Для Запуска две команды:

  1. PATH=$PATH:/usr/games
  2.  DISPLAY=:0 lmemory

 

Firefox

 

Установка:  sudo apt-get install firefox

 Запуск:DISPLAY=:0 firefox

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

Вам может быть интересно: Как запустить Linux с графической оболочкой рабочего стола используя WSL 2 в Windows 10

Запуск Linux-приложений в Windows — фантастика или суровая реальность?

©

Обычно юные и не очень адепты Linux задают один и тот же вопрос: «Как запустить Windows-приложения в любимом дистрибутиве?» А на обратный вопрос, как правило, крутят у виска. Но так ли уж нелепа идея запуска Linux-программ в среде Windows?

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

Прежде чем городить огород с эмуляторами, лучше поищите портированные версии или аналоги ваших любимых программ. Те же GIMP, Audacity, Pidgin и множество других утилит имеют родные сборки не только для Windows, но и для Mac OS X. Для получения какой-то конкретной функциональности зачастую не требуется полноценный аналог софта из Linux. Например, к автодополнению по Tab в оболочке bash привыкаешь очень быстро, а в командной строке Windows этого нет и в помине. Исправить это и другие досадные упущения поможет утилита clink.


Стандартные консольные утилиты, например из пакета GNU Coreutils, давно спортированы на Windows. Есть как довольно старые наборы GNUWin II и UnxUtils, так и постоянно обновляющиеся UWIN (не рекомендуется к использованию) и Gnuwin32. Для последнего по завершении установки базового инсталлятора надо последовательно запустить файлы download.bat и install.bat, а затем скопировать по желанию папку gnuwin32 в любое удобное место и запустить из неё файл update-links.bat. После отработки последнего скрипта в подкаталоге StartMenu будут ссылки на запуск командной строки с окружением GNU и документацию к утилитам.

Обладатели Windows Vista/7 в максимальной и корпоративной версиях, а также серверных версий ОС Microsoft могут вообще не заморачиваться. Для них доступна подсистема для приложений на базе UNIX (Subsystem for UNIX-based Applications, SUA) или сервисы Microsoft Windows для UNIX (Microsoft Windows Services for UNIX, SFU). Этот набор базовых утилит наличествует прямо в компонентах системы. Дополнительные наборы программ можно скачать здесь. Наконец, последнее в списке и первое по популярности решение для запуска UNIX-программ это Cygwin. Этот пакет прост в установке и содержит далеко не маленький набор приложений, портированных под Windows. Рекомендуется использовать именно его.

Теперь можно поговорить о странном запуске неродной для Windows системы KDE. Вообще-то проект KDE on Windows существует не первый год, и поначалу пользоваться им было просто невозможно из-за регулярных падений, которые разве что не загоняли несчастную систему в BSOD. Однако разработчики не сидели сложа руки, и в нынешней реинкарнации проекта его можно смело инсталлировать ошибки довольно редки, да и те  некритичные. Всё сразу ставить смысла, наверное, нет, а вот некоторые приложения могут приглянуться.

К сожалению, портированные приложения далеко не всегда ведут себя так, как в родном окружении, или могут конфликтовать с другими программами. Поэтому единственным выходом, помимо установки «пингвиньей» ОС на голое железо, является эмулирование Linux. Для разового использования можно применить оболочку для QEMU под названием MobaLiveCD, которая без лишних телодвижений поможет запустить LiveCD/USB с различными дистрибутивами. Для постоянного использования лучше инсталлировать Linux в виртуальную машину: в VirtualBox или VMWare Player. Только не забудьте установить гостевые дополнения для более комфортной работы. Альтернативный вариант применение VDI-решений с возможностью бесшовной интеграции в Windows Linux-приложений, запущенных на отдельном хосте, который также может быть виртуализирован.

Оптимальным вариантом для запуска Linux-приложений является использование среды coLinux. Она, условно говоря, запускает ядро Linux на уровне ядра Windows и имеет доступ ко всем аппаратным ресурсам машины, за счёт чего потерь производительности практически нет. При этом она сохраняет полную совместимость с Linux-приложениями, позволяя напрямую запускать их. На базе coLinux имеются готовые системы для быстрого запуска Portable Ubuntu Remix, Topologilinux (Slackware), SpeedLinux (различные дистрибутивы) и andLinux (Ubuntu). Единственным неприятным ограничением coLinux и всех пакетов на его основе является необходимость использования 32-битной версии Windows 2k/XP/2k3/Vista/7. В качестве примера разберём минимальную настройку Debian Squeeze. Первым делом установим свежую версию coLinux, отказавшись от загрузки готовых образов и попутно инсталлировав WinPcap.

Теперь необходимо скачать архив образа диска с Debian и распаковать его в ту папку, в которую был установлен coLinux. Размер диска rootfs_2gb.img при желании можно увеличить. Файл squeeze.conf придётся немного отредактировать. Изменений минимум увеличить объём выделяемой RAM (mem), разрешить доступ к диску C: посредством COFS и добавить сетевой интерфейс TAP. Обратите внимание, что при использовании COFS лучше не обращаться одновременно к одним и тем же файлам с папками из Linux и Windows.

?

1 2 3 4 5 6 7 8 9 10kernel=vmlinux cobd0=»rootfs_2gb.img» cobd1=»swap_128mb.img» root=/dev/cobd0 ro cofs0=»C:» initrd=initrd.gz mem=512 eth0=slirp eth2=tuntap

После запуска squeeze.bat вы попадёте в консоль Debian. Логин по умолчанию root, а пароля нет. С помощью nano отредактируем параметры сетевых интерфейсов в файле /etc/network/interfaces. Добавим секцию для eth2. В качестве IP-адреса используем любой, лишь бы не было пересечения с другими локальными подсетями. В Windows в настройках IPv4 сетевого адаптера TAP-Win32 Adapter V8 (coLinux) надо указать адрес из той же подсети.

?

1 2 3 4auto eth2 iface eth2 inet static address 192.168.100.2 netmask 255.255.255.0

Выходим из nano с сохранением изменений F2, Y, Enter. Теперь создадим папку, куда будет монтироваться диск C:&

?

&добавим одну строчку в конец файла /etc/fstab и сохраним его:

?

1/dev/cofs0  /mnt/windrvc    cofs    defaults    0   0

Сейчас мы займёмся установкой X-сервера, а пока для простоты пропишем экспорт переменной DISPLAY в файл ~/.profile (это надо будет сделать и для любых других пользователей). В качестве IP-адреса используйте тот, что указан для TAP-адаптера в Windows. После этого можно перезагрузиться командой reboot.

?

1export DISPLAY=192.168.100.1:0

Нелишней будет установка набора шрифтов, в том числе и кириллических. Опционально можно пройтись по каталогам со шрифтами, включая C:WindowsFonts, утилитами mkfontdir и mkfontscale из состава Cygwin. Теперь всё готово для установки X-сервера Xming. Сразу же после этой процедуры добавляем в файл X0.hosts IP-адрес TAP-интерфейса в Debian (в нашем примере это 192.168.100.2).

«Поблагодарим» Windows за бдительность и в стандартном брандмауэре поменяем все правила, касающиеся Xming, с запрещающих на разрешающие, а иначе программы просто не достучатся до X-сервера. Теперь запускаем утилиту XLaunch, в которой можно выбрать режим отображения X-окон и задать дополнительные параметры. Для нас важно настроить поддержку русской и английской раскладок с переключением по Alt+Shift и опционально задать DPI. В конце файл настроек надо сохранить как имя.xlaunch. В дальнейшем по двойному клику по этому файлу X-сервер будет запускаться с заданными нами параметрами.

?

1-xkblayout us,ru -xkbvariant basic,winkeys -xkboptions grp:alt_shift_toggle dpi 96

Чтобы не было так скучно, установим графический менеджер пакетов synaptic для более удобной инсталляции софта и какую-нибудь легковесную панель с меню приложений, например lxpanel. Последнюю для простоты пропишем в автозапуск при входе, добавив в конец ~/.profile команду lxpanel&.

?

1 2 3apt-get update apt-get upgrade apt-get install synaptic lxpanel

Для полноты картины добавим поддержку звука. Скачиваем отсюда архив с Pulseadio и распаковываем его в какой-нибудь каталог, в котором создаём текстовый файл default.pa. Наполняем этот файл нижеследующими строками. Здесь 192.168.100.0/24 это наша TAP-подсеть.

?

1 2 3 4 5load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.100.0/24 load-module module-esound-protocol-tcp auth-ip-acl=127.0.0.1;192.168.100.0/24 load-module module-detect add-autoload-sink output module-waveout sink_name=output set-default-sink output

Запускаем pulseaudio.exe и в очередной раз идём править разрешения в брандмауэре Windows. В консоли Debian устанавливаем необходимые утилиты и библиотеки.

?

1apt-get install libpulse0 libasound2-plugins alsa-utils

В файле /etc/pulse/client.conf добавляем IP-адрес хост-машины с запущенным сервером Pulseaudio default-server = 192.168.100.1, а в /etc/asound.conf следующие параметры:

?

1 2 3 4pcm.!default {type pulse} ctl.!default {type pulse} pcm.pulse {type pulse} ctl.pulse {type pulse}

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

?

1aplay /usr/share/sounds/alsa/Front_Center.wav

Автоматический запуск Pulseaudio при старте Debian осуществляется добавлением в конец файла конфигурации squeeze.conf такой команды.

?

1exec0=»X:путьдопапкиpulseaudiopulseaudio.exe»

Для X-сервера такой трюк не подходит. В принципе, того, что уже сделано, достаточно для работы. Однако неплохо было бы добавить в Linux нового не-root пользователя, настроить для него автологин с mingetty, установить coLinux в качестве службы Windows и прописать Xming в автозапуск. Для удобства можно поставить утилиту Desktops, которая создаёт несколько виртуальных рабочих столов в Windows, и запускать X-сервер в полноэкранном режиме на втором рабочем столе.

В итоге мы получили быструю среду для почти что нативного запуска Linux-приложений в Windows. Её можно использовать для написания и отладки веб-приложений, кросскомпиляции драйверов и прочих задач. Вот только вменяемого ускорения графики для работы тяжёлых приложений пока ещё нет, да 64-битная версия начала разрабатываться всего несколько месяцев назад. Тем не менее coLinux вполне пригоден для повседневного использования. Для дальнейшего изучения возможностей и настроек этой системы обратитесь к вики проекта. Ну а мы на этом пока что закроем тему симбиотических отношений Windows с Linux через разные места. Удачи!

4 способа запуска приложений и игр Linux в Windows

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

1.Подсистема Bash и Windows для Linux

Нужна среда Linux в Windows? В 2016 году Microsoft объединилась с Canonical для создания рабочей версии Bash, работающей в Windows.Bash в Windows, способный запускать команды и инструменты, такие как grep, ssh и nano, можно легко включить.

linux-bash-windows-10

Точно так же подсистема Windows для Linux ожидает «включения», и это может предоставить вам графический пользовательский интерфейс. Хотя это может выглядеть как «полный Linux», это не всегда так.

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

И наоборот: теперь вы можете установить Windows PowerShell в Linux!

2.Запуск Linux на виртуальной машине

how to run linux apps in windows

Не все версии Windows могут запускать Bash или получать графический интерфейс с помощью подсистемы Windows для Linux.К счастью, есть альтернатива: виртуализация!

Используя виртуальную машину, такую ​​как VMware Player или VirtualBox, вы можете создать виртуальную аппаратную среду (ограниченную только физическими аппаратными ограничениями вашего компьютера).

Затем на этой виртуальной машине вы можете установить Linux (в большинстве случаев рекомендуется облегченный дистрибутив).С версией Linux, работающей в Windows, вы можете добавлять и удалять свои любимые приложения и игры для Linux по мере необходимости.

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

Кооперативный Linux (сокращенно coLinux) — это порт ядра Linux, позволяющий ему работать вместе с другой операционной системой (совместно).С coLinux вы можете запускать Linux на компьютере с Windows, не полагаясь на виртуализацию. Также есть поддержка BSD и macOS.

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

С компактным 7.Загрузите 5 МБ, стоит установить coLinux, чтобы узнать, будет ли он поддерживать тот вид деятельности, который вы имеете в виду. В противном случае для вас открыты другие решения.

4. Удаленный доступ к существующему компьютеру Linux

how to run linux apps in windows

Хотя это и не точное определение «запуск приложений Linux в Windows», использование удаленных инструментов все же возможно.Обычно доступны три:

  • Протокол удаленного рабочего стола (RDP)
  • Вычисления виртуальной сети (VNC)
  • Secure Shell (SSH)

С помощью RDP и VNC вы можете подключиться к удаленному компьютеру с Linux (который может находиться в соседней комнате или даже за тысячи миль) и получить к нему доступ через окно приложения.Здесь можно запустить программное обеспечение и получить доступ к терминалу, как и следовало ожидать.

Между тем SSH предоставляет удаленный доступ к сеансу терминала, позволяя использовать командную строку для управления файлами и папками, обновления и установки программного обеспечения и т. Д.

Из этих трех возможных решений RDP, вероятно, является лучшим вариантом.Инструмент RDP уже встроен в Windows 10 (в отличие от VNC, для которого требуется дополнительное программное обеспечение), поэтому все, что вам нужно сделать, это установить xrdp на целевом устройстве Linux. Однако, если SSH уже включен в Linux, вы сможете легко удаленно подключиться к командной строке с помощью инструмента SSH, такого как PuTTY.

См. Наше руководство по всем трем методам удаленного доступа к Linux из Windows для получения дополнительной информации.

Приложение уже доступно для Windows?

Если ничего из того, что вы читали или пробовали до сих пор, у вас не работает, есть другой выбор: найдите версию для Windows! Многие приложения, выпущенные для Linux, также доступны в Windows.Это может быть связано с тем, что инструменты были перенесены или перекомпилированы для работы в Windows.

Кроме того, многие приложения написаны на кроссплатформенном коде, таком как Java, что означает, что то же самое приложение, которое работает в Linux, также будет работать в Windows (и, возможно, в macOS и других).

Лучший способ узнать, доступно ли приложение для Windows, — это связаться с разработчиком.Если они не поддерживают свою собственную версию Windows, он или она могут знать о ветке проекта, предлагающей поддержку Windows.

Теперь вы можете запускать программное обеспечение Linux в Windows

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

Напомним, это:

  • Подсистема Linux для Windows
  • Виртуальная машина
  • coLinux
  • Переносимое, перекомпилированное и кроссплатформенное программное обеспечение
  • Подключение RDP, VNC или SSH к устройству Linux

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

Какими бы полезными ни были все эти параметры, двойная загрузка Linux и Windows более надежна.Между тем, если все, что вам нужно, — это компьютер с Linux, к которому вы можете время от времени легко получать доступ, почему бы не подумать о выделенном Linux-компьютере?

reset-factory

Почему не следует сбрасывать компьютер до заводских настроек (и что делать вместо этого)

Не всегда перезагружать компьютер, когда он работает медленно или показывает ошибки.Вы можете сначала попробовать другие альтернативы, чтобы удалить вредоносное ПО и ошибки.

Об авторе

Кристиан Коули
(Опубликовано 1400 статей)

Заместитель редактора по безопасности, Linux, DIY, программированию и техническим вопросам.Он также выпускает The Really Useful Podcast и имеет большой опыт в поддержке настольных компьютеров и программного обеспечения.

Автор статьи в журнале Linux Format, Кристиан — мастер Raspberry Pi, любитель Lego и фанат ретро-игр.

Ещё от Christian Cawley

Подпишитесь на нашу рассылку новостей

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Еще один шаг…!

Подтвердите свой адрес электронной почты в только что отправленном вам электронном письме.

.

Узнайте, как запускать приложения, работающие в Linux

Linux для системных администраторов Windows

Запускать приложения Linux как из командной строки, так и с рабочего стола

Tracy Bost
Опубликовано 24 апреля 2012 г. / Обновлено: 17 мая 2012 г.

Серия материалов:

Этот контент является частью # из серии: Linux для системных администраторов Windows

https: // www.ibm.com/developerworks/library/?series_title_by=linux+for+windows+systems+administrators

Следите за дополнительным содержанием этой серии.

Этот контент является частью серии: Linux для системных администраторов Windows

Следите за дополнительными материалами из этой серии.

Предварительные требования

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

Обзор

Иногда для запуска приложения в Linux в первый раз требуется
небольшая дополнительная работа. Некоторые приложения, такие как серверные службы, могут быть недоступны.
установлены как службы, поэтому вам нужно запускать эти приложения из
командная строка.Для учетных записей пользователей, запускающих приложения,
установите флаг разрешения на выполнение ( x ) для файлов приложения.

Запуск приложений пользовательского пространства

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

По умолчанию доступ к пространству ядра имеет только пользователь root.Корень
пользователь
— суперпользователь в Linux, сравнимый с администратором
аккаунт в Windows. Запуск приложения под пользователем root
учетная запись может представлять угрозу безопасности и не рекомендуется.

Многим серверным службам требуется разрешение root для запуска службы. Однако,
после запуска службы корень обычно передает ее службе
Счет. Сервисные аккаунты в Linux технически являются стандартными пользователями
учетные записи.Основное отличие состоит в том, что используются только служебные учетные записи.
для запуска службы и не предназначены для входа в систему
с ними.

Установка разрешений

Вы можете установить разрешения на выполнение для файла с
chmod команда. В
umask в Linux обычно предотвращает
загруженный файл из исполняемого файла по уважительной причине, потому что он может
помогают поддерживать безопасность вашего компьютера с Linux.

Большинство дистрибутивов Linux имеют значение umask .
022 , что означает по умолчанию новый файл
настройки разрешений 644 . Числовой
представление разрешений принимает форму чтения (4), записи (2) и
выполнить (1). Итак, загрузка приложения с разрешением по умолчанию
644 означает, что владелец файла прочитал и записал
разрешение, в то время как владелец группы и другие имеют разрешение только на чтение.

Например, чтобы дать всем разрешение на выполнение файла, используйте
chmod a + x команда. В
a представляет все , знак плюс
( + ) представляет прибавить , а
x означает, что выполнить . Аналогично, если
приложение является серверной службой, убедитесь, что только авторизованный
учетные записи имеют доступ для выполнения услуги.

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

Если говорить более конкретно, вы также можете установить список управления доступом (ACL)
разрешения на исполняемый файл, чтобы позволить определенному пользователю или группе
разрешение на запуск приложения.Использовать
setfacl Утилита для установки разрешений ACL.

Для тех приложений, как серверные службы, которым необходимо запустить
как пользователь root, у вас есть несколько вариантов. В таблице 1 приведены различные параметры, позволяющие пользователям запускать сервер
сервисы, требующие привилегий root.

Таблица 1. Параметры для запуска приложений, требующих привилегий root
Опция Описание
Как пользователь root Не рекомендуется для серверных служб.Приемлемо для приложений
когда пользователи уже знают пароль root и компрометация
приложение не является основной проблемой.
SetUID Не рекомендуется из соображений безопасности.
SetUID позволяет стандартному пользователю
выполнить файл от имени другого пользователя, например root.
sudo Обычно используется и считается хорошей практикой. sudo предоставляет пользователю или члену группы
разрешение на выполнение файла, который в противном случае потребовал бы root
привилегии. Пользователю не нужно знать пароль root.
Стандартная учетная запись пользователя с правами доступа к файлам Установить разрешение на выполнение файла для владельца пользователя, владельца группы,
или другое (все). Это распространенный способ предоставить пользователям, которые не
требуются права root для выполнения приложения.
Стандартная учетная запись пользователя с разрешениями ACL Используется реже, но является жизнеспособным решением, когда вы не хотите
предоставить пользователю sudo доступ или изменить
разрешения файла. Используя
setfacl для файла, вы можете
предоставить конкретному пользователю или группе пользователей право выполнять
файл.

Запуск из командной строки

Стандартная учетная запись пользователя и root
Команды привилегий

Обратите внимание, что в листингах этой статьи каждая команда начинается с
либо знак доллара ( $ ), либо символ решетки
( # ).В оболочке Linux эти символы имеют
смысл. Знак доллара в приглашении оболочки означает, что у пользователя есть
стандартные привилегии учетной записи, а символ хеша обозначает root
(администраторские) права. Для выполнения команд в списках, которые
есть хэш-символ, вам нужен доступ sudo
или прямой доступ к учетной записи root для выполнения команды.

Запуск приложения из командной строки является важной задачей, когда
управление серверами Linux.У многих приложений есть оболочка
сценарии, аналогичные пакетным файлам Windows (.bat), которые запускают
приложений и выполнять другие задачи, такие как установка переменных и
назначение процессов другим пользователям. Например, приложению может потребоваться
Виртуальная машина Java ™ (JVM) для выполнения. В этом случае сценарии оболочки
может установить соответствующие переменные среды, а затем выполнить Java
команда для запуска архива Java (JAR) или файла класса.Это верно для
приложения, использующие Perl, Python и даже C #. (Да, C # скомпилирован
приложения могут работать в Linux!)

Вы можете выполнить команду из командной строки или приглашения оболочки, используя только имя файла, если команда является частью встроенных команд оболочки или если расположение каталога команды включено в PATH переменная. Такие команды, как «ls» и «cd», являются примерами команд, которые обычно включаются в PATH по умолчанию, поскольку они обычно находятся в каталогах / usr / local / bin или / usr / bin.Но если расположение файла не указано в PATH, вы должны указать путь к файлу. Например, если исполняемый файл myapp находится в каталоге / usr / share / scripts, введите / usr / share / scripts / myapp для выполнения сценария. Вы также можете использовать относительный путь, добавив точку (.) И косую черту (/) перед именем файла и набрав ./myapp . Точка (.) В оболочке указывает «текущий каталог». (Windows включает рабочий каталог в путь выполнения, и некоторые системные администраторы, как известно, включают точку (.) в PATH для эмуляции этого, но это не рекомендуется из соображений безопасности.) Аналогичным образом вы можете указать перед именем файла языковую среду, например:

Это все относительно

Поскольку пользователи DOS могут ссылаться на путь имена относительно текущего рабочего каталога. Точка (.) Означает ваш текущий каталог, а две точки (..) означают, что на один каталог вверх. Итак, если ваш рабочий каталог был / home / myuser / docs, и вы хотели получить доступ к чему-то в / home / myuser / bin, которое вы используете../bin. Относительное именование путей может быть очень полезно в сценариях, где вы создали структуру каталогов для размещения ваших сценариев и других файлов, но вы не знаете, где он будет находиться при окончательной установке.

Однако чаще упакованные приложения имеют сценарии оболочки, которые устанавливают
переменные среды и укажите путь к исполняемому файлу языка
с #! символ, например
#! / Usr / bin / python . Вы должны познакомиться
с этим подходом тоже.

В листинге 1 используется
catalina.sh сценарий по умолчанию для запуска Apache
Сервер приложений Tomcat с использованием ./
подходить. Затем он запускает сервер, используя
ш подход. Поскольку порт по умолчанию — 8080, нет
для запуска службы в стандартной комплектации требуются специальные модификации
пользователь.

Листинг 1. Запуск приложения из командной строки
 $./catalina.sh start
Использование CATALINA_BASE: /opt/apache-tomcat-7.0.26
Использование CATALINA_HOME: /opt/apache-tomcat-7.0.26
Использование CATALINA_TMPDIR: /opt/apache-tomcat-7.0.26/temp
Использование JRE_HOME: / usr
Используя CLASSPATH: /opt/apache-tomcat-7.0.26/bin/bootstrap.jar:
/opt/apache-tomcat-7.0.26/bin/tomcat-juli.jar
$ ./catalina.sh стоп

.................................................. ...................
$ sh catalina.sh start

Использование CATALINA_BASE: /opt/apache-tomcat-7.0.26
Использование CATALINA_HOME: / opt / apache-tomcat-7.0,26
Использование CATALINA_TMPDIR: /opt/apache-tomcat-7.0.26/temp
Использование JRE_HOME: / usr
Используя CLASSPATH: /opt/apache-tomcat-7.0.26/bin/bootstrap.jar:
/opt/apache-tomcat-7.0.26/bin/tomcat-juli.jar 

Рассмотрите возможность запуска типичной сети с протоколом передачи гипертекста (HTTP).
сервер. В Linux любой порт меньше 1024 считается
привилегированный порт , и только root может открывать привилегированные порты.
Поскольку веб-серверы по умолчанию работают на порту 80, root должен запустить
процесс.Однако, как уже отмечалось, небезопасно запускать службу как
пользователь root. Правильная процедура — запустить службу как
root, а затем передать его обычному пользователю или учетной записи службы.

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

Листинг 2 запускает компиляцию Apache 2 по умолчанию.
веб сервер. В процессе установки выполняется несколько действий, включая создание
apachectl исполняемый файл команды. Потому что это
процесс требует использования порта 80, он запускается с привилегиями пользователя root.
Однако команда ps показывает httpd
процессы выполняются под учетной записью пользователя apache .

Листинг 2. Запуск веб-сервера Apache
 # cd / usr / local / apache2 / bin
# apachectl start
#ps aux | grep httpd
Apache 23094 0.0 0,3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k начало
апач 23095 0,0 0,3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k начало
апач 23096 0,0 0,3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k начало
апач 23097 0,0 0,3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k начало
апач 23098 0,0 0,3 11784 1912? S 10:41 0:00 / usr / sbin / httpd -k start 

Запуск приложений в фоновом режиме

Некоторое установленное программное обеспечение может быть не таким удобным для пользователя, как веб-сайт Apache
сервер.Если вы не устраняете неполадки или не хотите точно видеть
что происходит с приложением, вы, вероятно, захотите запустить его в
фон после запуска процесса. Если вы этого не сделаете, приложение
завершается, когда оболочка закрывается. При запуске серверных сервисов это
нежелательное поведение для остановки службы каждый раз, когда вы закрываете
оболочки терминала или иным образом выйти из системы!

Если вы запускаете приложение в фоновом режиме, оно продолжает работать, даже если
вы закрываете окно оболочки.Вы можете запустить приложение в фоновом режиме
добавив амперсанд ( и ) в конце
команду выполнения. Например, вы можете открыть файл с помощью редактора vi
и запустите его в фоновом режиме с
vi / etc / sysconfig / network & команда
потому что и открывают / etc / sysconfig / network
файл и хранит его в фоновом режиме. Вы можете использовать
nohup утилита, позволяющая продолжить процесс
даже после выхода из системы.Например,
nohup vi / etc / sysconfig / сеть и .

Листинг 3 открывает файл для редактирования в редакторе Vim.
и помещает его на задний план.

Листинг 3. Запуск приложения в фоновом режиме
 # vi / etc / sysconfig / network &
[1] 24940
# вакансия
[1] + Остановлен vi / etc / sysconfig / network 

Вы можете ввести команду jobs , чтобы увидеть все
приложения, которые у вас запущены в фоновом режиме.Каждое задание, выполняющееся в
фону присваивается порядковый номер, начиная с 1. Заданию в
Листинг 3 — это работа номер 1.
24940 — это идентификатор процесса (PID). Вы можете принести
приложение на передний план с fg
команда и конкретный номер задания. В этом примере процесс не
используется пользователем, поэтому отображается как Остановлено .
Однако команда fg 1 открывает терминал
вернуться к активному процессу редактирования файла.

Запуск приложений с рабочего стола

Запуск приложений графического интерфейса пользователя (GUI) с рабочего стола в
Linux не сильно отличается от Windows. В основном вам нужно
понять, как приложения сгруппированы в меню в вашем конкретном
окружение рабочего стола. В Linux множество настольных приложений
доступны для различных задач. Некоторые из них являются родными для Linux, а другие могут быть
кроссплатформенные приложения, разработанные на C # с использованием общей среды выполнения
окружающая среда, точно так же.NET Framework приложений. Вы можете обнаружить, что вы
может даже запустить ваше любимое приложение Windows в Linux с помощью виртуального
среда, такая как вино.

Собственные приложения Linux

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

Для тех приложений, которым требуются привилегии root, вам будет предложено
перед продолжением введите пароль root. Это похоже на концепцию
параметр «Запуск от имени администратора» в Windows. Иначе,
все приложения, которые вы запускаете, находятся в пользовательском пространстве учетной записи, которую вы используете
вошли в систему.

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

На рисунке 1 показаны две программы запуска для Mozilla Firefox.
веб-браузер на рабочем столе GNOME. Один лаунчер расположен на панели,
а другой находится на рабочем столе.

Рисунок 1. Просмотр средств запуска на рабочем столе и панели

Mono

Многие приложения Windows разработаны с использованием .NET Framework. Моно это
реализация .NET с открытым исходным кодом, работающая на многих платформах,
включая Linux.Фактически, сайт Mono описывает его как
реализация C # и Common Language Runtime (CLR), которая является двоичной
совместим с .NET. В настоящее время проект поддерживается Xamarin.

В Linux вы выполняете приложения, разработанные с помощью платформы .NET (или
Mono) так же, как и в Windows. Однако помните о Linux
umask и права доступа к файлам по умолчанию. Ты все еще
необходимо предоставить разрешения на выполнение для файла, чтобы Linux разрешил
исполняемый файл для выполнения.

Некоторые кроссплатформенные приложения, разработанные на Mono, которые можно установить на
ваш рабочий стол Linux GNOME, например F-Spot, находится в меню с
родные приложения GNOME. F-Spot — это приложение с открытым исходным кодом для
управление фотографиями. Несмотря на то, что это приложение C #, оно выглядит как
родное приложение на рабочем столе GNOME. После создания лаунчера для
приложение, вы можете щелкнуть и запустить его, как в Windows.

На рисунке 2 показано расположение моноблоков на основе
приложение, F-Spot, и как вы можете создавать настольные или панельные пусковые установки для
Это.

Рисунок 2. Создание программы запуска для F-Spot

Wine

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

Когда вы используете Wine с Linux, у вас есть скрытая папка на главной странице вашей учетной записи.
каталог, имитирующий среду Windows, как в листинге 4.

Листинг 4. Скрытая папка Wine, эмулирующая среду Windows.
 $ cd /home/tbost/.wine/drive_c/windows
$ ls
cf8e.tmp
команда
explorer.exe
Шрифты
Помогите
hh.exe
инф
Установщик
ls.txt
Microsoft.NET
notepad.exe
pwd.txt
regedit.exe
rundll.exe
система
system32
system.ini
темп
twain_32.dll
twain.dll
winhelp.exe
winhlp32.exe
win.ini
winsxs 

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

Например, Camstudio — это инструмент с открытым исходным кодом для записи и управления
экран видео. В настоящее время нет выпуска для операционной системы Linux.
система. Однако, используя Wine, я установил версию для Windows на Linux.
рабочий стол. Приложения, связанные с Wine, обычно сгруппированы в
Приложения> Wine> Программы , как на рисунке 3.

Рисунок 3. Запуск приложения Windows в Linux с использованием Wine

Заключение

При управлении сервером Linux вы обязательно столкнетесь с программным обеспечением, которое
выполняется с рабочего стола и из командной строки.Когда ты понимаешь, как
установить соответствующие разрешения и учетные записи пользователей, вы можете безопасно
запустить эти приложения. С длительными процессами, такими как сервер
services, вы можете выполнить из командной строки и соответствующим образом установить в
фон. Если у вас есть приложения, предназначенные для запуска из
на рабочем столе, вы тоже можете это сделать — иногда даже приложения Windows!

Ресурсы для загрузки
Связанные темы

.

Подробное руководство по разработке Linux в Windows с WSL и кодом Visual Studio

Крейг

В предыдущем сообщении блога выведите свой опыт разработки под Linux на новый уровень с помощью подсистемы Windows для Linux (WSL) и Visual Studio. Code Remote, мы представили обзор VS Code Remote — расширения WSL, которое упрощает разработку Linux в подсистеме Windows в Linux (WSL). Наденьте акваланг, потому что в этом продолжении мы дадим вам подробное руководство о том, как настроить WSL и VS Code для разработки Python путем создания приложения Python «Hello World».

Windows: отличная платформа для создания приложений Linux

Windows — самая популярная операционная система в мире, ее ежедневно используют почти 50% разработчиков. В то же время многие из этих разработчиков создают приложения, которые развертываются на серверах на базе Linux, работающих в облаке или локально.

С помощью WSL и VS Code теперь вы можете легко разрабатывать приложения для Linux в Windows. WSL позволяет вам запускать полный дистрибутив Linux в Windows, где вы можете устанавливать специфичные для платформы инструментальные средства, утилиты и среды выполнения.

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

Если это звучит волшебно, то это потому, что это так! Но не верьте нам на слово. Давайте запачкаем руки и создадим простое приложение Python3, чтобы вы могли испытать магию на себе.

Установка и настройка WSL

WSL устанавливается из Microsoft Store. Вы можете выполнить поиск по запросу «Linux» в магазине Microsoft, чтобы увидеть подраздел дистрибутивов в магазине. Выберите дистрибутив Linux, который вы хотите установить, и следуйте инструкциям. Вы также можете искать дистрибутивы в строке поиска.

Выбрать Установить .

И когда закончите, выберите Launch , чтобы начать. Это откроет терминал Linux и завершит установку. Вам нужно будет создать идентификатор пользователя и пароль, поскольку мы настраиваем полный экземпляр Linux, но как только это будет сделано, бум! Вы используете Linux в Windows.

Разработка на Python

Если Python еще не установлен, выполните следующие команды, чтобы установить Python3 и pip, диспетчер пакетов для Python, в вашу установку Linux.

  sudo apt update
sudo apt install python3 python3-pip  

И для проверки запустите:

  python3 –version  

Это не предназначено для обучения Python, поэтому мы создадим каноническое приложение «Hello World». Создайте новую папку с именем «helloWorld», а затем добавьте файл Python, который будет печатать сообщение при запуске:

  mkdir helloWorld && cd helloWorld
echo 'print ("привет от python, работающего в Linux на windows!")' >> привет.ру
python3 hello.py  

Ясно, что echo — не лучший способ разработки. В удаленной среде Linux (этот дистрибутив WSL технически представляет собой другую машину без пользовательского интерфейса, которая просто запускается локально на вашем компьютере) ваши инструменты разработки и возможности довольно ограничены. Вы можете запустить Vim в терминале, чтобы отредактировать файл, или вы можете редактировать источники на стороне Windows с помощью монтирования \\ wsl $ :

Проблема с этой моделью заключается в том, что среда выполнения Python, pip или любой другой Пакеты conda в этом отношении не устанавливаются в Windows.

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

Что мы можем сделать? Здесь на помощь приходят Visual Studio Code и расширение Remote — WSL.

Visual Studio Code

VS Code — это легкий кроссплатформенный редактор исходного кода, основанный на открытом исходном коде.Он поставляется со встроенной поддержкой современной веб-разработки с использованием JavaScript, TypeScript, Node.js, CSS и т. Д. Он также имеет богатую экосистему расширений (более 10 тыс.), Обеспечивающих поддержку сотен языков и фреймворков, таких как Python, Go, PHP, Java, C ++ и C #.

Если у вас еще нет VS Code, загрузите его сейчас. Его размер составляет около 50 МБ для загрузки в Windows, и он устанавливается менее чем за минуту.

Теперь нам просто нужно волшебство, и это расширение Remote — WSL. Откройте представление «Расширения» в VS Code (Ctrl + Shift + X) и найдите «wsl».Выберите Remote — расширение WSL , как показано ниже (оно должно быть вверху списка), и нажмите Install .

После установки вернитесь к терминалу WSL, убедитесь, что вы находитесь в папке helloWorld, и введите «код». для запуска VS Code («.» указывает VS Code открыть текущую папку).

Первое, что вы увидите, это сообщение «Установка VS Code Server» (номер c7d83e57… — это версия VS Code Server, которая соответствует только что установленным клиентским инструментам).VS Code устанавливает небольшой сервер на стороне Linux, с которым будет разговаривать настольный VS Code.

Затем этот сервер будет устанавливать и размещать расширения в WSL, чтобы они работали в контексте инструментов и платформ, установленных в WSL. Другими словами, ваше расширение Python будет работать с Python, установленным в WSL, а не с тем, что установлено на стороне Windows, как это должно быть для правильной разработки.

Следующее, что происходит, это запуск VS Code и открытие папки helloWorld.Вы можете увидеть быстрое уведомление о том, что VS Code подключается к WSL, и вам может быть предложено разрешить доступ к серверу на основе Node.js.

Теперь, когда мы наводим курсор на hello.py, мы получаем правильный путь Linux.

Интегрированный терминал

Если это не убедит вас, что мы подключены к подсистеме Linux, запустите Терминал > Новый терминал (Ctrl + `), чтобы открыть новый экземпляр терминала.

Вы запустите новый экземпляр оболочки bash в WSL, опять же из VS Code, работающего в Windows.

Совет : В нижнем левом углу строки состояния вы можете увидеть, что мы подключены к нашему экземпляру WSL: Ubuntu .

Щелкните по нему, чтобы вызвать набор команд удаленного доступа — расширения WSL.

Щелкните hello.py, чтобы открыть его для редактирования. Нам предлагается то, что мы называем «важной» рекомендацией по расширению, в данном случае установить расширение Python, которое предоставит нам богатые возможности редактирования и отладки. Идите вперед и выберите Установить и перезагрузить, если будет предложено.

Чтобы убедиться, что расширение установлено в WSL, снова откройте представление Расширения (Ctrl + Shift + X). Вы увидите раздел под названием WSL — Установлено , и вы увидите все расширения, которые установлены на стороне WSL.

При перезагрузке вы также получите сообщение о том, что линтер pylint не установлен. Линтеры используются для выдачи нам ошибок и предупреждений в нашем исходном коде. Идите вперед и выберите Установить .

Теперь, когда вы редактируете свой код, вы получаете богатую раскраску и дополнения.

И когда вы сохраните файл (Ctrl + S), вы увидите ошибки линтинга и предупреждения в файле.

Отладка

Когда наши инструменты настроены, давайте сделаем еще один шаг вперед. Установите точку останова в строке 1 hello.py, щелкнув поле слева от номера строки или поместив курсор на строку и нажав F9.

Теперь нажмите F5, чтобы запустить приложение. Вас спросят, как запустить приложение, и поскольку это простой файл, просто выберите Python File .

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

Нажмите F10, чтобы перейти к шагу, и вы увидите вывод оператора печати в консоли отладки.

Вы получаете полный опыт разработки Visual Studio Code, используя экземпляр Linux, установленный в WSL.

Если вы хотите открыть другую папку в WSL, откройте меню Файл и выберите Открыть папку .Вы получите минимальный навигатор по файлам и папкам для файловой системы Linux, а не для файловой системы Windows.

Если вы хотите вернуться к Windows, выберите опцию Show Local , и вы получите стандартный диалог открытия файла Windows.

В заключение

Источник

Дополнительная информация

С WSL, VS Code и удаленным расширением WSL ваш компьютер с Windows станет отличным ящиком для разработки приложений Linux.Ваши инструменты работают в Windows, а ваше приложение работает там, где оно будет развернуто, в Linux.

Разработка под Linux не ограничивается WSL. Используя расширение Remote — SSH, вы можете работать с удаленными узлами SSH с такой же точностью, как показано здесь, и все это с рабочего стола Windows.

Для получения дополнительной информации ознакомьтесь со следующими ресурсами:

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

Удачного кодирования!

Это вторая часть нашей серии из трех статей.Вы можете найти полную серию здесь:

Craig Loewen

Program Manager, Windows Developer Platform

Follow

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *