Kan jag skapa en Linux / MacOS-liknande installation av Ethereum-utvecklare i Windows ?: En guide för att ställa in Windows-delsystem för Linux

blogg 1NyheterUtvecklareFöretagBlockchain förklaradeHändelser och konferenserPressNyhetsbrev

Prenumerera på vårt nyhetsbrev.

E-postadress

Vi respekterar din integritet

HomeBlogDevelopers

Kan jag skapa en Linux / MacOS-liknande installation av Ethereum-utvecklare i Windows ?: En guide för att ställa in Windows-delsystem för Linux

Steg för steg-instruktioner om hur du använder WSL 2 för att ställa in din Ethereum smarta kontraktsutvecklingsmiljö och arbetsflöde av Thomas Hay 18 november 2020 Publicerad 18 november 2020

blockchain

På ConsenSys Academy bad vi alla i utvecklarprogrammet att ladda ner en Virtual Box och Ubuntu i början. Vårt mål är att varje student kan ha en konsekvent användarupplevelse när de ställer in sin lokala utvecklingsmiljö. Oavsett deras inhemska operativsystem (OS) skulle alla ha Ubuntu och kunna köra samma programvara. Detta är en bra idé i teorin. I praktiken har vi arbetat med studenter för att hantera frågor relaterade till tillgängligt minne på deras maskin för att få detta att fungera. Nästan alltid kommer Mac-användare att fortsätta utan att ladda ner Ubuntu, på grund av att MacOS är ett Unix-baserat system. Windows-användare är ofta frustrerade, eftersom de inte kunde använda utvecklingsverktygen enligt instruktionerna som vi rekommenderar på deras inbyggda operativsystem, och om de ville köra allt på Windows måste de följa med en uppsättning instruktioner parallellt med de för Linux och MacOS-användare. 

Vi hade övervakat utvecklingen av Windows Subsystem for Linux (WSL). Lanseringen av WSL 2 sammanföll med frågor från vår nuvarande kohort av Bootcamp-studenter om de kunde använda WSL 2 istället för att ladda ner en Virtual Box. Jag kände att det var förflutet att ge större fokus på hur man använder WSL 2 för att ge Windows-användare en Linux-liknande utvecklarupplevelse när man använder Ethereum-verktyget som vi rekommenderar. Den här artikeln kommer att dela med dig av några egenheter som vi stött på när vi använde WSL 2 för att konfigurera din Ethereum-utvecklarmiljö (som vad du måste göra för att använda tryffel kommandon). 

Vårt ekosystem har många bra artiklar och handledning där ute, men människor skapar dem förutsatt att användaren har Linux eller MacOS installerat. Jag vill att Ethereum ska vara tillgängligt för alla och ville dela det jag tror är det enklaste sättet för utvecklare som använder Windows att ställa in sin utvecklingsmiljö så att de kan följa med de flesta artiklar som publiceras om att utveckla smarta kontrakt.

Du kan hoppa in i handledningen nedan eller hoppa över till en kort historik om varför Linux- och MacOS-användare traditionellt hade en enklare väg till utvecklarverktyg i Ethereum.

Använda WSL 2 för att ställa in din Ethereum-utvecklarmiljö

Steg 1: Ladda ner WSL 2

TLDR; Windows gör ett riktigt bra jobb med att gå igenom instruktionerna för hur du installerar WSL 2 på din maskin. “Installationshandbok för Windows Subsystem for Linux för Windows 10”Är en omfattande artikel eftersom den både lever upp till titeln och ger felsökningstips. Vi upptäckte också att titta på börjar kl 8:24 av WSL2: Kod snabbare på Windows Subsystem för Linux! | Tabs vs Spaces video ger lite ytterligare sammanhang kring hur du aktiverar WSL via grafiskt användargränssnitt (GUI) istället för via kommandorad (eller PowerShell). Du kan behöva starta om datorn flera gånger, och i vissa fall kan det ta lite tid, beroende på vilken maskinvara din maskin har. Jag skulle vara redo att lägga undan en halv dag som ett värsta fall, bara för att hantera dina förväntningar på alla installationer du håller på att göra.

