blog 1AktualnościDevelopersEnterpriseBlockchain ExplainedWydarzenia i konferencjePrasaBiuletyny

Zapisz się do naszego newslettera.

Adres e-mail

Szanujemy twoją prywatność

HomeBlogDevelopers

Czy mogę utworzyć konfigurację programisty Ethereum podobną do Linux / MacOS w systemie Windows?: Przewodnik po konfiguracji podsystemu Windows dla systemu Linux

Instrukcje krok po kroku, jak wykorzystać WSL 2 do konfiguracji środowiska rozwoju inteligentnych kontraktów Ethereum i przepływu pracy autor: Thomas Hay 18 listopada 2020 r. Opublikowano 18 listopada 2020 r.

blockchain

W ConsenSys Academy poprosiliśmy wszystkich w Programie dla programistów o pobranie Virtual Box i Ubuntu na początku. Naszym celem jest, aby każdy student mógł mieć spójne doświadczenie użytkownika podczas konfigurowania lokalnego środowiska programistycznego. Bez względu na natywny system operacyjny (OS) każdy miałby Ubuntu i mógł uruchomić to samo oprogramowanie. To dobry pomysł w teorii. W praktyce pracowaliśmy z uczniami, aby poradzić sobie z kwestiami związanymi z dostępną pamięcią na ich komputerze, aby ta działała. Niemal zawsze użytkownicy komputerów Mac będą kontynuować bez pobierania Ubuntu, ponieważ MacOS jest systemem opartym na Uniksie. Użytkownicy systemu Windows są często sfrustrowani, ponieważ nie byli w stanie korzystać z narzędzi programistycznych zgodnie z instrukcjami, które zalecamy w ich natywnym systemie operacyjnym, a jeśli chcieli uruchomić wszystko w systemie Windows, musieli postępować zgodnie z zestawem instrukcji równoległych do instrukcji dla systemu Linux i użytkowników MacOS. 

Monitorowaliśmy rozwój podsystemu Windows dla systemu Linux (WSL). Uruchomienie WSL 2 zbiegło się w czasie z pytaniami od naszej obecnej grupy studentów Bootcamp, czy mogliby używać WSL 2 zamiast pobierać Virtual Box. Czułem, że nadszedł czas, aby bardziej skupić się na tym, jak używać WSL 2, aby zapewnić użytkownikom systemu Windows doświadczenie programisty przypominające Linuksa podczas korzystania z zalecanego przez nas narzędzia Ethereum. W tym artykule podzielimy się pewnymi cechami charakterystycznymi, które napotkaliśmy podczas używania WSL 2 do konfiguracji środowiska programistycznego Ethereum (np. Co musisz zrobić, aby wykorzystać trufla polecenia). 

Nasz ekosystem zawiera wiele pomocnych artykułów i samouczków, ale ludzie tworzą je, zakładając, że użytkownik ma zainstalowany system Linux lub MacOS. Chcę, aby Ethereum było dostępne dla wszystkich i chciałem podzielić się tym, co moim zdaniem jest obecnie najłatwiejszym sposobem dla programistów korzystających z systemu Windows na skonfigurowanie środowiska programistycznego, aby mogli śledzić większość artykułów opublikowanych na temat opracowywania inteligentnych kontraktów.

Możesz przejść do samouczka poniżej lub przejść do krótkiej historii, dlaczego użytkownicy Linuksa i MacOS tradycyjnie mieli łatwiejszą ścieżkę do narzędzi programistycznych w Ethereum.

Używanie WSL 2 do konfiguracji środowiska programistycznego Ethereum

Krok 1: Pobieranie WSL 2

