Build linux program on windows

Как установить и использовать Linux в Windows 10

Данная инструкция посвящена Подсистеме Windows для Linux (WSL), которая позволяет устанавливать и запускать различные дистрибутивы Linux прямо в самой Windows.

Подсистема Windows для Linux, представленная в Anniversary Update, стала стабильной функцией Fall Creators Update. Теперь вы можете запускать в Windows Ubuntu и openSUSE, Fedora и Kali Linux, а также другие дистрибутивы Linux.

Что нужно знать о Подсистеме Windows для Linux (WSL)

Это не виртуальная машина, контейнер или программное обеспечение Linux, скомпилированное для Windows (например, Cygwin). Вместо этого Windows 10 предлагает полную подсистему Windows, предназначенную для Linux для запуска программного обеспечения Linux. Она основан на заброшенной работе Microsoft Project Astoria по запуску приложений Android в Windows.

Думайте об этом как о противоположности Wine. В то время как Wine позволяет запускать приложения Windows непосредственно в Linux, подсистема Windows для Linux позволяет запускать приложения Linux непосредственно в Windows.

Microsoft работала с Canonical, чтобы предложить полную среду оболочки Bash на основе Ubuntu, которая работает поверх этой подсистемы, а в настоящее время теперь можно запускать полноценные дистрибутивы Linux. Технически это вообще не Linux. Linux — это базовое ядро операционной системы, которое здесь недоступно. Вместо этого она позволяет запускать оболочку Bash и те же двоичные файлы, которые вы обычно запускаете в Ubuntu Linux. Сторонники свободного программного обеспечения часто утверждают, что среднюю операционную систему Linux следует называть «GNU/Linux», потому что на самом деле на ядре Linux работает множество программ GNU. Оболочка Bash, которую вы получите, на самом деле представляет собой все эти утилиты GNU и другое программное обеспечение.

Эта функция изначально называлась «Bash в Ubuntu в Windows», но она также позволяла запускать Zsh и другие оболочки командной строки. Теперь же она поддерживает и другие дистрибутивы Linux. Вы можете выбрать openSUSE Leap или SUSE Enterprise Server, Fedora или Kali Linux вместо Ubuntu.

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

Как установить Linux (Bash) в Windows 10

Эта функция не работает в 32-битной версии Windows 10, поэтому убедитесь, что вы используете 64-битную версию Windows. Всё равно пора перейти на 64-разрядную версию Windows 10, если вы используете 32-разрядную версию.

Предполагая, что у вас 64-битная Windows, для начала зайдите в Панель управления → Программы → Включение или отключение компонентов Windows.

Включите в списке опцию «Подсистема Windows для Linux» и нажмите кнопку «ОК».

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

Примечание. Начиная с Fall Creators Update, вам больше не нужно включать режим разработчика в приложении «Настройки», чтобы использовать эту функцию. Вам просто нужно установить его из окна функций Windows.

После перезагрузки компьютера откройте Microsoft Store из меню «Пуск».

И выполните поиск «Linux» в магазине. Выберите Debian или другой дистрибутив Linux из приложения Store.

Вы увидите список всех дистрибутивов Linux, доступных в настоящее время в Магазине Windows. Сюда входят Debian, Kali Linux, Ubuntu, openSUSE Leap и openSUSE Enterprise с обещанием скорого появления Fedora.

Читайте также:  Nitro pro для windows 10

Чтобы установить дистрибутив Linux, щёлкните его, а затем нажмите кнопку «Получить» или «Установить», чтобы установить его, как любое другое приложение Store.

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

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

Как использовать оболочку Bash и установить программное обеспечение для Linux

Теперь у вас есть полная оболочка командной строки bash на основе Debian или любого другого установленного вами дистрибутива Linux.

Поскольку это одни и те же двоичные файлы, вы можете использовать команду Debian apt или apt-get для установки программного обеспечения из репозиториев Debian, если вы используете Debian. Просто используйте любую команду, которую вы обычно используете в этом дистрибутиве Linux. У вас будет доступ ко всему программному обеспечению командной строки Linux, хотя некоторые приложения могут ещё работать не идеально.

