블로그 1뉴스 개발자 엔터프라이즈 블록 체인 설명 이벤트 및 컨퍼런스 보도 자료뉴스 레터

뉴스 레터 구독.

이메일 주소

우리는 귀하의 개인 정보를 존중합니다

홈 블로그 개발자

Windows에서 Linux / MacOS와 유사한 Ethereum 개발자 설정을 생성 할 수 있습니까? : Linux 용 Windows 하위 시스템 설정 가이드

WSL 2를 활용하여 Ethereum 스마트 계약 개발 환경 및 워크 플로를 설정하는 방법에 대한 단계별 지침 작성자 : Thomas HayNovember 18, 2020Posted on November 18, 2020

블록 체인

ConsenSys Academy에서 우리는 개발자 프로그램의 모든 사람에게 처음에 Virtual Box와 Ubuntu를 다운로드하도록 요청했습니다. 우리의 목표는 모든 학생이 로컬 개발 환경을 설정할 때 일관된 사용자 경험을 가질 수 있도록하는 것입니다. 기본 운영 체제 (OS)에 관계없이 모든 사람이 Ubuntu를 사용하고 동일한 소프트웨어를 실행할 수 있습니다. 이것은 이론상 좋은 생각입니다. 실제로 우리는 학생들과 협력하여이 작업을 수행하기 위해 컴퓨터에서 사용 가능한 메모리와 관련된 문제를 처리했습니다. MacOS는 Unix 기반 시스템이므로 거의 항상 Mac 사용자는 Ubuntu를 다운로드하지 않고 계속 진행합니다. Windows 사용자는 기본 OS에서 권장하는 지침에 따라 개발 도구를 사용할 수 없었고, Windows에서 모든 것을 실행하려면 Linux 용 지침과 병렬로 수행해야하는 일련의 지침을 따라야했기 때문에 종종 실망합니다. 및 MacOS 사용자. 

우리는 Linux 용 Windows 하위 시스템 (WSL)의 개발을 모니터링하고있었습니다. WSL 2의 출시는 현재 Bootcamp 학생들이 Virtual Box를 다운로드하는 대신 WSL 2를 사용할 수 있는지에 대한 질문과 일치했습니다. 우리가 권장하는 Ethereum 도구를 사용하면서 Windows 사용자에게 Linux와 유사한 개발자 경험을 제공하기 위해 WSL 2를 사용하는 방법에 더 중점을 두어야 할 때가지나 갔다고 느꼈습니다. 이 기사에서는 WSL 2를 사용하여 Ethereum 개발자 환경을 설정할 때 발생한 몇 가지 특이점을 공유합니다 (예 : 활용하기 위해 수행해야하는 작업). 트뤼플 명령). 

우리 생태계에는 많은 유용한 기사와 튜토리얼이 있지만 사람들은 사용자가 Linux 또는 MacOS를 설치했다고 가정하여 작성합니다. 모든 사람이 이더 리움에 액세스 할 수 있기를 원하며 현재 Windows를 사용하는 개발자가 스마트 계약 개발에 대해 게시 된 대부분의 기사를 따라갈 수 있도록 개발 환경을 설정하는 가장 쉬운 방법이라고 생각하는 것을 공유하고 싶습니다..

아래 자습서로 이동하거나 Linux 및 MacOS 사용자가 전통적으로 Ethereum에서 개발자 도구를 사용하는 방법이 더 쉬운 이유에 대한 짧은 기록으로 건너 뛸 수 있습니다..

WSL 2를 사용하여 Ethereum 개발자 환경 설정

1 단계 : WSL 2 다운로드