TLDR; Windows wykonuje naprawdę dobrą robotę, przeprowadzając cię przez instrukcje instalacji WSL 2 na twoim komputerze. „Podręcznik instalacji podsystemu Windows dla systemu Linux dla systemu Windows 10”To obszerny artykuł, ponieważ jest zgodny z tytułem i zawiera wskazówki dotyczące rozwiązywania problemów. Odkryliśmy również, że oglądanie zaczyna się o 8:24 WSL2: Koduj szybciej w podsystemie Windows dla systemu Linux! | Tabs vs Spaces wideo przedstawia dodatkowy kontekst dotyczący włączania WSL za pomocą graficznego interfejsu użytkownika (GUI) zamiast za pomocą wiersza poleceń (lub PowerShell). Może być konieczne wielokrotne ponowne uruchamianie komputera, aw niektórych przypadkach, w zależności od sprzętu, który ma Twój komputer, może to zająć trochę czasu. Byłbym gotów poświęcić pół dnia na najgorszy scenariusz, tylko po to, aby zarządzać Twoimi oczekiwaniami dotyczącymi wszystkich instalacji, które zamierzasz wykonać.

W kroku 6 wyżej wymieniony artykuł, Zdecydowałem się zainstalować Ubuntu 20.04 LTS, ponieważ najbardziej odpowiadała mi ta dystrybucja w porównaniu z innymi wymienionymi. Próbowałem zainstalować Ubuntu za pomocą podanego linku do sklepu Windows, do którego uzyskałem dostęp przez moją przeglądarkę internetową, ale mój komputer z systemem Windows poprosił mnie o zainstalowanie za pomocą wbudowanej aplikacji Microsoft Store.

Zainstalowałem też Terminal systemu Windows, co było opcjonalne. Zrobiłem to po popełnieniu kilku błędów, które zobaczysz w kroku 3. Zamiast dalej „iść własną drogą”, zdecydowałem się podążać za tym, co mówił mi Microsoft. Zaletą terminala systemu Windows jest to, że w oknie terminala można otworzyć wiele zakładek terminala w różnych systemach operacyjnych.


Krok 2: Uruchamianie WSL 2 razem z VSCode

Sugerujemy użycie dowolnego środowiska IDE, z którym najbardziej Ci odpowiada. Osobiście używam VSCode, więc chciałem dowiedzieć się, jak mogę używać VSCode obok WSL 2. Mam już zainstalowany VSCode, więc jeśli go nie masz, zainstaluj go. Następnie, aby uruchomić go razem z Ubuntu, znalazłem odpowiedź pod adresem 5:31 filmu o WSL stworzonego przez firmę Microsoft.

Za pomocą polecenia:

kod. 

automatycznie pobrałem, zainstalowałem i uruchomiłem VSCode, ale zauważyłem, że moje rozszerzenia, których używam do pisania inteligentnych kontraktów, nie są instalowane automatycznie.

Wystarczy kliknąć zielony tekst zainstalowany w WSL: Ubuntu. VSCode poprosił mnie również o zainstalowanie dodatkowych bibliotek za pośrednictwem terminala w VSCode i poprosił mnie o podanie hasła do mojej dystrybucji Linuksa (czyli Ubuntu 20.04 LTS)

Istnieje dłuższy samouczek o nazwie Zacznij korzystać z programu Visual Studio Code dla podsystemu Windows dla systemu Linux który zapewnia dłuższą instrukcję, jeśli nie masz jeszcze zainstalowanego VSCode. Od tego momentu wykonałem wszystkie następujące kroki wewnątrz terminala VSCode, który został teraz skonfigurowany jako powłoka bash.

Krok 3. Zainstaluj nvm, Node i npm

Przed zainstalowaniem narzędzi programistycznych, takich jak Truffle, musimy zainstalować nvm, Node i npm. Zapoznaj się bezpośrednio z artykułem Skonfiguruj programowanie NodeJS z WSL 2.  

Pierwszą osobliwością, na jaką natknąłem się, była dokumentacja, która nie zawierała najbardziej aktualnej wersji nvm na liście, dlatego polecam przejść do Repozytorium nvm GitHub aby dowiedzieć się, jaka jest aktualna wersja. Po zainstalowaniu nvm, kiedy uruchomiłem polecenie -v nvm, aby potwierdzić, że został zainstalowany w moim terminalu, nic się nie stało (nvm powinien zostać zwrócony). Zasugerował, żebym zamknąć terminal i ponownie go otworzyć, a następnie ponownie uruchomić polecenie. Kiedy to zrobiłem, dostałem nvm.