Чтобы открыть установленную вами среду Linux, просто откройте меню «Пуск» и найдите установленный вами дистрибутив. Например, если вы установили Kali Linux, запустите ярлык Kali Linux.

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

При первом запуске среды Linux вам будет предложено ввести имя пользователя и пароль UNIX. Они необязательно должны совпадать с вашим именем пользователя и паролем Windows, но будут использоваться в среде Linux.

Например, если вы введёте «alex» и «zawindows» в качестве учётных данных, ваше имя пользователя в среде Linux будет «alex», а пароль, который вы используете в среде Linux, будет «zawindows» — независимо от вашего имени пользователя Windows и его пароля.

Вы можете запустить установленную среду Linux, выполнив команду wsl. Если у вас установлено несколько дистрибутивов Linux, вы можете выбрать среду Linux по умолчанию, запускаемую этой командой.

Если у вас установлена Kali Linux, вы также можете запустить команду kali, чтобы установить её. Для openSUSE Leap 42 используйте opensuse-42. Для SUSE Linux Enterprise Sever 12 используйте sles-12. Эти команды перечислены на странице каждого дистрибутива Linux в Магазине Windows.

Вы по-прежнему можете запустить среду Linux по умолчанию, выполнив команду bash, но Microsoft утверждает, что это устарело. Это означает, что команда bash может перестать работать в будущем.

Если у вас есть опыт использования оболочки Bash в Linux, Mac OS X или других платформах, вы будете как дома.

В Kali Linux и Ubuntu вам нужно добавить к команде префикс sudo, чтобы запустить её с правами root. Пользователь «root» на платформах UNIX имеет полный доступ к системе, как пользователь «Администратор» в Windows. Ваша файловая система Windows в среде оболочки Bash находится в /mnt/c.

Связанная статья: Что такое sudo

Используйте те же команды терминала Linux, которые вы использовали для передвижения. Если вы привыкли к стандартной командной строке Windows с её командами DOS, вот несколько основных команд, общих для Bash и Windows:

  • Изменить каталог: cd в Bash, cd или chdir в DOS
  • Список содержимого каталога: ls в Bash, dir в DOS
  • Перемещение или переименование файла: mv в Bash, move и rename в DOS
  • Скопировать файл: cp в Bash, copy в DOS
  • Удалить файл: rm в Bash, del или erase в DOS
  • Создайте каталог: mkdir в Bash, mkdir в DOS
  • Используйте текстовый редактор: vi или nano в Bash, edit в DOS
Читайте также:  Установка сервера mac os

Связанная статья: Азы работы в командной строке Linux (часть 1), а также последующе части

Важно помнить, что, в отличие от Windows, оболочка Bash и её среда, имитирующая Linux, чувствительны к регистру. Другими словами, «File.txt» с большой буквы отличается от «file.txt» без заглавной буквы.

Дополнительные инструкции смотрите в серии наших руководств Азы работы в командной строке Linux для начинающих.

Вам нужно будет использовать команду apt для установки и обновления программного обеспечения среды Debian, Kali Linux, Ubuntu. Не забудьте указать перед этими командами префикс sudo, чтобы они запускались от имени пользователя root — Linux-эквивалента Администратора. Вот команды apt, которые вам нужно знать:

Загрузить обновлённую информацию о доступных пакетах:

Установитm пакет приложения (замените «ИМЯ-ПАКЕТА» на имя пакета):

Удаление пакета приложения (замените «ИМЯ-ПАКЕТА» на имя пакета):

Поиск доступных пакетов (замените СЛОВО словом, по которому нужно искать пакеты в именах и описаниях):

Загрузите и установите последние версии установленных пакетов:

Если вы установили дистрибутив SUSE Linux, вместо этого вы можете использовать команду zypper для установки программного обеспечения.

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

Программное обеспечение, устанавливаемое в оболочке Bash, ограничено оболочкой Bash. Вы можете получить доступ к этим программам из командной строки, PowerShell или где-либо ещё в Windows, но только если вы запустите команду bash -c.

