YouTube
Promo
banner
Promo
banner

Могу ли я создать Linux / MacOS-подобную установку разработчика Ethereum в Windows ?: Руководство по настройке подсистемы Windows для Linux

блог 1НовостиДля разработчиковПредприятиеБлокчейн РазъяснениеМероприятия и конференцииПрессаИнформационные бюллетени

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

Адрес электронной почты

Мы уважаем вашу конфиденциальность

ГлавнаяБлогДля разработчиков

Могу ли я создать Linux / MacOS-подобную установку разработчика Ethereum в Windows ?: Руководство по настройке подсистемы Windows для Linux

Пошаговые инструкции по использованию WSL 2 для настройки среды разработки смарт-контрактов Ethereum и рабочего процесса от Томаса Хей 18 ноября 2020 г.Опубликовано 18 ноября 2020 г.

блокчейн

В ConsenSys Academy мы попросили всех участников программы для разработчиков с самого начала загрузить Virtual Box и Ubuntu. Наша цель – обеспечить единообразие взаимодействия с пользователем при настройке локальной среды разработки у каждого студента. Независимо от их родной операционной системы (ОС) у всех будет Ubuntu и они смогут запускать одно и то же программное обеспечение. Теоретически это хорошая идея. На практике мы работали со студентами, чтобы решить проблемы, связанные с доступной памятью на их машинах, чтобы эта работа работала. Почти всегда пользователи Mac будут продолжать без загрузки Ubuntu из-за того, что MacOS является системой на основе Unix. Пользователи Windows часто разочаровываются, так как они не могли использовать инструменты разработки, следуя инструкциям, которые мы рекомендуем для их родной ОС, и если они хотели запустить все в Windows, им пришлось следовать вместе с набором инструкций, аналогичных инструкциям для Linux и пользователи MacOS. 

Мы следили за развитием подсистемы Windows для Linux (WSL). Запуск WSL 2 совпал с вопросами нашей текущей когорты студентов Bootcamp о том, могут ли они использовать WSL 2 вместо загрузки Virtual Box. Я чувствовал, что пришло время уделить больше внимания тому, как использовать WSL 2, чтобы предоставить пользователям Windows опыт разработки Linux-подобный при использовании инструментов Ethereum, которые мы рекомендуем. В этой статье мы поделимся с вами некоторыми особенностями, с которыми мы столкнулись при использовании WSL 2 для настройки среды разработки Ethereum (например, что вам нужно сделать, чтобы использовать трюфель команды). 

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

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

Использование WSL 2 для настройки среды разработки Ethereum

Шаг 1. Загрузка WSL 2

TL; DR; Windows действительно хорошо проведет вас по инструкциям по установке WSL 2 на ваш компьютер. «Подсистема Windows для Linux Руководство по установке для Windows 10»- это исчерпывающая статья, поскольку она соответствует названию и дает советы по устранению неполадок. Мы также обнаружили, что просмотр, начиная с 8:24 WSL2: Кодируйте быстрее в подсистеме Windows для Linux! | Вкладки против пробелов видео дает дополнительный контекст о том, как включить WSL через графический интерфейс пользователя (GUI), а не через командную строку (или PowerShell). Возможно, вам придется перезагружать компьютер несколько раз, и в некоторых случаях, в зависимости от оборудования, установленного на вашем компьютере, это может занять некоторое время. Я был бы готов выделить полдня в худшем случае, просто чтобы оправдать ваши ожидания в отношении всех установок, которые вы собираетесь выполнить..

На шаге 6 вышеупомянутая статья, Я выбрал установку Ubuntu 20.04 LTS, поскольку мне было удобнее всего использовать этот дистрибутив по сравнению с другими перечисленными. Я попытался установить Ubuntu по предоставленной ссылке на магазин Windows, доступ к которому был открыт через мой веб-браузер, но затем моя машина с Windows предложила мне установить с помощью встроенного приложения Microsoft Store..

Я также установил Терминал Windows, что было необязательно. Я сделал это после того, как совершил кучу ошибок, которые вы увидите на шаге 3. Вместо того, чтобы продолжать «идти своим путем», я решил последовать тому, что мне говорила Microsoft. Преимущество Windows Terminal заключается в том, что в окне терминала вы можете открывать несколько вкладок терминала различных операционных систем..

Шаг 2: запуск WSL 2 вместе с VSCode

Мы предлагаем вам использовать ту среду IDE, которая вам удобнее всего. Лично я использую VSCode, поэтому я хотел выяснить, как я могу использовать VSCode вместе с WSL 2. У меня уже установлен VSCode, поэтому, если он у вас не установлен, продолжайте и устанавливайте его. Затем, чтобы запустить его вместе с Ubuntu, я нашел ответ на 5:31 видеоролика о WSL, созданного Microsoft.