Następnie wpisałem nvm install node –lts wybrałem wydanie LTS (długoterminowe stabilne). Po sprawdzeniu, że mam zainstalowany zarówno node, jak i npm (node ​​–version, npm –version). Przeszedłem do następnego kroku. 

Nie wykonuj następujących czynności

To jest wyraźny przykład braku czytania dokumentacji (zawsze czytaj dokumentację). Kroki, które wyszczególniłem powyżej, zrobiłem po pierwszym zejściu na ścieżkę nie czytania dokumentów do końca. Chronologicznie, najpierw otworzyłem terminal za pomocą VSCode i wpisałem

węzeł -v

aby zobaczyć, czy mam go zainstalowanego. Ponieważ nie miałem zainstalowanego węzła, wróciły:

Wpisałem sugerowane

sudo apt zainstaluj nodejs

i został poproszony o podanie hasła. dla mojej dystrybucji Linuksa (Ubuntu 20.04 LTS). Następnie wpisałem

węzeł -v

Zwrócona wersja to 10.19.0. Zajrzałem do witryny Node.js i zalecana stabilna wersja to 14.15.0 LTS. Nie to, co chciałem się wydarzyć. Dodatkowo, kiedy wpisałem

npm -v

aby sprawdzić, czy mam zainstalowany NPM, wróciłem zły interpreter: Nie ma takiego pliku lub katalogu. Co poszło nie tak? Gdybym tylko zaczął od przeczytania tego artykułu, zobaczyłbym, co następuje

„Wersja Node, którą można zainstalować za pomocą polecenia apt-get Ubuntu, jest obecnie nieaktualna”

Jeśli znalazłeś się na tej ścieżce, musisz odinstalować Nodejs – oto kilka pomocnych instrukcji, ale użyjesz polecenia

sudo apt-get purge nodejs

w terminalu, aby to zrobić.

Jeśli przejdziesz bezpośrednio do witryny Node.js oraz pobierzesz i zainstalujesz, zainstalujesz dystrybucję Windows, której nie będziesz mógł używać w Ubuntu. Przeczytaj więc najpierw powyższą dokumentację i nie próbuj po prostu „wskoczyć:.

Ucz się na moich błędach i oszczędzaj czas. Przeczytaj dokumentację.

Krok 4. Zainstaluj pakiet Truffle Suite

W tym momencie mogłem wykonać kroki opisane w portalu dla programistów ConsenSys.

Pamiętaj, aby odkomentować sieć deweloperską (jak pokazano poniżej) w pliku truffle-config.js

Jeśli tego nie zrobisz, pojawi się następujący błąd:

Czekaj… Skonfigurowałem to wszystko i wystąpił błąd, odszedłem, a teraz, gdy mam to uruchomione, zapomniałem hasła do mojej dystrybucji Linuksa!!!

Ach, tak. Ja też to zrobiłem. Znalazłem artykuł „Utwórz konto użytkownika i hasło do nowej dystrybucji Linuksa” bardzo pomocny. 

Rzeczy, które zainstalowałem w systemie Windows, nie pojawiają się, gdy uruchamiam Ubuntu! Co daje!!

Pamiętaj, Ubuntu to inny system operacyjny niż Windows. Programy zainstalowane w systemie Windows nie powinny natychmiast uruchamiać dystrybucji Ubuntu i odwrotnie, chyba że są to określone programy skonfigurowane do tego – przykładem jest Terminal Windows. Załóżmy, że wszystko, co zainstalujesz na jednym, nie będzie działać na drugim, aby było bezpieczne.

Co następne?