I steg 6 i nämnda artikel, Jag valde att installera Ubuntu 20.04 LTS, eftersom jag var mest bekväm med denna distribution jämfört med de andra listade. Jag försökte installera Ubuntu via den medföljande länken till Windows-butiken, nås via min webbläsare, men min Windows-maskin uppmanade mig sedan att installera med den inbyggda Microsoft Store-applikationen.

Jag installerade också Windows Terminal, vilket var frivilligt. Jag gjorde det efter att ha gjort en massa misstag som du kommer att se i steg 3. I stället för att fortsätta “gå min egen väg” bestämde jag mig för att följa med på vad Microsoft berättade för mig. Fördelen med Windows Terminal är att i ett terminalfönster kan du öppna flera terminalflikar i olika operativsystem.


Steg 2: Köra WSL 2 tillsammans med VSCode

Vi föreslår att du använder vilken IDE du är mest bekväm med. Personligen använder jag VSCode, så jag ville ta reda på hur jag kunde använda VSCode tillsammans med WSL 2. Jag har redan VSCode installerat, så om du inte har det installerat, fortsätt och installera det. För att få det att fungera tillsammans med Ubuntu hittade jag svaret på 5:31 av en video på WSL skapad av microsoft.

Med kommandot:

koda. 

laddade ner automatiskt, installerade och startade VSCode, men jag upptäckte att mina tillägg som jag använder för att skriva smarta kontrakt inte installeras automatiskt.

Klicka bara på den gröna texten som är installerad i WSL: Ubuntu. VSCode uppmanade mig också att installera några ytterligare bibliotek via terminalen i VSCode och bad mig att ange mitt lösenord för min Linux-distribution (vilket är Ubuntu 20.04 LTS)

Det finns en längre handledning som heter Kom igång med Visual Studio Code för Windows Subsystem för Linux som ger en längre genomgång om du ännu inte har installerat VSCode. Från och med den här tiden gjorde jag alla följande steg inuti terminalen på VSCode, som nu var inställt som ett bash-skal.

Steg 3. Installera nvm, Node och npm

Innan vi installerar utvecklarverktyg som Truffle, måste vi installera nvm, Node och npm. Hänvisa direkt till artikeln Ställ in din NodeJS-utveckling med WSL 2.  

Den första egenheten som jag stötte på var att dokumentationen inte hade den senaste versionen av nvm listad, och därför rekommenderar jag att gå till nvm GitHub-förvar för att ta reda på den aktuella versionen. Efter att ha installerat nvm, när jag körde kommandokommandot -v nvm för att bekräfta att det var installerat i min terminal, hände ingenting (nvm ska returneras). Det föreslog att jag skulle stänga min terminal och öppna den igen och sedan köra kommandot igen. När jag gjorde det här fick jag nvm.

Sedan skrev jag in nvm install node –lts jag valde LTS (långsiktig stabil) release. Efter att ha kontrollerat att jag hade både nod och npm installerad (nod –version, npm –version). Jag gick vidare till nästa steg. 

Gör inte följande

Detta är ett tydligt exempel på att inte läsa dokumentationen (läs alltid dokumentationen). Stegen jag redogjorde för ovan gjorde jag efter att jag först gick ner på vägen för att inte läsa dokumenten hela vägen. Kronologiskt öppnade jag terminalen först med VSCode och skrev in

nod -v

för att se om jag hade den installerad. Eftersom jag inte hade installerat nod, återkom följande:

Jag skrev in det föreslagna

sudo apt installera nodejs

och blev ombedd att ange mitt lösenord. för min Linux-distribution (Ubuntu 20.04 LTS). Jag skrev sedan in

nod -v