Используя команду:

код. 

автоматически загружается, устанавливается и запускается VSCode, но я обнаружил, что мои расширения, которые я использую для написания смарт-контрактов, не устанавливаются автоматически.

Просто щелкните зеленый текст, установленный в WSL: Ubuntu. VSCode также предложил мне установить некоторые дополнительные библиотеки через терминал в VSCode и попросил ввести мой пароль для моего дистрибутива Linux (это Ubuntu 20.04 LTS).

Есть более длинный учебник под названием Начните использовать Visual Studio Code для подсистемы Windows для Linux это более подробное руководство, если вы еще не установили VSCode. С этого момента я проделал все следующие шаги внутри терминала VSCode, который теперь был настроен как оболочка bash..

Шаг 3. Установите nvm, Node и npm

Перед установкой таких инструментов разработчика, как Truffle, нам необходимо установить nvm, Node и npm. Обратитесь непосредственно к статье Настройте разработку на NodeJS с помощью WSL 2.  

Первая особенность, с которой я столкнулся, заключалась в том, что в документации не указана самая последняя версия nvm, поэтому я рекомендую перейти к репозиторий nvm GitHub чтобы узнать текущую версию. После установки nvm, когда я запустил команду command -v nvm, чтобы подтвердить, что он установлен в моем терминале, ничего не произошло (nvm должен быть возвращен). Он предложил мне закрыть терминал и снова открыть его, а затем снова запустить команду. Когда я это сделал, у меня появился nvm.

Затем я ввел nvm install node –lts. Я выбрал LTS (долгосрочная стабильная версия). Убедившись, что у меня установлены и node, и npm (node ​​–version, npm –version). Я перешел на следующий шаг. 

Не делайте следующего

Это наглядный пример того, как не читать документацию (всегда читайте документацию). Шаги, которые я подробно описал выше, я сделал после того, как сначала пошел по пути, не читая документацию до конца. Хронологически я сначала открыл терминал с помощью VSCode и набрал

узел -v

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

Я ввел предложенный

sudo apt установить nodejs

и был запрошен мой пароль для моего дистрибутива Linux (Ubuntu 20.04 LTS). Затем я ввел

узел -v

Вернулась версия 10.19.0. Я просмотрел веб-сайт Node.js и рекомендовал стабильный выпуск 14.15.0 LTS. Не то, что я хотел. Кроме того, когда я ввел

npm -v

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

“Версия Node, которую можно установить с помощью команды Ubuntu apt-get, в настоящее время устарела”

Если вы пошли по этому пути, вам нужно удалить Nodejs – вот несколько полезных инструкций, но вы будете использовать команду

sudo apt-get очистить nodejs

в терминале, чтобы сделать это.

Если вы перейдете непосредственно на веб-сайт Node.js, загрузите и установите, вы установите дистрибутив Windows, который вы не сможете использовать в Ubuntu. Так что сначала прочтите приведенную выше документацию и не пытайтесь просто «вскочить»:.

Учитесь на моих ошибках и экономьте время. Прочтите документацию.

Шаг 4. Установите Truffle Suite.

На этом этапе я мог выполнить шаги, описанные на портале разработчиков ConsenSys..

Обязательно раскомментируйте сеть разработки (как показано ниже) в файле truffle-config.js.

В противном случае вы получите следующую ошибку:

Подождите … Я все это настроил, и произошла ошибка, я ушел, и теперь, когда он у меня запущен, я забыл свой пароль к своему дистрибутиву Linux!!!

Ах да. Я тоже это сделал. Я нашла статью «Создайте учетную запись пользователя и пароль для вашего нового дистрибутива Linux.” очень полезно. 

То, что я установил в Windows, не отображается при запуске Ubuntu! Что дает!!

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

Что дальше?

Теперь следуйте шагу 2: создание смарт-контракта и шагу 3: запуск децентрализованного приложения, используя те же команды, что и в этих руководствах..

Краткая история операционных систем и контекст для разработчиков Ethereum

Почему у пользователей Windows другой опыт работы с инструментами разработчика Ethereum, чем у тех, кто использует Linux или MacOS? Linux и MacOS – это разные операционные системы, и существует бесчисленное множество дистрибутивов Linux. Похоже, что для работы с различными операционными системами потребуется несколько наборов инструментов. Чтобы ответить на этот вопрос, необходим краткий урок истории. Я рекомендую посмотреть видео ускоренного курса Операционные системы: ускоренный курс по информатике № 18 для краткой справочной информации. 