Teraz postępuj zgodnie z Krokiem 2: Utwórz inteligentny kontrakt i Krok 3: Uruchom zdecentralizowaną aplikację przy użyciu tych samych poleceń, które zapewniają te samouczki.

Krótka historia systemów operacyjnych i kontekst dla programistów Ethereum

Dlaczego użytkownicy systemu Windows mają inne doświadczenia z narzędziami programistycznymi Ethereum niż ci, którzy używają systemu Linux lub MacOS? Linux i MacOS to nie ten sam system operacyjny i istnieje niezliczona liczba dystrybucji Linuksa. Wygląda na to, że do obsługi różnych systemów operacyjnych musiałoby być wiele zestawów narzędzi. Aby odpowiedzieć na to pytanie, potrzebna jest krótka lekcja historii. Polecam obejrzenie filmu Crash Course Systemy operacyjne: Crash Course Computer Science # 18 aby uzyskać zwięzłe informacje ogólne. 

Nasza historia zaczyna się wraz z Uniksem. Po wydanie Uniksa w 1969 roku, ten system operacyjny szybko zadomowił się w społeczności komputerowej. Informatyka była bardzo zdominowana przez naukowców, duże firmy lub społeczności hobbystów / hakerów w latach siedemdziesiątych i nie posiadała graficznych interfejsów użytkownika, do których jesteśmy przyzwyczajeni.. Unix był w tym czasie oparty na terminalu, więc wszystko odbywało się za pomocą tego, co nazwalibyśmy wierszem poleceń.

Lata osiemdziesiąte zbiegły się z wypuszczeniem przez Microsoft i Apple popularnych systemów operacyjnych dla użytkowników komputerów osobistych. Postępy, które przyniosły te systemy operacyjne, wraz ze spadkiem kosztów sprzętu i pamięci, pomogły zwiększyć liczbę osób spoza środowiska akademickiego lub biznesowego, których stać na komputer do użytku osobistego.. Microsoft wypuścił Microsoft Disk Operating System (MS-DOS) w 1981 roku. Gdy Microsoft Windows został wydany w 1985 roku, ten system operacyjny oparty na graficznym interfejsie użytkownika został zbudowany na bazie kodu MS-DOS, uczynienie komputera bardziej dostępnym dla użytkownika końcowego.

Apple faktycznie zezwolił na uruchamianie wielu systemów operacyjnych na Apple II, który po raz pierwszy zaczął sprzedawać pod koniec lat 70. Jednak Apple, przed Microsoftem, zdawało sobie sprawę, jak ważny byłby interfejs GUI w zwiększaniu popularności komputerów osobistych. Pierwszy system operacyjny Apple oparty na graficznym interfejsie użytkownika, system operacyjny Macintosh (obecnie nazywany klasycznym systemem MacOS), wywodzi się z Apple Lisa (LisaOS), komputer wydany w 1983 roku. System operacyjny w Lisie był mocno zainspirowany pracą wykonaną w Centrum Badawczym Xerox Palo Alto (PARC), a wielu członków zespołu Xerox PARC pracowało w Apple. Kiedy w 1984 roku wydano znacznie bardziej popularny Apple Macintosh, działał na nim Classic MacOS. Patrząc na stare zdjęcia i filmy z Macintosha, byłem zaskoczony tym, jak znajomy interfejs, jaki Classic MacOS jest dla MacOS działającego na moim komputerze Apple, jest dziś.

Unix był dominującym systemem operacyjnym w świecie komputerów i nadal był popularny poza przestrzenią komputerów osobistych w latach 80-tych. W latach 80. oznaczało to, że istniały trzy różne systemy operacyjne zbudowane na trzech różnych bazach kodu. Używanie programu w tych systemach operacyjnych nie może się odbywać natywnie. Programy musiały zostać zmodyfikowane, aby działały z systemem operacyjnym. Oparte na graficznym interfejsie systemy operacyjne Apple i Microsoft sprawiły, że komputery stały się dostępne dla mas. Dla programistów zbudowanie aplikacji, która mogłaby działać na komputerze, wymagało znajomości systemu operacyjnego (i nadal tak jest). Ale Apple dokonałby wyborów, które ułatwiłyby programistom zaznajomionym z poleceniami Uniksa korzystanie z MacOS lub systemu operacyjnego opartego na Uniksie, mniej bariery wejścia.

