Kan jeg lage et Linux / MacOS-lignende Ethereum Developer Setup på Windows?: En guide til å sette opp Windows Subsystem for Linux

blogg 1NyheterUtviklereEnterpriseBlockchain ExplainedBegivenheter og konferanserPresseNyhetsbrev

Abonner på vårt nyhetsbrev.

Epostadresse

Vi respekterer personvernet ditt

HomeBlogDevelopers

Kan jeg lage et Linux / MacOS-lignende Ethereum Developer Setup på Windows?: En guide til å sette opp Windows Subsystem for Linux

Trinnvise instruksjoner om hvordan du bruker WSL 2 til å sette opp ditt Ethereum smarte kontraktsutviklingsmiljø og arbeidsflyt av Thomas Hay 18. november 2020 Publisert 18. november 2020

blockchain

På ConsenSys Academy ba vi alle i utviklerprogrammet om å laste ned en Virtual Box og Ubuntu i starten. Målet vårt er at hver student kan ha en jevn brukeropplevelse når de setter opp sitt lokale utviklingsmiljø. Uansett hvilket innfødte operativsystem (OS), ville alle ha Ubuntu og kunne kjøre den samme programvaren. Dette er en god ide i teorien. I praksis har vi jobbet med studenter for å håndtere problemer knyttet til tilgjengelig minne på maskinen deres for å få dette til å fungere. Nesten alltid vil Mac-brukere fortsette uten å laste ned Ubuntu, på grunn av at MacOS er et Unix-basert system. Windows-brukere er ofte frustrerte, siden de ikke var i stand til å bruke utviklingsverktøyene ved å følge instruksjonene vi anbefaler på deres opprinnelige operativsystem, og hvis de ønsket å kjøre alt på Windows, måtte de følge med et sett med instruksjoner parallelt med de for Linux og MacOS-brukere. 

Vi hadde fulgt utviklingen av Windows Subsystem for Linux (WSL). Lanseringen av WSL 2 falt sammen med spørsmål fra vår nåværende gruppe av Bootcamp-studenter om de kunne bruke WSL 2 i stedet for å laste ned en Virtual Box. Jeg følte at det var fortid å gi større fokus på hvordan du bruker WSL 2 for å gi Windows-brukere en Linux-lignende utvikleropplevelse mens du bruker Ethereum-verktøyet som vi anbefaler. Denne artikkelen vil dele med deg noen idiosynkrasier vi opplevde når vi brukte WSL 2 for å konfigurere Ethereum-utviklermiljøet (som det du må gjøre for å bruke trøffel kommandoer). 

Økosystemet vårt har mange nyttige artikler og veiledninger der ute, men folk lager dem forutsatt at brukeren har Linux eller MacOS installert. Jeg ønsker at Ethereum skal være tilgjengelig for alle, og ønsket å dele det jeg mener for øyeblikket er den enkleste måten for utviklere som bruker Windows å sette opp sitt utviklingsmiljø slik at de kan følge med på flertallet av artiklene som er publisert om utvikling av smarte kontrakter.

Du kan hoppe inn i veiledningen nedenfor, eller gå videre til en kort historie om hvorfor Linux- og MacOS-brukere tradisjonelt hadde en enklere vei til utviklerverktøy i Ethereum.

Bruke WSL 2 til å konfigurere Ethereum-utviklermiljøet ditt

Trinn 1: Laste ned WSL 2

TLDR; Windows gjør en veldig god jobb med å lede deg gjennom instruksjonene for hvordan du installerer WSL 2 på maskinen din. “Windows Subsystem for Linux Installasjonsveiledning for Windows 10”Er en omfattende artikkel fordi den både lever opp til tittelen, samt gir tips om feilsøking. Vi har også funnet ut at seing starter kl 8:24 av WSL2: Kode raskere på Windows Subsystem for Linux! | Tabs vs Spaces video gir litt ekstra sammenheng rundt hvordan du aktiverer WSL via grafisk brukergrensesnitt (GUI) i stedet for via kommandolinje (eller PowerShell). Det kan hende du må starte datamaskinen på nytt flere ganger, og i noen tilfeller kan dette ta litt tid, avhengig av maskinvaren maskinen har. Jeg ville være klar til å sette av en halv dag som et worst case-scenario, bare for å klare forventningene dine til alle installasjonene du er i ferd med å gjøre.