TLDR; Windows는 WSL 2를 컴퓨터에 설치하는 방법에 대한 지침을 안내하는 데 매우 유용합니다. “Windows 10 용 Linux 용 Windows 하위 시스템 설치 가이드”은 제목과 일치 할뿐만 아니라 문제 해결 팁을 제공하기 때문에 포괄적 인 기사입니다. 우리는 또한 8:24 of WSL2 : Linux 용 Windows 하위 시스템에서 더 빠르게 코딩하세요! | 탭 대 공백 비디오에서는 명령 줄 (또는 PowerShell) 대신 그래픽 사용자 인터페이스 (GUI)를 통해 WSL을 활성화하는 방법에 대한 추가 컨텍스트를 제공합니다. 컴퓨터를 여러 번 다시 시작해야 할 수 있으며 경우에 따라 컴퓨터의 하드웨어에 따라 시간이 걸릴 수 있습니다. 나는 당신이하려는 모든 설치에 대한 당신의 기대를 관리하기 위해 최악의 시나리오로 반나절을 할애 할 준비가되어있을 것입니다..

의 6 단계에서 앞서 언급 한 기사, 나는 설치를 선택했다 Ubuntu 20.04 LTS, 이 배포판과 나열된 다른 배포판에 가장 편안했기 때문입니다. 내 웹 브라우저를 통해 액세스 한 Windows 스토어에 대한 제공된 링크를 통해 Ubuntu를 설치하려고했지만 내 Windows 시스템에서 기본 제공 Microsoft Store 애플리케이션을 사용하여 설치하라는 메시지가 표시되었습니다..

나는 또한 설치했다 Windows 터미널, 선택 사항이었습니다. 3 단계에서 보게 될 실수를 많이 한 후에이 작업을 수행했습니다. “내 방식대로”계속하는 대신 Microsoft가 내게 말한 내용을 따르기로 결정했습니다. Windows Terminal의 장점은 터미널 창에서 여러 운영 체제의 여러 터미널 탭을 열 수 있다는 것입니다..

2 단계 : VSCode와 함께 WSL 2 실행

가장 편한 IDE를 사용하는 것이 좋습니다. 개인적으로 저는 VSCode를 사용하므로 WSL 2와 함께 VSCode를 사용할 수있는 방법을 알아보고 싶었습니다. 이미 VSCode가 설치되어 있으므로 설치하지 않은 경우 계속 설치하십시오. 그런 다음 Ubuntu와 함께 실행하기 위해 다음에서 대답을 찾았습니다. Microsoft에서 만든 WSL에 대한 비디오 5:31.

명령 사용 :

암호. 

VSCode를 자동으로 다운로드, 설치 및 시작했지만 스마트 계약을 작성하는 데 사용하는 확장이 자동으로 설치되지 않음을 발견했습니다..

WSL : Ubuntu에 설치된 녹색 텍스트를 클릭하기 만하면됩니다. VSCode는 또한 VSCode 내의 터미널을 통해 추가 라이브러리를 설치하라는 메시지를 표시하고 Linux 배포 (Ubuntu 20.04 LTS)의 암호를 입력하도록 요청했습니다.

더 긴 튜토리얼이 있습니다. Linux 용 Windows 하위 시스템 용 Visual Studio Code 사용 시작 VSCode를 아직 설치하지 않은 경우 더 긴 연습을 제공합니다. 이 시점부터 지금은 bash 셸로 설정된 VSCode의 터미널에서 다음 단계를 모두 수행했습니다..

3 단계. nvm, Node 및 npm 설치

Truffle과 같은 개발자 도구를 설치하기 전에 nvm, Node 및 npm을 설치해야합니다. 기사를 직접 참조하십시오 WSL 2로 NodeJS 개발 설정.  

내가 만난 첫 번째 특이한 점은 문서에 최신 버전의 nvm이 나열되어 있지 않았으므로 다음 페이지로 이동하는 것이 좋습니다. nvm GitHub 저장소 현재 릴리스를 확인하십시오. nvm을 설치 한 후 -v nvm 명령을 실행하여 터미널에 설치되었는지 확인했지만 아무 일도 일어나지 않았습니다 (nvm이 반환되어야 함). 터미널을 닫았다가 다시 연 다음 명령을 다시 실행하도록 제안했습니다. 이렇게하면 nvm이 생겼습니다..