Den version som returnerades var 10.19.0. Jag tittade på Node.js webbplats och den rekommenderade stabila utgåvan var 14.15.0 LTS. Inte vad jag ville hända. Dessutom när jag skrev in

npm -v

för att se om jag hade NPM installerat fick jag dålig tolk: Ingen sådan fil eller katalog. Vad gick fel? Om jag bara började med att läsa artikeln skulle jag ha sett följande

“Den version av Node som kan installeras med Ubuntus apt-get-kommando är för närvarande föråldrad”

Om du upptäckte att du har gått denna väg måste du avinstallera Nodejs – här är några användbara instruktioner, men du kommer att använda kommandot

sudo apt-get purge nodejs

inom terminalen för att göra det.

Om du navigerar direkt till Node.js webbplats och laddar ner och installerar kommer du att installera Windows-distributionen, som du inte kan använda i Ubuntu. Så läs ovanstående dokumentation först och försök inte bara “hoppa in:.

Lär dig av mina misstag och spara tid. Läs dokumentationen.

Steg 4. Installera Truffle Suite

Vid den här tiden kunde jag nu följa stegen som beskrivs på ConsenSys Developer Portal.

Var noga med att avmarkera utvecklingsnätverket (se nedan) i filen truffle-config.js

Om du inte gör det får du följande fel:

Vänta … Jag ställde upp allt och det uppstod ett fel, jag gick iväg och nu när jag har det igång har jag glömt mitt lösenord till min Linux-distribution!!!

Ahh, ja. Jag har också gjort det här. Jag hittade artikeln “Skapa ett användarkonto och lösenord för din nya Linux-distribution” väldigt hjälpsam. 

Saker jag installerade i Windows visas inte när jag kör Ubuntu! Vad ger!!

Kom ihåg att Ubuntu är ett annat operativsystem än Windows. Program som installeras på Windows förväntas inte köra Ubuntu-distribution direkt och vice versa, såvida de inte är specifika program som är konfigurerade för att göra det – Windows Terminal är ett exempel. Antag att allt du installerar på det ena inte fungerar på det andra för att vara säkert.

Vad händer nu?

Följ nu steg 2: Skapa ett smart kontrakt och steg 3: Starta en decentraliserad applikation med samma kommandon som dessa självstudier ger.

En kort historia av operativsystem och sammanhang för Ethereum-utvecklare

Varför har Windows-användare en annan upplevelse med Ethereum-utvecklarverktyg än de som använder Linux eller MacOS? Linux och MacOS är inte samma operativsystem, och det finns otaliga Linux-distributioner. Det verkar som om det måste finnas flera uppsättningar verktyg för att hantera de olika operativsystemen där ute. För att svara på denna fråga krävs en kort historielektion. Jag rekommenderar att du tittar på Crash Course’s Video Operativsystem: Crash Course Computer Science # 18 för lite kortfattad bakgrundsinformation. 

Vår historia hämtar med Unix. Efter släppt av Unix 1969, detta operativsystem etablerade sig snabbt inom datorsamhället. Datorer dominerades mycket av forsknings-, storföretags- eller hobby- / hackersamhällen under 1970-talet och hade inte de grafiska användargränssnitt som vi är vana vid idag. Unix var terminalbaserat just nu, så allt gjordes via det vi skulle kalla kommandoraden.

1980-talet sammanföll med att Microsoft och Apple släppte populära operativsystem för den personliga datorpubliken. De framsteg som dessa operativsystem medförde, tillsammans med en minskning av kostnaden för hårdvara och minne, hjälpte till att öka antalet människor utanför akademin eller näringslivet som hade råd med en dator för personligt bruk. Microsoft släppte Microsoft Disk Operating System (MS-DOS) 1981. När Microsoft Windows släpptes 1985, detta grafiska användargränssnittsbaserade operativsystem byggdes ovanpå MS-DOS-kodbasen, gör datorn mycket mer tillgänglig för slutanvändaren.