I trinn 6 i nevnte artikkel, Jeg valgte å installere Ubuntu 20.04 LTS, da jeg var mest komfortabel med denne fordelingen mot de andre som er oppført. Jeg prøvde å installere Ubuntu via den medfølgende lenken til Windows-butikken, tilgjengelig via nettleseren min, men Windows-maskinen min ba meg om å installere ved hjelp av det innebygde Microsoft Store-programmet.

Jeg installerte også Windows Terminal, som var valgfritt. Jeg gjorde dette etter å ha gjort en rekke feil du vil se i trinn 3. I stedet for å fortsette å “gå min egen vei”, bestemte jeg meg for å følge med på hva Microsoft fortalte meg. Fordelen med Windows Terminal er at du i et terminalvindu kan åpne flere terminalfaner i forskjellige operativsystemer.


Trinn 2: Kjører WSL 2 sammen med VSCode

Vi foreslår at du bruker hvilken IDE du er mest komfortabel med. Personlig bruker jeg VSCode, så jeg ønsket å finne ut hvordan jeg kunne bruke VSCode ved siden av WSL 2. Jeg har allerede VSCode installert, så hvis du ikke har den installert, fortsett og installer den. For å få det til å fungere sammen med Ubuntu, fant jeg svaret på 5:31 av en video på WSL opprettet av microsoft.

Ved hjelp av kommandoen:

kode. 

automatisk lastet ned, installert og startet VSCode, men jeg fant ut at utvidelsene mine som jeg bruker for å skrive smarte kontrakter ikke automatisk ble installert.

Bare å klikke på den grønne teksten som er installert i WSL: Ubuntu. VSCode ba meg også om å installere noen ekstra biblioteker via terminalen i VSCode, og ba meg om å skrive inn passordet mitt for Linux-distribusjonen (som er Ubuntu 20.04 LTS)

Det er en lengre opplæring som heter Kom i gang med Visual Studio Code for Windows Subsystem for Linux som gir en lengre gjennomgang hvis du ennå ikke har installert VSCode. Fra dette punktet fremover gjorde jeg alle de følgende trinnene inne i terminalen til VSCode, som nå var satt opp som et bash-skall.

Trinn 3. Installer nvm, Node og npm

Før vi installerer utviklerverktøy som Truffle, må vi installere nvm, Node og npm. Henvis direkte til artikkelen Sett opp din NodeJS-utvikling med WSL 2.  

Den første idiosynkrasien jeg kjørte inn i var at dokumentasjonen ikke hadde den mest oppdaterte versjonen av nvm oppført, og derfor anbefaler jeg å gå til nvm GitHub-depot for å finne ut den nåværende utgivelsen. Etter at jeg hadde installert nvm, da jeg kjørte kommandokommandoen -v nvm for å bekrefte at den var installert i terminalen min, skjedde det ingenting (nvm skulle returneres). Det foreslo at jeg lukker terminalen min og åpner den på nytt, og deretter kjører kommandoen igjen. Da jeg gjorde dette, fikk jeg nvm.

Så skrev jeg inn nvm install node – lts jeg valgte LTS (langvarig stabil) utgivelse. Etter å ha sjekket at jeg hadde både node og npm installert (node ​​–versjon, npm –versjon). Jeg gikk videre til neste trinn. 

Ikke gjør følgende

Dette er et tydelig eksempel på ikke å lese dokumentasjonen (les alltid dokumentasjonen). Trinnene jeg beskrev ovenfor gjorde jeg etter først å ha gått nedover veien for ikke å lese dokumentene hele veien gjennom. Kronologisk åpnet jeg terminalen først med VSCode og skrev inn

node -v

for å se om jeg hadde den installert. Siden jeg ikke hadde node installert, returnerte følgende:

Jeg skrev inn det foreslåtte

sudo apt installere nodejs

og ble bedt om passordet mitt. for min Linux-distribusjon (Ubuntu 20.04 LTS). Jeg skrev deretter inn

node -v

Versjonen som returnerte var 10.19.0. Jeg så på nettstedet Node.js, og den anbefalte stabile utgivelsen var 14.15.0 LTS. Ikke det jeg ønsket å skje. I tillegg, da jeg skrev inn