그런 다음 nvm install node –lts를 입력했습니다. LTS (장기 안정) 릴리스를 선택했습니다. 노드와 npm이 모두 설치되었는지 확인한 후 (node ​​–version, npm –version). 다음 단계로 이동했습니다. 

다음을하지 마십시오

이것은 문서를 읽지 않는 명확한 예입니다 (항상 문서를 읽으십시오). 위에서 설명한 단계는 처음에 문서를 완전히 읽지 않는 경로를 따라 간 후에 수행했습니다. 연대 기적으로 저는 VSCode로 터미널을 먼저 열고

노드 -v

설치했는지 확인합니다. 노드를 설치하지 않았기 때문에 다음이 반환되었습니다.

나는 제안에 입력했다

sudo apt install nodejs

내 Linux 배포판 (Ubuntu 20.04 LTS)의 경우 암호를 입력하라는 메시지가 표시되었습니다. 그런 다음 입력

노드 -v

반환 된 버전은 10.19.0입니다. Node.js 웹 사이트를 살펴 보았는데 권장되는 안정 버전은 14.15.0 LTS였습니다. 내가 원했던 것이 아닙니다. 또한 입력했을 때

npm -v

NPM이 설치되어 있는지 확인하기 위해 잘못된 인터프리터를 찾았습니다. 해당 파일이나 디렉토리가 없습니다. 무엇이 잘못 되었나요? 기사를 읽고 시작했다면 다음을 보았을 것입니다.

“Ubuntu의 apt-get 명령으로 설치할 수있는 Node 버전이 현재 구식입니다.”

이 경로를 따라 갔다면 Nodejs를 제거해야합니다. 다음은 몇 가지 유용한 지침입니다., 그러나 당신은 명령을 사용할 것입니다

sudo apt-get purge nodejs

그렇게하려면 터미널 내에서.

Node.js 웹 사이트로 직접 이동하여 다운로드하여 설치하면 Ubuntu에서 사용할 수없는 Windows 배포판이 설치됩니다. 그러니 먼저 위의 문서를 읽고“점프 :.

내 실수로부터 배우고 시간을 절약하십시오. 문서 읽기.

4 단계. Truffle Suite 설치

이 시점에서 이제 ConsenSys 개발자 포털에 설명 된 단계를 따를 수 있습니다..

truffle-config.js 파일에서 개발 네트워크 (아래 참조)의 주석 처리를 제거하십시오.

그렇지 않으면 다음 오류가 발생합니다.

잠시만 요… 모든 설정을했는데 오류가 발생하여 자리를 비 웠습니다. 이제 실행 중이므로 Linux 배포에 대한 암호를 잊어 버렸습니다.!!!

아, 그래. 나도이 일을했습니다. 나는 기사를 찾았다“새 Linux 배포에 대한 사용자 계정 및 암호 만들기”매우 도움이 됨. 

Windows에 설치 한 항목이 Ubuntu를 실행할 때 표시되지 않습니다! 주는 것!!

Ubuntu는 Windows와 다른 운영 체제입니다. Windows에 설치된 프로그램은 그렇게하도록 구성된 특정 프로그램이 아닌 한 Ubuntu 배포판을 즉시 실행할 것으로 예상되지 않으며 그 반대의 경우도 마찬가지입니다 (예 : Windows Terminal). 하나에 설치하는 모든 것이 안전을 위해 다른 하나에서 작동하지 않는다고 가정하십시오..

다음은?

이제 2 단계 : 스마트 계약 생성 및 3 단계 :이 튜토리얼에서 제공하는 것과 동일한 명령을 사용하여 분산 응용 프로그램을 시작하십시오..

운영 체제의 간략한 역사와 이더 리움 개발자를위한 컨텍스트