Apple zaczął robić ruchy w kierunku System operacyjny oparty na Uniksie, począwszy od 1988 roku, kiedy został wydany system A / UX oparty na Uniksie. Na równoległym torze, NeXT, którego współzałożycielem był Steve Jobs w 1985 roku po jego odejściu z Apple, tworzył oparty na Uniksie system operacyjny o nazwie NeXTSTEP. Apple kupiło NeXT w 1996 roku i nabyło własność intelektualną, która stała się MacOS X. Podsumowując, współzałożyciel Apple opuścił firmę, był współzałożycielem innej firmy komputerowej, która miała budować komputery i systemy operacyjne, którą następnie kupiła firma, której był współzałożycielem, której następnie został dyrektorem generalnym, a następnie przejął projekt od firmy, której był współzałożycielem. jego nowa firma, a ten projekt oprogramowania został zbudowany, aby stać się podstawą systemu MacOS, który używam teraz na moim komputerze Apple. W Steve Jobs, Walter Issacson, znajduje się cytat Larry’ego Ellisona, współzałożyciela Oracle, o rozmowie, którą odbył ze Stevem Jobsem, gdy byli na wakacjach na Hawajach.

„Wiesz, Larry, myślę, że znalazłem sposób, by wrócić do Apple i przejąć nad nim kontrolę bez konieczności kupowania go” – powiedział Jobs, gdy szli wzdłuż brzegu. Ellison wspomina: „Wyjaśnił swoją strategię, która polegała na tym, że Apple kupił NeXT, a następnie wszedł do zarządu i był o krok od bycia CEO”.

Isaacson, Walter. Steve Jobs. Nowy Jork ; Toronto: Simon & Schuster, 2011. s.300

W ten sposób MacOS stał się systemem operacyjnym opartym na Uniksie i umożliwił uruchamianie polecenia Unix na terminalu w MacOS.

Windows nie stał się podobny do Uniksa. Po wielkim sukcesie Windows 95/98, Windows przeszedł do budowania swojego systemu operacyjnego z NT (akronim NT już nic nie oznacza, ale istnieje wiele teorii i historii dotyczących wyborów NT – zabawna królicza nora do zejścia, jeśli interesuje Cię historia Microsoft). Począwszy od systemu Windows 2000, firma Microsoft wycofała zależność od systemu DOS (prowadząc do tego niesamowitego filmu, na którym Bill Gates wyłącza DOS po wydaniu Windows XP). Windows nadal był oparty na NT dla wszystkich kolejnych wydań, w tym Windows 10.

Pomiędzy Apple a Microsoftem pojawiłby się trzeci konkurent. Linux został opracowany i wydany przez Linusa Torvaldsa w 1991 roku. Jest to system operacyjny podobny do Uniksa, a ponieważ jest zarówno darmowy, jak i łatwy w dostosowywaniu, został szybko przyjęty przez społeczności programistów, które nie chciały być uwięzione w Apple lub Microsoft. Linux nadal zyskiwał na popularności i był używany w wielu różnych środowiskach komputerowych. Na przykład Android, który jest mobilnym systemem operacyjnym, jest oparty na systemie Linux i jest najpopularniejszym systemem operacyjnym dla smartfonów. Linux utrzymywał również polecenia powłoki systemu Unix. Więcej informacji na temat systemu Linux, Z systemem Linux, wydanie trzecie to obszerne źródło informacji.