Наша история начинается с Unix. После выпуск Unix в 1969 г., эта операционная система быстро зарекомендовала себя в компьютерном сообществе. В 1970-х годах в вычислительной технике в значительной степени преобладали исследователи, крупный бизнес или сообщества любителей / хакеров, и в них не было графических пользовательских интерфейсов, к которым мы привыкли сегодня.. В то время Unix был основан на терминале, поэтому все делалось с помощью того, что мы назвали бы командной строкой..

1980-е совпали с выпуском Microsoft и Apple популярных операционных систем для аудитории персональных компьютеров. Усовершенствования, которые принесли эти операционные системы, наряду со снижением стоимости оборудования и памяти, помогли увеличить число людей за пределами академических кругов или делового мира, которые могут позволить себе компьютер для личного использования.. Microsoft выпустила дисковую операционную систему Microsoft (MS-DOS) в 1981 году.. Когда Microsoft Windows была выпущена в 1985 году, эта операционная система на основе графического пользовательского интерфейса была построена на базе кода MS-DOS., делает компьютер более доступным для конечного пользователя.

Apple фактически разрешила загрузку нескольких операционных систем на Apple II, который впервые начал продаваться в конце 1970-х годов.. Но Apple, до Microsoft, осознавала, насколько важным будет графический интерфейс для стимулирования внедрения персональных компьютеров.. Первая ОС Apple с графическим интерфейсом пользователя, операционная система Macintosh (теперь называемая Classic MacOS), возникла в Яблочная Лиза (LisaOS), компьютер 1983 года выпуска. Операционная система Lisa была в значительной степени вдохновлена ​​работой, проделанной в Исследовательском центре Xerox в Пало-Альто (PARC)., и многие из команды Xerox PARC работали в Apple. Когда в 1984 году был выпущен гораздо более популярный Apple Macintosh, на нем работала классическая MacOS.. При просмотре старых изображений и видеороликов Macintosh я был удивлен, насколько знаком интерфейс классической MacOS с MacOS, работающей на моем компьютере Apple сегодня..

Unix была доминирующей операционной системой в мире вычислений и продолжала оставаться популярной за пределами области персональных компьютеров в 1980-х годах. В течение 1980-х годов это означало, что было три разные операционные системы, построенные на трех разных кодовых базах. Использование программы в этих операционных системах не могло произойти изначально. Программы пришлось модифицировать для работы с ОС. Операционные системы Apple и Microsoft на основе графического интерфейса пользователя сделали вычисления доступными для масс. Разработчикам для создания приложения, которое могло бы работать на компьютере, требовалось знание операционной системы (и это все еще так). Но Apple сделала бы выбор, который упростил бы разработчикам, знакомым с командами Unix, использование MacOS или операционной системы на основе Unix, не считая входного барьера..

Apple начала двигаться к Операционная система на основе Unix, начиная с 1988 года, когда был выпущен A / UX на основе Unix. По параллельной дорожке, Компания NeXT, соучредителем которой стал Стив Джобс в 1985 году после его ухода из Apple, создавала ОС на базе Unix под названием NeXTSTEP.. Apple купила NeXT в 1996 году и приобрела интеллектуальную собственность, которая впоследствии стала MacOS X.. Напомним, соучредитель Apple покинул компанию, стал соучредителем другой компьютерной компании по созданию компьютеров и операционных систем, которую затем выкупила компания, которую он сначала соучредителем, которую он впоследствии стал генеральным директором, а затем взял у нее проект. его новая компания, и этот программный проект был построен, чтобы стать основой MacOS, которую я сейчас использую на своем компьютере Apple. В книге Стива Джобса Уолтера Иссаксона есть цитата Ларри Эллисона, соучредителя Oracle, о разговоре, который он имел со Стивом Джобсом, когда они были в отпуске на Гавайях..

«Знаешь, Ларри, я думаю, что нашел способ вернуться в Apple и получить контроль над ней, не покупая ее», – сказал Джобс, пока они шли по берегу. Эллисон вспоминал: «Он объяснил свою стратегию, которая заключалась в том, чтобы заставить Apple купить NeXT, после чего он войдет в совет директоров и будет в одном шаге от должности генерального директора».

Исааксон, Уолтер. Стив Джобс. Нью-Йорк ; Торонто: Саймон & Шустер, 2011. с.300.

Так MacOS стала операционной системой на основе Unix и сделала возможным запуск команды Unix на терминале в MacOS..