Windows 사용자가 Linux 또는 MacOS를 사용하는 사용자와 Ethereum 개발자 도구에 대해 다른 경험을하는 이유는 무엇입니까? Linux와 MacOS는 동일한 운영 체제가 아니며 수많은 Linux 배포판이 있습니다. 다양한 운영 체제를 처리하려면 여러 도구 세트가 있어야 할 것 같습니다. 이 질문에 답하려면 간단한 역사 수업이 필요합니다. Crash Course의 비디오를 보는 것이 좋습니다. 운영 체제 : 단기 집중 과정 컴퓨터 과학 # 18 간결한 배경 정보. 

우리의 이야기는 유닉스에서 시작됩니다. 후 1969 년 Unix 출시, 이 운영 체제는 컴퓨팅 커뮤니티 내에서 빠르게 자리 잡았습니다.. 컴퓨팅은 1970 년대에 연구, 대기업 또는 취미 / 해커 커뮤니티가 많이 지배했으며 오늘날 우리가 익숙한 그래픽 사용자 인터페이스가 없었습니다.. 현재 유닉스는 터미널 기반 이었기 때문에 모든 것이 우리가 명령 줄이라고 부르는 것을 통해 이루어졌습니다..

1980 년대는 Microsoft와 Apple이 개인용 컴퓨터 사용자를 위해 널리 사용되는 운영 체제를 출시하는시기였습니다. 이러한 운영 체제가 가져온 발전은 하드웨어 및 메모리 비용의 감소와 함께 학계 또는 비즈니스 세계 외부에서 개인용 컴퓨터를 구입할 수있는 사람의 수를 늘리는 데 도움이되었습니다.. Microsoft는 1981 년에 MS-DOS (Microsoft Disk Operating System)를 출시했습니다.. 언제 Microsoft Windows는 1985 년에 출시되었습니다.이 그래픽 사용자 인터페이스 기반 운영 체제는 MS-DOS 코드 기반 위에 구축되었습니다., 최종 사용자가 컴퓨터에 훨씬 더 쉽게 액세스 할 수 있도록.

Apple은 실제로 1970 년대 후반에 처음 판매되기 시작한 Apple II에서 여러 OS의 부팅을 허용했습니다.. 그러나 Microsoft 이전에 Apple은 개인용 컴퓨터 채택을 유도하는 데 GUI가 얼마나 중요한지 깨달았습니다.. Apple의 첫 번째 GUI 기반 OS 인 Macintosh 운영 체제 (현재 Classic MacOS라고 함)는 Apple Lisa (LisaOS), 1983 년에 출시 된 컴퓨터. Lisa의 운영 체제는 Xerox의 Palo Alto Research Center (PARC)에서 수행 한 작업에서 크게 영감을 받았습니다., Xerox PARC 팀의 많은 사람들이 Apple에서 일했습니다.. 훨씬 더 인기있는 Apple Macintosh가 1984 년에 출시되었을 때 Classic MacOS가 실행 중이었습니다.. 매킨토시의 오래된 사진과 비디오를 볼 때, 저는 Classic MacOS가 오늘날 제 Apple 컴퓨터에서 실행되는 MacOS에 얼마나 친숙한 인터페이스인지에 놀랐습니다..

Unix는 컴퓨팅 세계에서 지배적 인 운영 체제였으며 1980 년대에는 개인 컴퓨팅 공간 밖에서 계속 인기를 끌었습니다. 1980 년대에는 3 개의 서로 다른 코드베이스에 구축 된 3 개의 서로 다른 운영 체제가있었습니다. 이러한 운영 체제에서 프로그램을 사용하는 것은 기본적으로 발생할 수 없습니다. 프로그램은 OS에서 작동하도록 수정되어야했습니다. Apple과 Microsoft의 GUI 기반 운영 체제는 대중이 컴퓨팅에 액세스 할 수 있도록했습니다. 개발자의 경우 컴퓨터에서 작동 할 수있는 응용 프로그램을 구축하려면 운영 체제를 알아야합니다 (여전히 그렇습니다). 하지만 애플은 유닉스 명령어에 익숙한 개발자가 진입 장벽이없는 MacOS 또는 유닉스 기반 운영 체제를 더 쉽게 사용할 수 있도록 선택을 할 것입니다..