Apple tillät faktiskt start av flera operativsystem på Apple II, som först började säljas i slutet av 1970-talet. Men Apple, före Microsoft, insåg hur viktigt ett GUI skulle vara för att driva antagandet av persondatorn. Apples första GUI-baserade operativsystem, Macintosh-operativsystemet (nu kallat Classic MacOS) härstammar från Apple Lisa (LisaOS), en dator som släpptes 1983. Operativsystemet på Lisa var starkt inspirerat av arbete som utförts vid Xerox Palo Alto Research Center (PARC), och många i Xerox PARC-teamet arbetade på Apple. När den mycket mer populära Apple Macintosh släpptes 1984 körde Classic MacOS på den. När jag tittade på gamla bilder och videor från Macintosh, blev jag förvånad över hur bekant ett gränssnitt som Classic MacOS är för MacOS som körs på min Apple-dator idag.

Unix hade varit det dominerande operativsystemet i datorvärlden, och det fortsatte att vara populärt utanför det personliga datorutrymmet på 1980-talet. Under 1980-talet innebar det att det fanns tre olika operativsystem byggda på tre olika kodbaser. Att använda ett program över dessa operativsystem kunde inte ske naturligt. Programmen måste modifieras för att fungera med operativsystemet. De GUI-baserade operativsystemen från Apple och Microsoft gjorde datorer tillgängliga för massorna. För utvecklare behövde man veta operativsystemet (och det gör det fortfarande) för att bygga ett program som kan fungera på en dator. Men Apple skulle göra val som skulle göra det lättare för utvecklare som är bekanta med Unix-kommandon att använda MacOS eller ett Unix-baserat operativsystem mindre inträdeshinder.

Apple började flytta mot en Unix-baserat operativsystem, med början 1988, då Unix-baserade A / UX släpptes. På ett parallellt spår, NeXT, som grundades av Steve Jobs 1985 när han lämnade Apple, skapade ett Unix-baserat OS som heter NeXTSTEP. Apple köpte NeXT 1996 och förvärvade immateriella rättigheter som skulle bli MacOS X. För att sammanfatta lämnade Apples grundare företaget, grundade ett annat datorföretag för att bygga datorer och operativsystem, som sedan köptes av det företag han först grundade, som han därefter blev VD för, och tog sedan ett projekt från hans nya företag, och det programvaruprojektet byggdes för att bli grunden för MacOS jag kör på min Apple-dator just nu. I Steve Jobs av Walter Issacson finns ett citat från Larry Ellison, grundare av Oracle, om ett samtal han hade med Steve Jobs medan de var på semester på Hawaii.

“Du känner Larry, jag tror att jag har hittat ett sätt för mig att komma tillbaka till Apple och få kontroll över det utan att du behöver köpa det”, sa Jobs när de gick längs stranden. Ellison erinrade, “Han förklarade sin strategi, som var att få Apple att köpa NeXT, då skulle han gå på styrelsen och vara ett steg från att vara VD.”

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

Så så blev MacOS ett Unix-baserat operativsystem och gjorde det möjligt för Unix-kommandot att köra på terminalen i MacOS.

Windows blev inte Unix-liknande. Efter den stora framgången med Windows 95/98, Windows gjorde övergången till att bygga sitt operativsystem från NT (akronymen NT står inte längre för någonting, men det finns många teorier och historier kring valen av NT – ett roligt kaninhål att gå ner om du är intresserad av Microsofts historia). Från och med Windows 2000 upphörde Microsoft beroendet av DOS (vilket leder till denna otroliga video av Bill Gates som stänger av DOS när Windows XP släpptes). Windows har fortsatt att baseras på NT för alla efterföljande utgåvor, inklusive Windows 10.