Windows не стала Unix-подобной. После большого успеха Windows 95/98, Windows перешла на построение своей ОС на базе NT (аббревиатура NT больше не означает ничего, но существует множество теорий и историй о выборе NT – забавной кроличьей норе, в которую можно спуститься, если вы интересуетесь историей Microsoft.). Начиная с Windows 2000, Microsoft отказалась от зависимости от DOS (что привело к этому невероятному видео, в котором Билл Гейтс отключил DOS, когда была выпущена Windows XP.). Windows продолжала основываться на NT для всех последующих выпусков, включая Windows 10..

Между Apple и Microsoft появится третий конкурент.. Linux был разработан и выпущен Линусом Торвальдсом в 1991 году.. Это Unix-подобная операционная система, и благодаря тому, что она бесплатна и легко настраивается, она была быстро принята сообществами разработчиков, которые не хотели быть привязанными к Apple или Microsoft. Linux продолжал набирать популярность и нашел свое применение во многих различных вычислительных средах. Например, Android, мобильная операционная система, построена на базе Linux и является самой популярной операционной системой для смартфонов. Linux также поддерживает команды оболочки Unix. Для получения дополнительной информации о Linux, Запуск Linux, третье издание всеобъемлющий ресурс.

Основание на Unix означало, что команды, написанные в терминале MacOS и терминале Linux, синтаксически одинаковы, потому что они оба используют оболочку bash (или какую-то ее производную, например zsh). Пользователям Windows часто приходится переводить команду, которую они видят в учебнике, написанном для оболочки bash, для работы в Windows PowerShell или Cmd. Пользователи Linux или MacOS могут просто запустить команду. Разработчики проводят уйму времени в терминале. Это означало установку и использование определенных инструментов разработчика для Ethereum (и многих других языков), таких как nvm, Node, npm и Truffle, для пользователей Windows требовался другой набор инструкций.. 

В результате обеспечивается большая совместимость между Linux и MacOS – и поэтому многие команды, используемые в терминале Ubuntu, дистрибутиве Linux, также могут использоваться (в основном) взаимозаменяемо в терминале MacOS. В прошлом Windows вторгалась в ОС на основе Unix, но выпуск WSL в 2016 году для Windows 10 был первым случаем, когда пользователи Windows могли использовать ядро ​​Linux, одновременно используя Windows без виртуальной машины. WSL 2 создал легкую виртуальную машину, которая работает внутри Windows, а это означает, что разработчику больше не нужно решать проблемы с памятью и хранилищем, связанные с загрузкой виртуального ящика или использованием VMWare для установки Ubuntu..

Почему это влияет на разработчиков Ethereum? Блок Genesis в Ethereum произошел 30 июля 2015 года, и, по словам соучредителя Ethereum и основателя ConsenSys Джо Любина, большая часть разработки происходила на Ubuntu и MacOS X. Поэтому неудивительно, что большая часть оригинального инструментария работала хорошо. с Unix-подобными операционными системами. Несмотря на то, что были разработаны инструменты специально для Windows, часто опыт разработчиков оказывается лучше, когда они могут использовать Unix-подобный терминал для установки программного обеспечения и выполнения команд.. 

Microsoft приложила усилия, чтобы выпустить WSL 2, и он улучшился до тех пор, пока многие в сообществе используют его с конца 2018 года для установки дистрибутива Linux. Если вы используете Windows, вам больше не нужно следовать слегка измененному набору инструкций при создании dApp. Пользователи Windows теперь могут следовать руководствам по Ethereum для Linux или Mac..

Очень занимательное чтение, рекомендованное мне Эйвери Эрвином, – это книга Нила Стивенсона «В начале была командная строка», эссе / книга о его личном опыте работы с операционными системами в течение периода времени, описанного в этой краткой истории.

Вывод

Это руководство и краткая история дают пользователю Windows некоторое представление о том, как настроить среду разработки с использованием WSL 2, Ubuntu, VSCode, npx, Node, npm и Truffle. Это также дает небольшую историю того, как и почему мы должны это делать. Если у вас есть какие-либо комментарии или полезные советы, основанные на вашем опыте, отправьте их по адресу [электронная почта защищена] так что я могу обновить эту статью и поблагодарить вас за ваш вклад.

Особая благодарность Онебучи Валентину Ахиве, Клеменсу Вану, Энтони Альберторио, Эли Гешвинду, Нику Нельсону и другим добрым друзьям за ваш обзор и комментарии к этому руководству и истории. Я ценю ваши комментарии.

РазработчикиУмные контрактыWindowsНовостная рассылкаПодпишитесь на нашу рассылку, чтобы получать последние новости Ethereum, корпоративные решения, ресурсы для разработчиков и многое другое.