- Устанавливаем Windows 10. Необходима сборка (build) 14942 и выше (узнать можно, выполнив команду
winver
). Если установлена более старая сборка:Settings > Update & Security > Windows Insider Program
(подключаемся к программе, нужен аккаунт Microsoft).- Попросит перезагрузиться ( у меня пару раз просил, только потом раздуплился ), после чего появится переключатель
Choose your insider level
- выбираемFast
. - Идём в
Settings > Update & Security > Windows Updates > Check for update
. Смотрим, нашёл ли он обновление до новой сборки (этот шаг у меня занял сутки. Microsoft раздуплился только на следующий день и выдал мне обновление). - После того, как будет установлена нужная сборка, можно отключить Windows Insider Program, либо поставить переключалку с
Fast
наSlow
, дабы что-нибудь внезапно не сломалось.
- Включаем режим разработчика:
Settings > Update & Security > For developers > Developer mode
. Он необходим для включения подсистемы Linux. - В этом же окне, в поиске набираем
Windows features
, идём вTurn Windows features on or off
. - Выбираем
Windows Subsystem for Linux > Ok
. - Запускаем команду:
bash
. Система задаст несколько вопросов:
- хотим ли мы установить т.н. "Ubuntu on Windows" - соглашаемся (в Microsoft говорят, что в последних сборках устанавливается чистенькая Ubuntu 16.04)
- имя пользователя UNIX (не должно совпадать с пользователем Windows)
- пароль (дважды)
- Установка
Windows Subsystem for Linux
завершена.
Если оболочка bash
запускается от пользователя root
, сразу делаем sudo -iu USERNAME
, где USERNAME
- имя пользователя UNIX, которое было задано при установке (по тексту будет использоваться USERNAME
- deploy
). Все инструкции далее выполняются от имени созданного пользователя (не root
).
- Запускаем
bash
и обновляемся:
sudo apt-get update
sudo apt-get upgrade
- Если при переключении пользователя (или других командах) выдается сообщение
unable to resolve host
, выполняем команду:
sudo sed -i "2 i 127.0.0.1 $(hostname)" /etc/hosts
- Устанавливаем необходимые пакеты.
sudo apt-get install vim git curl wget libsqlite3-dev zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev libqt4-dev pkg-config postgresql-client libpq5 libpq-dev python ansible python-software-properties
Во время установки процесс может прерваться и попросить выполнить sudo apt-get install -f
- это нормально, смело выполняем данную команду.
4. Устанавливаем ruby ( rbenv ):
cd ~
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
cd ~/.rbenv && src/configure && make -C src
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
- Закрываем оболочку
bash
и запускаем её заново. Не забываем сменить пользователя. - Устанавливаем ruby, например:
rbenv install 2.3.1
- При необходимости устанавливаем NVM + Node
- Postgresql устанавливаем на Windows.
- Redis можно установить как
sudo apt-get install redis-server redis-tools
под WSL, запуск:sudo service redis-server start
, работает стабильно. - Также необходимо добавить следующие строки в файл
~/.bashrc
:
if [ -z "$(pgrep ssh-agent)" ]; then
rm -rf /tmp/ssh-*
eval $(ssh-agent -s) > /dev/null
else
export SSH_AGENT_PID=$(pgrep ssh-agent)
export SSH_AUTH_SOCK=$(find /tmp/ssh-* -name agent.*)
fi
if [ "$(ssh-add -l)" == "The agent has no identities." ]; then
ssh-add
fi
В указанной версии (14942) починили баг, из-за которого не работает spring ( работает только со --skip-spring ). Поэтому лучше обновиться, после чего начинать спокойно работать :-)
Диски Windows доступны из WSL: /mnt/<drive>/
, например /mnt/c/
- диск С:. Т.е. для работы можно выделить каталог Windows (для удобного доступа из IDE).