How to Compile Linux Programs Under Windows with Cygwin

Windows and Linux are two very different systems, and as such, it often isn’t easy to port programs written for one to the other, especially when dealing with GUI programs. Although there are many different cross-platform libraries and SDKs, native programs written without portability in mind are quite hard to port.

When it comes to compiling and running programs written for Linux on Windows, there is a solution known as Cygwin. The Cygwin project is a collection of the most common tools and compilers (including the bash shell and the GNU compiler chain) for Windows. It also includes a library that provides a compatibility layer so that programs which call Linux specific APIs can be compiled. Cygwin isn’t an emulator or virtual machine, and it doesn’t allow Linux binaries to run on Windows without first being re-compiled.

Visit the Cygwin installation page and download the 32-bit or 64-bit setup executable (depending on which variant of Windows you are using). Execute the setup program. Click Next and Next again (to “Install from Internet”). The default directory is “C:\cygwin”. It can be changed if needed, but unless you have a specific reason to change it, the default is best. Click Next, Next and Next again.

The Cygwin project has mirror sites all over the world; pick one which you think will best serve your location and click Next. You now need to pick which packages to install. To compile simple Linux programs in Windows, you will need the GNU Compiler Chain (GCC) which provides a C and C++ compiler.

Type “gcc” in the search box and then click in the small plus sign next to “Devel” in the list of packages. Find “gcc-core” and “gcc-g++” and click “Skip” for each one. The word “Skip” will change into a version number and the “n/a” sign in the “Bin?” column will turn into a checked box. Type “make” in the search box and find “make” under “Devel.” Click “Skip” to mark it for install. Search for “wget” and also mark it for install from “Web.” To build the example below, we will also need “libiconv;” search for it and mark it for install.

Читайте также:  Расплывчатые окна windows 10

Click Next. The installer will then see what other packages need to be installed to resolve any dependencies. Click Next to accept the recommendations.

Once all the packages have been downloaded and installed, follow the last steps until the installer exits. Start the “Cygwin Terminal” to enter into the Linux-like development environment. In the terminal you don’t use Windows commands like “dir” but rather shell commands like “ls”.

To demonstrate how to compile a Linux program under Windows, we will use the HTML-XML package from the W3. For a look at what it can do, see How to Manipulate HTML and XML Files from the Command Line.

Download the source files using “wget”:

Now unpack the archive file:

The source files are now in the “html-xml-utils-6.7” directory. Enter that directory:

Before the files can be built, you need to run the “configure” shell script to generate the Makefile (the build instructions) which are suitable for this build environment. This is a common step on Linux (and Cygwin) when building packages from source.

Once “configure” has finished, you can start the build using “make”:

The build will fail part way through. I was in two minds about what to do next. Either I could switch to another project and build that from its source or battle on with the HTML-XML-utils. I opted for the latter as it shows that not everything will be a walk-in-the-park when trying to compile Linux programs under Cygwin. The solution to this particular problem is simple. The error message shows that the linker is unable to find the “iconv” library. A quick look at the link command shows that the library isn’t specified. The quick and dirty solution is to run the command manually and tell the linker to use libconv. The “proper” way to fix this would be to start delving into the Makefile etc. to find out why it isn’t working.

Run the following command, noting the inclusion of “-liconv” at the end:

Once the “hxindex.exe” file is built, you can continue with the rest of the build by typing “make” again. The way “make” works is it checks what has and has not been built, and then it continues the build process at the appropriate point. Since we have manually built “hxindex.exe”, “make” just carries on with the next binary in its list.

When “make” completes, you will have all the .exe files in the html-xml-utils-6.7 directory.

If you get stuck using Cygwin you should look at the FAQ, and at the documentation. Failing that, the project has a set of mailing lists. If you have any problems with the steps described above, then please use the comments section below.

Gary has been a technical writer, author and blogger since 2003. He is an expert in open source systems (including Linux), system administration, system security and networking protocols. He also knows several programming languages, as he was previously a software engineer for 10 years. He has a Bachelor of Science in business information systems from a UK University.

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