Oparcie się na Uniksie oznaczało, że polecenia napisane w terminalu MacOS i terminalu Linux są składniowo takie same, ponieważ oba używają powłoki bash (lub jej pochodnej, takiej jak zsh). Użytkownicy systemu Windows często muszą przetłumaczyć polecenie, które widzą w samouczku napisanym dla powłoki bash, aby działała w programie Windows PowerShell lub Cmd. Użytkownicy Linuksa lub MacOS mogą po prostu uruchomić polecenie. Deweloperzy spędzają mnóstwo czasu w terminalu. Oznaczało to, że zainstalowanie i używanie niektórych narzędzi programistycznych dla Ethereum (i wielu innych języków), takich jak nvm, Node, npm i Truffle, wymagało innego zestawu instrukcji dla użytkowników systemu Windows. 

W rezultacie istnieje większa kompatybilność między Linuksem i MacOS – i dlatego wiele poleceń używanych w terminalu Ubuntu, dystrybucji Linuksa, może być również (w dużej mierze) używanych zamiennie w terminalu MacOS. Windows w przeszłości zapuszczał się na system operacyjny oparty na systemie Unix, ale wydanie WSL w 2016 roku dla systemu Windows 10 było pierwszym przypadkiem, gdy użytkownicy systemu Windows mogli używać jądra systemu Linux, jednocześnie korzystając z systemu Windows bez maszyny wirtualnej. WSL 2 stworzył lekką maszynę wirtualną, która działa w systemie Windows, co oznacza, że ​​programista nie musi już zajmować się problemami z pamięcią i pamięcią masową związanymi z pobieraniem wirtualnego pudełka lub używaniem VMWare do zainstalowania Ubuntu.

Dlaczego ma to wpływ na programistów Ethereum? Ethereum Genesis Block miał miejsce 30 lipca 2015 r., A według współzałożyciela Ethereum i założyciela ConsenSys Joe Lubina, większość prac rozwojowych miała miejsce na Ubuntu i MacOS X. Dlatego nie jest zaskakujące, że wiele oryginalnych narzędzi działało dobrze z systemami operacyjnymi typu Unix. Chociaż istnieją narzędzia opracowane specjalnie dla systemu Windows, często doświadczenie programistów jest lepsze, gdy mogą używać terminala podobnego do systemu Unix do instalowania oprogramowania i uruchamiania poleceń. 

Microsoft włożył pracę, aby wydać WSL 2 i poprawił się do tego, gdzie wielu w społeczności używa go od końca 2018 roku do zainstalowania dystrybucji Linuksa. Jeśli korzystasz z systemu Windows, nie masz już bólu związanego z koniecznością wykonywania nieznacznie zmodyfikowanego zestawu instrukcji podczas tworzenia aplikacji dApp. Użytkownicy systemu Windows mogą teraz śledzić samouczki Ethereum dla systemu Linux lub Mac.

Bardzo zabawną lekturą, którą polecił mi Avery Erwin, jest Neal Stephenson „Na początku była linia poleceń”, esej / książka na temat jego osobistych doświadczeń z systemami operacyjnymi w okresie opisanym w tej krótkiej historii.

Wniosek

Ten samouczek i krótka historia dają użytkownikowi systemu Windows pewien wgląd w konfigurowanie środowiska programistycznego przy użyciu WSL 2, Ubuntu, VSCode, npx, Node, npm i Truffle. Daje też trochę historii tego, jak i dlaczego musimy to zrobić. Jeśli masz jakieś uwagi lub pomocne wskazówki oparte na swoim doświadczeniu, prześlij je na adres [e-mail chroniony] więc mogę zaktualizować ten artykuł i podziękować za Twój wkład.

Specjalne podziękowania dla Onyebuchi Valentine Ahiwe, Clemens Wan, Anthony’ego Albertorio, Eli Geschwinda, Nicka Nelsona i innych uprzejmych przyjaciół za recenzję i komentarze na temat tego samouczka i historii. Doceniam twoje komentarze.

ProgramiściInteligentne kontraktyWindowsNewsletterZapisz się do naszego newslettera, aby otrzymywać najnowsze wiadomości o Ethereum, rozwiązania dla przedsiębiorstw, zasoby dla programistów i nie tylko.

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