npm -v

for å se om jeg hadde NPM installert, fikk jeg dårlig tolk: Ingen slik fil eller katalog. Hva gikk galt? Hvis jeg bare begynte med å lese artikkelen, ville jeg ha sett følgende

“Versjonen av Node som kan installeres med Ubuntus apt-get-kommando er for tiden utdatert”

Hvis du har funnet at du har gått nedover denne banen, må du avinstallere Nodejs – her er noen nyttige instruksjoner, men du vil bruke kommandoen

sudo apt-get purge nodejs

i terminalen for å gjøre det.

Hvis du navigerer direkte til Node.js-nettstedet og laster ned og installerer, installerer du Windows-distribusjonen, som du ikke kan bruke i Ubuntu. Så les dokumentasjonen ovenfor, og ikke prøv å bare “hoppe inn:.

Lær av feilene mine og spar deg tid. Les dokumentasjonen.

Trinn 4. Installer Truffle Suite

På dette tidspunktet kunne jeg nå følge trinnene beskrevet på ConsenSys Developer Portal.

Sørg for å kommentere utviklingsnettverket (som vist nedenfor) i filen truffle-config.js

Hvis du ikke gjør det, får du følgende feil:

Vent … Jeg satte opp alt, og det var en feil, jeg gikk bort, og nå som jeg har den i gang, har jeg glemt passordet mitt til Linux-distribusjonen!!!

Ahh, ja. Jeg har også gjort dette. Jeg fant artikkelen “Opprett en brukerkonto og passord for din nye Linux-distribusjon” veldig hjelpsom. 

Ting jeg installerte i Windows dukker ikke opp når jeg kjører Ubuntu! Hva gir!!

Husk at Ubuntu er et annet operativsystem enn Windows. Programmer som er installert på Windows forventes ikke å kjøre Ubuntu-distribusjon umiddelbart og omvendt, med mindre de er spesifikke programmer som er konfigurert til å gjøre det – Windows Terminal er et eksempel. Anta at alt du installerer på den ene ikke vil fungere på den andre for å være trygt.

Hva nå?

Følg nå med trinn 2: Opprett en smart kontrakt og trinn 3: Start en desentralisert applikasjon med de samme kommandoene som disse opplæringene gir.

En kort historie om operativsystemer og konteksten for Ethereum-utviklere

Hvorfor har Windows-brukere en annen opplevelse med Ethereum-utviklerverktøy enn de som bruker Linux eller MacOS? Linux og MacOS er ikke det samme operativsystemet, og det er utallige Linux-distribusjoner. Det virker som om det må være flere sett med verktøy for å håndtere de forskjellige operativsystemene der ute. For å svare på dette spørsmålet krever en kort historieleksjon. Jeg anbefaler å se videoen til Crash Course Operativsystemer: Crash Course Computer Science # 18 for noen kortfattet bakgrunnsinformasjon. 

Historien vår tar opp med Unix. Etter utgivelse av Unix i 1969, dette operativsystemet etablerte seg raskt innen databehandlingssamfunnet. Datamaskiner ble i stor grad dominert av forsknings-, storbedrifts- eller hobby- / hackersamfunn på 1970-tallet, og hadde ikke de grafiske brukergrensesnittene vi er vant til i dag. Unix var terminalbasert på dette tidspunktet, så alt ble gjort via det vi ville kalt kommandolinjen.

1980-tallet falt sammen med at Microsoft og Apple ga ut populære operativsystemer for publikummet. Fremskrittene som disse operativsystemene medførte, sammen med en reduksjon i kostnadene for maskinvare og minne, bidro til å øke antallet mennesker utenfor akademia eller næringslivet som hadde råd til en datamaskin for personlig bruk. Microsoft ga ut Microsoft Disk Operating System (MS-DOS) i 1981. Når Microsoft Windows ble utgitt i 1985, dette grafiske brukergrensesnittbaserte operativsystemet ble bygget på toppen av MS-DOS-kodebasen, gjør datamaskinen mye mer tilgjengelig for sluttbrukeren.