애플은 Unix 기반 A / UX가 출시 된 1988 년부터 Unix 기반 운영 체제. 병렬 트랙에서, 1985 년 스티브 잡스가 Apple을 떠나면서 공동 설립 한 NeXT는 NeXTSTEP이라는 Unix 기반 OS를 만들고있었습니다.. 애플은 1996 년에 NeXT를 인수하고 MacOS X가 될 지적 재산을 인수했습니다.. 요약하자면, Apple의 공동 창립자는 회사를 떠나 컴퓨터와 운영 체제를 구축하기 위해 다른 컴퓨터 회사를 공동 창립 한 후 처음 공동 설립 한 회사에서 인수 한 후 CEO가 된 후 프로젝트를 가져 왔습니다. 그의 새로운 회사와 그 소프트웨어 프로젝트는 제가 지금 제 Apple 컴퓨터에서 실행하고있는 MacOS의 기반이되기 위해 만들어졌습니다. Walter Issacson의 Steve Jobs에는 Oracle의 공동 설립자 인 Larry Ellison이 하와이에서 휴가를 보내는 동안 Steve Jobs와 나눈 대화에 대한 인용문이 있습니다..

“당신은 Larry를 알고 있습니다. 저는 제가 Apple로 돌아가서 당신이 그것을 사지 않고도 그것을 통제 할 수있는 방법을 찾았다 고 생각합니다.”그들이 해안을 따라 걸 으면서 잡스는 말했다. Ellison은 “그는 Apple이 NeXT를 인수하도록하는 전략을 설명했다가 이사회에 올라 CEO가되는 데 한 걸음 물러 설 것”이라고 회상했습니다.

아이작 슨, 월터. 스티브 잡스. 뉴욕 ; 토론토 : Simon & Schuster, 2011. 300 쪽

그래서 MacOS가 Unix 기반 운영 체제가되었고 MacOS의 터미널에서 Unix 명령을 실행할 수있게되었습니다..

Windows는 Unix와 같지 않았습니다. Windows 95/98의 대성공 이후, Windows는 NT를 기반으로 OS를 구축하는 방향으로 전환했습니다 (NT의 약어는 더 이상 의미가 없지만 NT의 선택에 대한 많은 이론과 역사가 있습니다. Microsoft의 역사에 관심이 있다면 아래로 내려갈 재미있는 토끼 구멍)). Windows 2000부터 Microsoft는 DOS (Windows XP가 출시되었을 때 Bill Gates가 DOS를 끄는 놀라운 비디오로 이어집니다.). Windows는 Windows 10을 포함한 모든 후속 릴리스에서 계속해서 NT를 기반으로합니다..

Apple과 Microsoft 사이에 세 번째 경쟁자가 등장합니다.. Linux는 1991 년 Linus Torvalds에 의해 개발 및 출시되었습니다.. 유닉스와 유사한 운영 체제이며 무료이고 쉽게 사용자 정의 할 수 있기 때문에 Apple 또는 Microsoft에 갇히고 싶지 않은 개발자 커뮤니티에서 빠르게 채택되었습니다. Linux는 계속 인기를 얻었으며 다양한 컴퓨팅 환경에서 사용되고 있습니다. 예를 들어, 모바일 운영 체제 인 Android는 Linux를 기반으로 구축되었으며 가장 인기있는 스마트 폰 운영 체제입니다. Linux는 또한 Unix 셸 명령을 유지했습니다. Linux에 대한 자세한 정보, Linux, Third Edition 실행 포괄적 인 리소스입니다.

