Оболочку рабочего стола Ubuntu Unity запустили в среде Windows 10

5138367238b620c035601c12040e9066.jpg

Компания Canonical, отвечающая за разработку Ubuntu и корпорация Microsoft в начале этого года объявили о включении bash и основного инструментария Ubuntu в Windows 10. Знакомство с новыми возможностями Windows 10 с элементами Ubuntu можно было начать еще в апреле, начиная с обновления 14316. В этом обновлении к Windows 10 добавили WSL-прослойку, которая транслирует системные вызовы Linux в системные вызовы Windows. В результате в среде Windows стало возможным развернуть полноценный инструментарий Ubuntu Linux без эмуляции и виртуализации. Окончательная интеграция будет выполнена с выходом Anniversary Update в августе.

В апреле этого года специалисты научились запускать и десктопные приложения Ubuntu с графическим интерфейсом в среде Windows 10. Пользователь Reddit с ником w2qw нашел способ установить VIM и Firefox. Сейчас пользователь Github с ником Guerra24 смог запустить в среде Windows оболочку рабочего стола Ubunu Unity.

Для успешного запуска требуется выполнить несколько шагов. Дело в том, что X-серверы вроде vcxsrv или Xming в среде Windows 10 работают без особых проблем. Но большинству приложений для работы необходим сервис dbus, который по умолчанию не работает. Из-за этого десктопные приложения вроде Firefox или virt-manager, запущенные в подсистеме Linux, «падают» уже при запуске или через короткое время после запуска. Напрямую не работает и Unity — оболочке тоже требуется dbus.

Юзеру ShaRose с Reddit удалось «завести» dbus без особых проблем. Изначально ему (или ей) захотелось попробовать установить virt-manager, чтобы получить возможность администрировать qemu-сервера в среде Windows без необходимости работы с виртуальной машины. И сервер dbus, который требуется для работы virt-manager, удалось запустить без особых проблем.

Для установки нужна «чистая» Windows 10 с интегрированным инструментарием Ubuntu. Если все это уже имеется, необходимо выполнить всего три шага:

1. Устанавливаем X-сервер. И vcxsrv, и Xming работают нормально.

2. Добавляем DISPLAY=:0.0 к bashrc: Это можно сделать следующим образом:

echo «export DISPLAY=:0.0» >> ~/.bashrc

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

3. Теперь чиним dbus. Проблема с dbus в том, что для работы здесь требуются unix-сокеты, которые bash для Windows пока не поддерживает. Поэтому все, что нужно — «объяснить» dbus, как работать с tcp.

Сделать этого довольно просто. В /etc/dbus-1/session.conf заменяем unix: tmpdir=/tmp строкой tcp: host=localhost, port=0. Вот и все.

Для этого выполняем такую команду:

sudo sed -i 's/.*/tcp: host=localhost, port=0/' /etc/dbus-1/session.conf

Firefox и virt-manager работают отлично. Chrome, к сожалению нет. Но самое главное — теперь можно приступить к установке Unity в WSL.

Сразу Unity работать не будет, необходимо установить ccsm (CompizConfig Settings Manager), а затем запустить VcXsrv, используя XLaunch (сейчас это единственный X сервер, работающий с Unity). После запуска в появившемся окне заменяем номер дисплея на 0. Все остальные установки оставляем по умолчанию.

Теперь запускаем ccsm, где активируем плагин Unity. При выводе меню пользователь увидит несколько опций, нужно выбрать Copy to Texture plugin. После этого в нижней части настроек Window Management активируем все плагины кроме одного — Grid. Этот плагин должен быть неактивен.

Теперь выходим из ccsm, а в bash запускаем compiz. Будут показаны несколько сообщений об ошибках, но Unity должна загрузиться нормально.

990ff9832d3e15d0666a84783c516e86.jpg
Это еще Windows или уже Ubuntu?

В этой среде можно будет запускать только программы, иконки которых есть на панели. Запустить командную строку в Unity нельзя, поэтому снова открываем bash в Windows, повторяем операцию с дисплеем и запускаем gnome-terminal. Теперь появляется иконка командной строки, и ее можно использовать.

6b1cf745a5ee52ebdc6724a6250b7eaa.png

Кроме Unity можно запустить и xfce4. В этом случае требуется выполнить только первый этап по «ремонту» dbus, второй этап относится только к Unity, здесь он не нужен. После того, как в среде Windows начинает нормально работать dbus, можно запустить xfce4, хотя работает оболочка не слишком стабильно.

Комментарии (7)

  • 10 июля 2016 в 23:03 (комментарий был изменён)

    0

    > X-серверы вроде vcxsrv или Xming в среде Windows 10 нормально использовать нельзя

    > И vcxsrv, и Xming работают нормально.

    ???

    И что такое «dbux»? Я сначала было подумал что опечатка, но оно раза три в тексте встречается.

    • 10 июля 2016 в 23:07

      0

      Да, после того, как «чинят» dbux, все работает без проблем.
      • 10 июля 2016 в 23:11

        0

        То есть vcxsrv или Xming в среде Windows 10 работают без проблем, не работают многие другие приложения из-за отсутствия по умолчанию dbus. Спасибо.
  • 11 июля 2016 в 00:00

    +1

    Лучше наоборот: запускать вендовые проги под вайном, когда оно надо.
  • 11 июля 2016 в 00:16

    +1

    Дождемся когда поддержку unix-сокетов запилят в этой WSL? :)
    Или RAW-сокеты заработают…

    Для чего этот WSL предлагается использовать. Запускать docker контейнеры и все?

  • 11 июля 2016 в 00:17

    +2

    Я еще когда в школе учился, coLinux запускали на шиндовз, с окошечками.
    • 11 июля 2016 в 00:41

      +1

      Жаль он не появился x64. Хорошая была штука.

© Habrahabr.ru