Apple tillot faktisk oppstart av flere operativsystemer på Apple II, som først begynte å selge på slutten av 1970-tallet. Men Apple, før Microsoft, innså hvor viktig en GUI ville være for å drive adopsjon av den personlige datamaskinen. Apples første GUI-baserte operativsystem, Macintosh-operativsystemet (nå kalt Classic MacOS) stammer fra Apple Lisa (LisaOS), en datamaskin som ble utgitt i 1983. Operativsystemet på Lisa var sterkt inspirert av arbeidet som ble utført ved Xeroxs Palo Alto Research Center (PARC), og mange i Xerox PARC-teamet jobbet hos Apple. Da den mye mer populære Apple Macintosh ble utgitt i 1984, kjørte Classic MacOS på den. Når jeg så på gamle bilder og videoer av Macintosh, ble jeg overrasket over hvor kjent et grensesnitt som Classic MacOS er for MacOS som kjører på Apple-datamaskinen min i dag.

Unix hadde vært det dominerende operativsystemet i databehandlingen, og det fortsatte å være populært utenfor det personlige datarommet på 1980-tallet. I løpet av 1980-tallet betydde det at det var tre forskjellige operativsystemer bygget på tre forskjellige kodebaser. Å bruke et program på tvers av disse operativsystemene kunne ikke skje naturlig. Programmene måtte modifiseres for å fungere med operativsystemet. De GUI-baserte operativsystemene til Apple og Microsoft gjorde databehandling tilgjengelig for massene. For utviklere, å bygge et program som kunne fungere på en datamaskin krevde å vite operativsystemet (og det gjør det fortsatt). Men Apple ville ta valg som ville gjøre det lettere for utviklere som er kjent med Unix-kommandoer å bruke MacOS eller et Unix-basert operativsystem, mindre en inngangsbarriere..

Apple begynte å bevege seg mot en Unix-basert operativsystem, som startet i 1988, da Unix-baserte A / UX ble utgitt. På et parallelt spor, NeXT, medstifter av Steve Jobs i 1985 etter avgang fra Apple, opprettet et Unix-basert OS kalt NeXTSTEP. Apple kjøpte NeXT i 1996, og kjøpte den immaterielle eiendommen som skulle bli MacOS X. For å oppsummere forlot Apples medstifter selskapet, var med å grunnlegge et annet dataselskap for å bygge datamaskiner og operativsystemer, som deretter ble kjøpt av selskapet han først var med å grunnlegge, som han senere ble administrerende direktør for, og deretter tok et prosjekt fra hans nye selskap, og det programvareprosjektet ble bygget for å bli grunnlaget for MacOS jeg kjører på Apple-datamaskinen min akkurat nå. I Steve Jobs av Walter Issacson er det et sitat fra Larry Ellison, medstifter av Oracle, om en samtale han hadde med Steve Jobs mens de var på ferie på Hawaii.

“Du kjenner Larry, jeg tror jeg har funnet en måte for meg å komme tilbake til Apple og få kontroll over det uten at du trenger å kjøpe det,” sa Jobs da de gikk langs kysten. Ellison husket: “Han forklarte strategien sin, som var å få Apple til å kjøpe NeXT, så ville han gå på styret og være et skritt unna å være administrerende direktør.”

Isaacson, Walter. Steve Jobs. New York; Toronto: Simon & Schuster, 2011. s.300

Så det ble slik MacOS ble et Unix-basert operativsystem, og gjorde det mulig for Unix-kommandoen å kjøre på terminalen i MacOS.

Windows ble ikke Unix-aktig. Etter den store suksessen til Windows 95/98, Windows gjorde skiftet til å bygge operativsystemet fra NT (akronymet NT står ikke lenger for noe, men det er mange teorier og historier rundt valgene til NT – et morsomt kaninhull å gå ned hvis du er interessert i Microsoft-historien). Fra og med Windows 2000 avskaffet Microsoft avhengigheten av DOS (fører til denne utrolige videoen av Bill Gates som slår av DOS da Windows XP ble utgitt). Windows har fortsatt å være basert på NT for alle påfølgende utgivelser, inkludert Windows 10.