Mellan Apple och Microsoft skulle en tredje konkurrent dyka upp. Linux utvecklades och släpptes av Linus Torvalds 1991. Det är ett Unix-liknande operativsystem, och på grund av att det är både gratis och lätt att anpassa, och det antogs snabbt av utvecklargrupper som inte ville bli låsta i Apple eller Microsoft. Linux fortsatte att vinna popularitet och det hittades i många olika datormiljöer. Till exempel är Android, som är ett mobiloperativsystem, byggt på Linux och är det mest populära smarttelefonoperativsystemet. Linux behöll också Unix-skalkommandona. För mer information om Linux, Kör Linux, tredje upplagan är en omfattande resurs.

Att vara baserad av Unix har inneburit att kommandon skrivna i MacOS-terminalen och en Linux-terminal är syntaktiskt desamma eftersom de båda använder bash-skalet (eller något derivat av det som zsh). Windows-användare måste ofta översätta ett kommando som de ser i en handledning skriven för att bash-skalet ska fungera i Windows PowerShell eller Cmd. Linux- eller MacOS-användare kan bara köra kommandot. Utvecklare tillbringar massor av tid i terminalen. Detta har inneburit installation och användning av vissa utvecklarverktyg för Ethereum (och många andra språk), som nvm, Node, npm och Truffle, har krävt en annan uppsättning instruktioner för Windows-användare. 

Resultatet är att det finns större kompatibilitet mellan Linux och MacOS – och därför kan många av kommandona som används i Ubuntu-terminalen, en Linux-distribution, också användas (till stor del) utbytbart i MacOS-terminalen. Windows har tidigare gått in i Unix-baserat OS, men lanseringen av WSL 2016 för Windows 10 var första gången som Windows-användare kunde använda en Linux-kärna samtidigt som de använde Windows utan en virtuell maskin. WSL 2 har skapat en lätt virtuell maskin som körs i Windows, vilket innebär att en utvecklare inte längre behöver hantera minnes- och lagringsproblem relaterade till att ladda ner en virtuell låda eller använda VMWare för att installera Ubuntu.

Varför påverkar detta Ethereum-utvecklare? Ethereums Genesis Block inträffade den 30 juli 2015, och enligt Ethereums grundare och grundare av ConsenSys Joe Lubin skedde det mesta av utvecklingen på Ubuntu och MacOS X. Därför är det inte förvånande att mycket av det ursprungliga verktyget fungerade bra med Unix-liknande operativsystem. Medan det har utvecklats verktyg speciellt för Windows, är upplevelsen för utvecklare ofta bättre när de kan använda en Unix-liknande terminal för att installera programvara och köra kommandon. 

Microsoft satsade på att få ut WSL 2 och det har förbättrats till där många inom samhället har använt det sedan slutet av 2018 för att installera en Linux-distribution. Om du använder Windows har du inte längre ont att behöva följa en lite modifierad uppsättning instruktioner när du bygger din dApp. Windows-användare kan nu följa med Ethereum-självstudier för Linux eller Mac.

En mycket underhållande läsning, rekommenderad av Avery Erwin, är Neal Stephensons ”I början var kommandoraden”, en uppsats / bok om hans personliga erfarenhet av operativsystem under den tidsperiod som beskrivs i denna korta historia.

Slutsats

Denna handledning och korta historik ger en Windows-användare lite inblick i hur man ställer in sin utvecklingsmiljö med WSL 2, Ubuntu, VSCode, npx, Node, npm och Truffle. Det ger också lite av historien om hur och varför vi måste göra detta. Om du har några kommentarer eller användbara tips baserat på din erfarenhet, skicka dem till [e-postskyddad] så jag kan uppdatera den här artikeln och berömma dig för ditt bidrag.

Särskilt tack till Onyebuchi Valentine Ahiwe, Clemens Wan, Anthony Albertorio, Eli Geschwind, Nick Nelson och fler vänliga vänner för din recension och kommentarer till denna handledning och historia. Jag uppskattar dina kommentarer.

UtvecklareSmart ContractsWindowsNewsletterPrenumerera på vårt nyhetsbrev för de senaste Ethereum-nyheterna, företagslösningar, utvecklarresurser och 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