Unix를 기반으로한다는 것은 MacOS 터미널과 Linux 터미널에서 작성된 명령이 모두 bash 쉘 (또는 zsh와 같은 파생물)을 사용하기 때문에 구문 상 동일 함을 의미합니다. Windows 사용자는 종종 bash 셸용으로 작성된 자습서에서 볼 수있는 명령을 Windows PowerShell 또는 Cmd에서 작동하도록 번역해야합니다. Linux 또는 MacOS 사용자는 명령 만 실행할 수 있습니다. 개발자는 터미널에서 많은 시간을 보냅니다. 이는 nvm, Node, npm 및 Truffle과 같은 Ethereum (및 기타 여러 언어) 용 특정 개발자 도구를 설치하고 사용하는 것을 의미하며 Windows 사용자를위한 다른 지침 세트가 필요했습니다.. 

그 결과 Linux와 MacOS 사이의 호환성이 더 높아졌습니다. 따라서 Linux 배포판 인 Ubuntu 터미널에서 사용되는 많은 명령이 MacOS 터미널에서도 (대부분) 상호 교환 적으로 사용될 수 있습니다. Windows는 과거에 Unix 기반 OS에 진출했지만 Windows 10 용 WSL 2016 년 출시는 Windows 사용자가 가상 ​​머신없이 Windows를 동시에 사용하는 동시에 Linux 커널을 사용할 수있는 최초의 사례입니다. WSL 2는 Windows 내에서 실행되는 경량 가상 머신을 만들었습니다. 즉, 개발자는 더 이상 가상 박스를 다운로드하거나 VMWare를 사용하여 Ubuntu를 설치하는 것과 관련된 메모리 및 스토리지 문제를 처리 할 필요가 없습니다..

이것이 Ethereum 개발자에게 영향을 미치는 이유는 무엇입니까? Ethereum의 Genesis Block은 2015 년 7 월 30 일에 발생했으며 Ethereum의 공동 창립자이자 ConsenSys Joe Lubin의 창립자에 따르면 대부분의 개발은 Ubuntu 및 MacOS X에서 이루어졌습니다. 따라서 원래 도구의 대부분이 잘 작동 한 것은 놀라운 일이 아닙니다. Unix와 유사한 운영 체제와 함께. Windows 용으로 특별히 개발 된 도구가 있지만, 종종 Unix와 유사한 터미널을 사용하여 소프트웨어를 설치하고 명령을 실행할 수있을 때 개발자의 경험이 더 좋습니다.. 

Microsoft는 WSL 2를 출시하기위한 작업에 착수했으며 2018 년 말부터 Linux 배포판을 설치하기 위해 커뮤니티 내 많은 사람들이 WSL 2를 사용하고있는 곳으로 개선되었습니다. Windows를 사용하는 경우 dApp을 구축 할 때 약간 수정 된 지침을 따를 필요가 더 이상 없습니다. Windows 사용자는 이제 Linux 또는 Mac 용 Ethereum 자습서를 따를 수 있습니다..

Avery Erwin이 저에게 추천 한 매우 재미있는 책은 Neal Stephenson의 “처음에는 명령 줄이있었습니다”, 이 짧은 역사에 설명 된 기간 동안 운영 체제에 대한 그의 개인적인 경험에 대한 에세이 / 책.

결론

이 자습서와 간략한 기록은 Windows 사용자에게 WSL 2, Ubuntu, VSCode, npx, Node, npm 및 Truffle을 사용하여 개발 환경을 설정하는 방법에 대한 통찰력을 제공합니다. 또한이를 수행해야하는 방법과 이유에 대한 약간의 역사를 제공합니다. 경험을 바탕으로 한 의견이나 도움이되는 힌트가 있으면 다음 주소로 보내주십시오. [이메일 보호] 이 기사를 업데이트하고 귀하의 기여에 대해 감사드립니다..

Onyebuchi Valentine Ahiwe, Clemens Wan, Anthony Albertorio, Eli Geschwind, Nick Nelson 및이 튜토리얼과 역사에 대한 귀하의 검토와 의견에 대해 특별히 감사드립니다. 귀하의 의견에 감사드립니다.

개발자 스마트 계약 Windows 뉴스 레터 최신 이더 리움 뉴스, 엔터프라이즈 솔루션, 개발자 리소스 등에 대한 뉴스 레터를 구독하십시오.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me