Mellom Apple og Microsoft ville en tredje konkurrent dukke opp. Linux ble utviklet og utgitt av Linus Torvalds i 1991. Det er et Unix-lignende operativsystem, og på grunn av å være både gratis og lett å tilpasse, og det ble raskt adoptert av utviklermiljøer som ikke ønsket å bli låst til Apple eller Microsoft. Linux fortsatte å bli populær, og det ble brukt i mange forskjellige databehandlingsmiljøer. For eksempel er Android, som er et mobiloperativsystem, bygget på Linux, og er det mest populære smarttelefonoperativsystemet. Linux vedlikeholdt også Unix shell-kommandoene. For mer informasjon om Linux, Kjører Linux, tredje utgave er en omfattende ressurs.

Å være basert på Unix har betydd at kommandoer skrevet i MacOS-terminalen og en Linux-terminal er syntaktisk de samme fordi de begge bruker bash-skallet (eller noe avledet av det som zsh). Windows-brukere må ofte oversette en kommando de ser i en opplæring skrevet for at bash-skallet skal fungere i Windows PowerShell eller Cmd. Linux- eller MacOS-brukere kan bare kjøre kommandoen. Utviklere bruker massevis av tid på terminalen. Dette har betydd å installere og bruke visse utviklerverktøy for Ethereum (og mange andre språk), som nvm, Node, npm og Truffle, har krevd et annet sett med instruksjoner for Windows-brukere. 

Resultatet er at det er større kompatibilitet mellom Linux og MacOS – og dermed hvorfor mange av kommandoene som brukes i Ubuntu-terminalen, en Linux-distribusjon, også kan brukes (i stor grad) om hverandre i MacOS-terminalen. Windows har gått inn i Unix-basert OS tidligere, men utgivelsen av WSL i 2016 for Windows 10 var første gang Windows-brukere kunne bruke en Linux-kjerne mens de samtidig brukte Windows uten en virtuell maskin. WSL 2 har opprettet en lett virtuell maskin som kjører inne i Windows, noe som betyr at en utvikler ikke lenger trenger å håndtere minne- og lagringsproblemer knyttet til nedlasting av en virtuell boks eller bruk av VMWare for å installere Ubuntu..

Hvorfor påvirker dette Ethereum-utviklere? Ethereums Genesis Block skjedde 30. juli 2015, og ifølge Ethereum medstifter og grunnlegger av ConsenSys Joe Lubin skjedde det meste av utviklingen på Ubuntu og MacOS X. Derfor er det ikke overraskende at mye av det originale verktøyet fungerte bra med Unix-lignende operativsystemer. Mens det har blitt utviklet verktøy spesielt for Windows, er opplevelsen for utviklere ofte bedre når de kan bruke en Unix-lignende terminal til å installere programvare og kjøre kommandoer.. 

Microsoft satte i gang arbeidet med å få WSL 2 ut, og det har forbedret seg til der mange i samfunnet har brukt det siden slutten av 2018 for å installere en Linux-distribusjon. Hvis du bruker Windows, har du ikke lenger smerten av å måtte følge et litt modifisert sett med instruksjoner når du bygger din dApp. Windows-brukere kan nå følge med Ethereum-opplæringsprogrammer for Linux eller Mac.

En svært underholdende lesning, anbefalt av Avery Erwin, er Neal Stephensons “I begynnelsen var kommandolinjen”, et essay / bok om hans personlige erfaring med operativsystemer i løpet av tidsperioden beskrevet i denne korte historien.

Konklusjon

Denne veiledningen og den korte historikken gir en Windows-bruker litt innsikt i hvordan de skal sette opp utviklingsmiljøet sitt ved hjelp av WSL 2, Ubuntu, VSCode, npx, Node, npm og Truffle. Det gir også litt av historien om hvordan og hvorfor vi må gjøre dette. Hvis du har noen kommentarer eller nyttige tips basert på din erfaring, kan du sende dem til [e-postbeskyttet] så jeg kan oppdatere denne artikkelen og kreditere deg for ditt bidrag.

Spesiell takk til Onyebuchi Valentine Ahiwe, Clemens Wan, Anthony Albertorio, Eli Geschwind, Nick Nelson og flere hyggelige venner for din anmeldelse og kommentarer til denne veiledningen og historien. Jeg setter pris på kommentarene dine.

UtviklereSmart KontrakterWindowsNyhetsbrevAbonner på vårt nyhetsbrev for de siste Ethereum-nyhetene, bedriftsløsninger, utviklerressurser og mer.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map