Все включено: терминал, Docker, Anaconda, Git, Jupyter Lab, поддержка GPU,…

Что такое WSL и зачем он нужен?

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

Это заканчивается сегодня установкой полноценной среды разработки Linux прямо поверх предположительно глупой Windows (10/11) с использованием подсистемы Windows для Linux 2 (WSL2).

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

Как инженер по машинному обучению или специалист по данным, вы получите значительную выгоду от среды Linux. Вам будет намного проще устанавливать и работать с такими технологиями, как TensorFlow, PyTorch или Docker, поскольку Linux более плавно использует системные ресурсы, особенно графические процессоры.

К концу этого руководства у вас будет полноценная среда Linux со следующим:

  • Индивидуальный терминал
  • VSCode и PyCharm, настроенные как IDE, использующие ваши настройки Windows
  • Установлены Git, Anaconda, Python и Docker.
  • Jupyter Lab с лучшими расширениями
  • Драйверы графического процессора NVIDIA для CUDA и cuDNN, чтобы вы могли устанавливать библиотеки графического процессора с помощью одного оператора pip.

Давайте прямо в это!

1. Удалите существующую установку (необязательно)

Даже если у вас установлен WSL, я рекомендую начать с нуля, потому что вы могли повредить свою среду, что может помешать нам реализовать некоторые из следующих шагов.

Ваш дистрибутив может называться по-другому (Debian, Kali и т. д.)

2. Установите Docker Desktop, если вы еще этого не сделали

Убедитесь, что у вас установлен Docker Desktop в Windows, запустив docker --version. Если версия не распечатывается, перейдите на эту страницу установки Docker и загрузите/запустите исполняемый файл.

3. Проверьте предварительные условия

Для WSL2 требуется Windows 10, сборка ОС 19041 или выше или Windows 11. Пожалуйста, проверьте, перейдя в «Настройки» > «Система» > «О программе» и прокрутив вниз до спецификаций Windows.

4. Как установить WSL2

Если предварительные условия соблюдены, вам потребуется одна команда для установки WSL2:

wsl --install -d Ubuntu

Запустите приведенную выше команду в командной строке (CMD), которая была открыта с правами администратора (щелкните правой кнопкой мыши и выберите «Запуск от имени администратора»).

Тег -d команды wsl указывает дистрибутив Ubuntu, с которого проще всего начать. Чтобы проверить, прошла ли установка успешно, запустите команду wsl -l -v, чтобы увидеть версию.

$ wsl -l -v
  NAME                   STATE           VERSION
* Ubuntu                 Running         2

5. Настройте имя пользователя и учетную запись

После завершения установки вы увидите приложение Ubuntu в меню «Пуск».

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

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

В оставшейся части руководства мы будем использовать терминалы Windows и WSL2. Я буду называть их CMD для Windows и терминалом для WSL2.

6. Как обновлять и обновлять пакеты на WSL2

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

sudo apt update && sudo apt upgrade

Эти команды аналогичны Центру обновления Windows, но намного быстрее. Команда update загружает новые изменения библиотеки/пакета, а команда upgrade их реализует.

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

7. Понимание файловой системы в WSL2

Операционная система состоит из файлов/приложений и графических пользовательских интерфейсов для взаимодействия с ними. В Windows вы использовали как CMD, так и File Explorer. В WSL2 вы в основном будете использовать терминал для взаимодействия со всем.

WSL2 не поставляется с графическим интерфейсом (Windows 11 теперь поставляется с графическим интерфейсом, проверьте здесь). Поначалу это может показаться ограничением, но работа через терминал намного быстрее, предлагает гибкость и делает вас похожим на хакера.

WSL2 можно рассматривать как файловую систему Linux, установленную поверх Windows. Папка его установки находится по сетевому пути \\wsl$\Ubuntu. Чтобы открыть его в терминале, введите cd /. Вы увидите много каталогов, когда запустите ls, в котором перечислено их содержимое.

Нас интересуют только два из них: home и mnt. home содержит информацию о вашей учетной записи пользователя. Прямо сейчас в нем есть только один каталог, названный под вашим именем пользователя UNIX (у меня /home/bexgboost). Каждый раз, когда вы запускаете новый сеанс терминала, путь устанавливается к этой папке. Вот почему /home/username называется домашним каталогом.

Косая черта / в начале важна.

Когда вы меняете каталоги, вы можете вернуться домой, вызвав cd без аргументов, или сослаться на него с помощью ~.

Папка /mnt содержит ссылки на диски C и D Windows. До WSL я хранил свои проекты и код на рабочем столе. Вот команда, чтобы скопировать их домой:

cp /mnt/users/bex/Desktop/* .

cp означает «копия». bex — это мое имя пользователя Windows.

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

8. Как установить Visual Studio Code для WSL2

Если у вас установлен VSCode в Windows, вы можете использовать его для открытия любой папки WSL2. Вам нужно только установить расширение Remote Extension Development Pack.

Затем перейдите в терминал и обновите/обновите пакеты. Затем перейдите в любой каталог и запустите code ., чтобы открыть проект VSCode для папки.

Использование проектов Windows VSCode для WSL2 позволяет вам делиться настройками и темами VSCode.

9. Как установить и настроить Git для WSL2

git уже предустановлен в WSL2 (если нет, запустите sudo apt-get install git).

Настройте свои учетные данные git, выполнив следующие команды:

Затем в CMD запустите git update-git-for-windows. Затем на терминале Ubuntu выполните следующую команду:

git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager-core.exe"

Это настраивает Git Credentials Manager (GCM), чтобы вы могли отправлять коммиты в удаленные репозитории без ошибок.

10. Как установить Docker для WSL2

Этот шаг прост, так как мы уже установили Docker в начале. Чтобы связать Docker Desktop с WSL2, перейдите в Docker Desktop › Настройки › Ресурсы › Интеграция с WSL и включите кнопку Ubuntu. Затем нажмите «Применить» и перезапустите терминал, чтобы изменения вступили в силу.

После этого вы сможете успешно запустить docker --version на терминале WSL2.



11. Как установить Anaconda на WSL2

Я предпочитаю Anaconda для версий Python и управления пакетами. (Перейдите к концу этого шага, чтобы увидеть обычную установку Python без Anaconda).

Первый шаг — перейти на страницу https://www.anaconda.com/products/distribution.

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

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

Введите wget и вставьте ссылку для скачивания рядом с ним (выполните этот шаг в домашнем каталоге). Вот как выглядит ссылка для скачивания, которую я скопировал:

$ wget https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-x86_64.sh

wget — отличный инструмент командной строки для загрузки любого файла с URL-адресом. Приведенная выше команда загрузит файл с именем Anaconda3-2022.10-Linux-x86_64.sh.

Чтобы установить файл, используйте команду bash с именем файла и следуйте инструкциям:

$ bash Anaconda3-2022.10-Linux-x86_64.sh

Для проверки установки можно запустить conda --version или which python:

$ conda --version
conda 22.9.0

$ which python
/home/bexgboost/anaconda3/bin/python

Вывод показывает, что Anaconda установлена ​​в домашнем каталоге anaconda3. Все будущие среды и пакеты будут храниться там.

После установки удалите исполняемый файл Anaconda:

$ rm -rf Anaconda3-2022.10-Linux-x86_64.sh

Если вы не хотите использовать Anaconda, вот как установить Python, pip и venv:

$ sudo apt update && upgrade
$ sudo apt install python3 python3-pip python3-venv ipython3

12. Как установить Jupyter Lab на WSL2

Теперь самое приятное — установить Jupyter Lab, жемчужину среди IDE для специалистов по данным. В базовой среде запустите pip install jupyterlab.

Установка Jupyter Lab и его расширений в базовой среде сделает их доступными для всех будущих сред conda и не потребует отдельной настройки.

Чтобы открыть сеанс Jupyter Lab, запустите jupyter lab --no-browser в нужном каталоге. Чтобы открыть сессию в браузере, необходимо скопировать ссылку на сессию с токеном внизу.

Когда вы запустите Jupyter Lab, вы увидите, что ни одна из ваших сред conda не будет доступна в Launcher. Чтобы добавить существующие (или новые) среды conda в Jupyter Lab, используйте следующие команды:

# Create a new env
$ conda create -n new_env -y

# Install ipykernel and add the env
$ pip install ipykernel
$ ipython kernel install --user --name=new_env

После перезапуска сеанса Jupyter Lab env будет доступен в Launcher.

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

$ jupyter kernelspec uninstall env_name

13. Как установить проверку орфографии и форматирование кода для Jupyter Lab (необязательно)

Два моих любимых расширения для Jupyter Lab — это проверка орфографии и средство форматирования кода. Чтобы установить их, выполните следующие команды в базовой среде:

pip install jupyterlab-spellchecker
pip install jupyterlab-code-formatter
pip install black isort

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

14. Как отформатировать терминал WSL2 (необязательно)

Прямо сейчас терминал Ubuntu выглядит очень уродливо:

У вас может быть хуже, чем у меня, так как я уже кое-что починил. Чтобы отформатировать приглашение терминала, откройте домашний каталог с VSCode, набрав code ~, и откройте файл с именем .bashrc.

Прокрутите файл до конца и вставьте код из этой сути. В строке 1 замените WSL2 Bash тем, что вы хотите для плитки окна, а в строке 4, где написано bash@bexgboost, замените bexgboost своим именем пользователя.

Сохраните/закройте файл и закройте VSCode. Чтобы применить изменения, запустите source .bashrc в корневом каталоге:

Как видите, новая подсказка выглядит намного симпатичнее. Он показывает путь, имя подсказки и имя ветки git разными цветами и всегда начинает подсказку с новой строки.

Глядя в конец описания, вы увидите, что я добавил несколько псевдонимов для наиболее часто используемых команд. Например, g — это сокращение от git, jl — от jupyter lab --no-browser, gcb — для создания новой ветки и ее проверки и так далее. Вы всегда можете отредактировать файл .bashrc, добавив собственные псевдонимы.

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

15. Как добавить терминал WSL2 Linux в качестве встроенного терминала PyCharm (необязательно)

Моя любимая IDE после Jupyter Lab — PyCharm Professional. Поскольку PyCharm устанавливается только в Windows, он связан с CMD или Git Bash для встроенного терминала.

Чтобы использовать терминал WSL2 Ubuntu, перейдите в «Настройки» > «Инструменты» > «Терминал» > «Путь к оболочке» и вставьте wsl.exe --distribution Ubuntu. Затем закройте все вкладки терминала и снова откройте их, чтобы терминал Ubuntu был связан с PyCharm.

Затем, чтобы открыть любую папку WSL2 как проект PyCharm, откройте эту папку с помощью explorer.exe . и выберите параметр «Открыть папку как проект PyCharm» в контекстном меню. PyCharm по умолчанию поддерживает WSL2 в Windows и распознает его папки.

16. Как установить драйвера NVIDIA CUDA и cuDNN на WSL2 (работает 100%)

Последним и самым сложным шагом является установка поддержки GPU для WSL2. Чтобы этот шаг работал, у вас уже должны быть установлены драйверы CUDA и cuDNN для вашего графического процессора NVIDIA, и вы должны иметь возможность запускать такие библиотеки, как TensorFlow, с поддержкой графического процессора без каких-либо ошибок.

Если вы не можете запустить TensorFlow с графическим процессором в Windows, сначала следуйте этой статье, которую я написал для установки TensorFlow с поддержкой графического процессора:



Руководство научит вас устанавливать драйверы/библиотеки CUDA 11.2 и cuDNN 8.1 в вашей системе Windows. Мы выбираем версии 11.2 и 8.1 для CUDA и cuDNN, потому что они необходимы для TensorFlow v. 2.6+. После выполнения руководства откройте терминал Ubuntu и обновите/обновите:

$ sudo apt update && sudo apt upgrade

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

Этим командам потребуется некоторое время для установки драйверов CUDA. Теперь о драйверах cuDNN:

$ sudo apt-get install libcudnn8
$ sudo apt-get install libcudnn8-dev
$ sudo apt-get update && sudo apt-get upgrade

Наконец, выполните приведенные ниже команды, чтобы очистить корневой каталог, потому что мы загрузили некоторые файлы:

$ rm -rf cuda-keyring_1.0-1_all.deb
$ rm -rf cuda-repo-wsl-ubuntu-11-2-local_11.2.0-1_amd64.deb
$ rm -rf cuda_11.2.0_460.27.04_linux.run

Чтобы убедиться, что поддержка графического процессора работает правильно, установите TensorFlow 2.10 внутри нового окружения conda. Вот команды:

$ conda create -n tf python=3.9 -y
$ conda activate tf
$ pip install tensorflow==2.10
$ python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"

Если вы получите [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')], выводите, поздравляем! У вас есть полноценная среда Linux с поддержкой графического процессора!

Заключение

Если в прошлом вы хотели запустить Linux внутри Windows, вам приходилось использовать сложные технологии, такие как VirtualMachine или Vagrant, которые заставляли вас ненавидеть как Linux, так и Windows и в конечном итоге заставляли вас покупать дорогой Mac (который, возможно, того стоил, говорят они). ). Теперь вы можете получить двойные преимущества Windows и Linux с помощью одной команды с подсистемой Windows Linux (WSL2).

Спасибо за чтение!

Понравилась эта статья и, скажем прямо, ее причудливый стиль написания? Представьте себе, что у вас есть доступ к десяткам таких же, написанных блестящим, обаятельным, остроумным автором (кстати, это я :).

Всего за 4,99 $ членства вы получите доступ не только к моим историям, но и к сокровищнице знаний от лучших и самых ярких умов на Medium. А если вы воспользуетесь моей реферальной ссылкой, то получите мою сверхновую благодарность и виртуальную пятерку за поддержку моей работы.



Полезные ресурсы: