Ali lahko ustvarim Linux / MacOS podoben program Ethereum Developer Setup v operacijskem sistemu Windows ?: Vodnik za nastavitev podsistema Windows za Linux

blog 1NewsDevelopersEnterpriseBlockchain ExplainedDogodki in konferencePressGlasila

Naročite se na naše novice.

Email naslov

Spoštujemo vašo zasebnost

DomovBlogDevelopers

Ali lahko ustvarim Linux / MacOS podoben program Ethereum Developer Setup v operacijskem sistemu Windows ?: Vodnik za nastavitev podsistema Windows za Linux

Navodila po korakih, kako uporabiti WSL 2 za nastavitev okolja za razvoj pametnih pogodb Ethereum in delovnega toka avtor Thomas Hay 18. november 2020 Objavljeno 18. novembra 2020

blockchain

Na akademiji ConsenSys smo vse v programu za razvijalce prosili, naj na začetku prenesejo Virtual Box in Ubuntu. Naš cilj je, da ima lahko vsak študent dosledno uporabniško izkušnjo pri postavljanju svojega lokalnega razvojnega okolja. Ne glede na njihov izvorni operacijski sistem (OS) bi vsi imeli Ubuntu in lahko zagnali isto programsko opremo. To je dobra ideja v teoriji. V praksi smo s študenti reševali vprašanja, povezana z razpoložljivim pomnilnikom na njihovi napravi, da bi to lahko delovalo. Skoraj vedno bodo uporabniki Maca nadaljevali brez nalaganja Ubuntuja, ker je MacOS sistem, ki temelji na Unixu. Uporabniki operacijskega sistema Windows so pogosto razočarani, saj niso mogli uporabljati razvojnih orodij po navodilih, ki jih priporočamo na svojem domačem operacijskem sistemu, in če so želeli vse zagnati v sistemu Windows, so morali slediti skupaj z nizom navodil, vzporednim tistim za Linux in MacOS uporabniki. 

Spremljali smo razvoj podsistema Windows za Linux (WSL). Zagon WSL 2 je sovpadal z vprašanji naše sedanje kohorte študentov Bootcampa o tem, ali bi lahko uporabili WSL 2, namesto da bi prenesli navidezno škatlo. Zdelo se mi je, da je že pretekel čas, da se bolj osredotočimo na to, kako uporabiti WSL 2, da uporabnikom sistema Windows ponudimo Linuxovo izkušnjo razvijalcev, medtem ko uporabljamo orodje Ethereum, ki ga priporočamo. Ta članek bo z vami delil nekaj posebnosti, na katere smo naleteli pri uporabi WSL 2 za nastavitev vašega okolja za razvijalce Ethereum (na primer, kaj morate storiti, da uporabite tartuf ukazi). 

Naš ekosistem ima veliko koristnih člankov in vadnic, vendar jih ljudje ustvarijo ob predpostavki, da ima uporabnik nameščen Linux ali MacOS. Želim si, da bi bil Ethereum dostopen vsem, in želel bi deliti tisto, za kar menim, da je trenutno najlažji način za razvijalce, ki uporabljajo Windows, da vzpostavijo svoje razvojno okolje, da lahko sledijo večini člankov, objavljenih o razvoju pametnih pogodb.

Lahko skočite v spodnjo vadnico ali preskočite na kratko zgodovino o tem, zakaj so imeli uporabniki Linuxa in MacOS tradicionalno lažjo pot do orodij za razvijalce v Ethereumu..

Uporaba WSL 2 za nastavitev okolja za razvijalce Ethereum

1. korak: Prenos WSL 2

TLDR; Windows vas res dobro popelje skozi navodila, kako namestiti WSL 2 na vaš računalnik. “Vodič za namestitev podsistema Windows za Linux za Windows 10“Je izčrpen članek, saj je v skladu z naslovom in vsebuje nasvete za odpravljanje težav. Ugotovili smo tudi, da gledanje že od 8:24 WSL2: Hitreje kodirajte v podsistemu Windows za Linux! | Tabs vs Spaces video daje nekaj dodatnega konteksta, kako omogočiti WSL prek grafičnega uporabniškega vmesnika (GUI) namesto prek ukazne vrstice (ali PowerShell). Morda boste morali računalnik večkrat znova zagnati, v nekaterih primerih pa lahko traja nekaj časa, odvisno od strojne opreme vaše naprave. Za najslabši scenarij bi bil pripravljen dati pol dneva, samo da bi obvladal vaša pričakovanja glede vseh namestitev, ki jih nameravate narediti.

V 6. koraku zgoraj omenjeni članek, Odločil sem se za namestitev Ubuntu 20.04 LTS, saj mi je bila ta distribucija najbolj všeč v primerjavi z drugimi naštetimi. Poskušal sem namestiti Ubuntu prek ponujene povezave do trgovine Windows, do katere sem prišel prek spletnega brskalnika, vendar me je računalnik Windows pozval k namestitvi z vgrajeno aplikacijo Microsoft Store.

Prav tako sem namestil Windows Terminal, kar je bilo neobvezno. To sem storil po kopici napak, ki jih boste videli v 3. koraku. Namesto da bi nadaljeval “po svoji poti”, sem se odločil slediti temu, kar mi je govoril Microsoft. Prednost sistema Windows Terminal je, da lahko v terminalskem oknu odprete več zavihkov terminala različnih operacijskih sistemov.

2. korak: Zagon WSL 2 skupaj z VSCode

Predlagamo, da uporabite kateri koli IDE, ki vam najbolj ustreza. Osebno uporabljam VSCode, zato sem želel ugotoviti, kako lahko uporabljam VSCode skupaj z WSL 2. VSCode sem že nameščen, zato, če ga nimate nameščenega, nadaljujte in ga namestite. Nato sem odgovor našel na strani, da bi lahko tekel skupaj z Ubuntujem 5:31 videoposnetka o WSL, ki ga je ustvaril Microsoft.

Uporaba ukaza:

Koda. 

samodejno prenesel, namestil in zagnal VSCode, vendar sem ugotovil, da moje razširitve, ki jih uporabljam za pisanje pametnih pogodb, niso samodejno nameščene.

Preprosto kliknite zeleno besedilo, nameščeno v WSL: Ubuntu. VSCode me je tudi pozval, da namestim nekaj dodatnih knjižnic prek terminala znotraj VSCode, in me prosil, da vnesem geslo za svojo distribucijo Linuxa (to je Ubuntu 20.04 LTS)

Obstaja daljša vadnica, imenovana Začnite uporabljati Visual Studio Code za podsistem Windows za Linux ki zagotavlja daljše navodila, če še niste namestili VSCode. Od te točke naprej sem naredil vse naslednje korake znotraj terminala VSCode, ki je bil zdaj nastavljen kot lupina bash.

Korak 3. Namestite nvm, Node in npm

Pred namestitvijo orodij za razvijalce, kot je Truffle, moramo namestiti nvm, Node in npm. Glejte članek Nastavite svoj razvoj NodeJS z WSL 2.  

Prva idiosinkrazija, na katero sem naletel, je bila, da dokumentacija ni imela najnovejše različice nvm, zato priporočam, da greste na nvm skladišče GitHub če želite izvedeti trenutno izdajo. Po namestitvi nvm, ko sem z ukazom -v nvm potrdil, da je nameščen v mojem terminalu, se ni nič zgodilo (nvm je treba vrniti). Predlagal je, da zaprem terminal in ga znova odprem, nato pa znova zaženem ukaz. Ko sem to naredil, sem dobil nvm.

Nato sem vtipkal nvm install node –lts in se odločil za izdajo LTS (dolgoročno stabilno). Po preverjanju, ali imam nameščen tako vozlišče kot npm (vozlišče –verzija, npm –verzija). Premaknil sem se na naslednji korak. 

Ne delajte naslednjega

To je jasen primer neprebranosti dokumentacije (vedno preberite dokumentacijo). Korake, ki sem jih podrobno opisal, sem naredil, potem ko sem prvič šel po poti, da nisem do konca prebral dokumentov. Kronološko sem najprej odprl terminal z VSCode in vtipkal

vozlišče -v

da vidim, če sem ga dal namestiti. Ker nisem imel nameščenega vozlišča, se je vrnilo naslednje:

Vtipkal sem predlagano

sudo apt namestite nodejs

in bil pozvan k vnosu gesla za distribucijo linuxa (Ubuntu 20.04 LTS). Nato sem vtipkal

vozlišče -v

Vrnila se je različica 10.19.0. Ogledal sem spletno mesto Node.js in priporočena stabilna izdaja je bila 14.15.0 LTS. Ne tisto, kar sem hotel, da se zgodi. Poleg tega, ko sem vtipkal

npm -v

da vidim, ali imam nameščen NPM, sem dobil nazaj slab tolmač: takšne datoteke ali imenika ni. Kaj je šlo narobe? Če bi šele začel z branjem članka, bi videl naslednje

“Različica vozlišča, ki jo je mogoče namestiti z Ubuntu-jevim ukazom apt-get, je trenutno zastarela”

Če ste ugotovili, da ste šli po tej poti, morate odstraniti Nodejs – tukaj je nekaj koristnih navodil, vendar boste uporabili ukaz

sudo apt-get čiščenje nodejs

v terminalu, da to storijo.

Če se neposredno odpravite na spletno mesto Node.js in prenesete in namestite, boste namestili distribucijo sistema Windows, ki je v Ubuntuju ne boste mogli uporabljati. Torej, najprej preberite zgornjo dokumentacijo in ne poskušajte samo “vskočiti:.

Učite se na mojih napakah in si prihranite čas. Preberite dokumentacijo.

Korak 4. Namestite programsko opremo Truffle Suite

Na tej točki lahko zdaj sledim korakom, opisanim na portalu ConsenSys Developer Portal.

Ne pozabite razkomentirati razvojnega omrežja (kot je prikazano spodaj) v datoteki tartuf-config.js

Če tega ne storite, se prikaže naslednja napaka:

Počakaj … vse sem nastavil in prišlo je do napake, odšel sem in zdaj, ko ga imam, sem pozabil geslo za svojo distribucijo linuxa!!!

Ah, ja. Tudi jaz sem to naredil. Našel sem članek »Ustvarite uporabniški račun in geslo za novo distribucijo Linuxa”Zelo koristno. 

Stvari, ki sem jih namestil v sistem Windows, se med zagonom Ubuntuja ne prikažejo! Kaj daje!!

Ne pozabite, da je Ubuntu drugačen operacijski sistem kot Windows. Od programov, nameščenih v sistemu Windows, se ne pričakuje, da bodo takoj zagnali distribucijo Ubuntuja in obratno, razen če so za to konfigurirani posebni programi – primer je Windows Terminal. Predpostavimo, da vse, kar namestite na enega, na drugega ne bo delovalo varno.

Kaj je naslednje?

Zdaj sledite korakom 2: Ustvarite pametno pogodbo in Korak 3: Zaženite decentralizirano aplikacijo z enakimi ukazi, kot jih nudijo te vadnice.

Kratka zgodovina operacijskih sistemov in kontekst za razvijalce Ethereum

Zakaj imajo uporabniki sistema Windows drugačne izkušnje z orodji za razvijalce Ethereum kot tisti, ki uporabljajo Linux ali MacOS? Linux in MacOS nista isti operacijski sistem in Linux distribucij je nešteto. Zdi se, da bi morali obstajati več sklopov orodij za spopadanje z različnimi operacijskimi sistemi. Za odgovor na to vprašanje je potrebna kratka zgodovina. Priporočam ogled videa Crash Course’s Operacijski sistemi: Crash Course Computer Science # 18 za nekaj strnjenih osnovnih informacij. 

Naša zgodba se začne z Unixom. Po izdaja Unixa leta 1969, ta operacijski sistem se je hitro uveljavil v računalniški skupnosti. Računalništvo je v sedemdesetih letih pretežno prevladovalo v raziskovalnih, velikih podjetjih ali hobističnih / hekerskih skupnostih in ni imelo grafičnih uporabniških vmesnikov, ki smo jih vajeni danes. Unix je v tem času temeljil na terminalu, zato je bilo vse narejeno s pomočjo ukazne vrstice.

Osemdeseta leta so sovpadala s tem, ko sta Microsoft in Apple izdala priljubljene operacijske sisteme za občinstvo osebnega računalništva. Napredek, ki so ga prinesli ti operacijski sistemi, skupaj z znižanjem stroškov strojne opreme in pomnilnika je pripomogel k večjemu številu ljudi zunaj akademskega sveta ali poslovnega sveta, ki so si lahko privoščili računalnik za osebno uporabo. Microsoft je leta 1981 izdal operacijski sistem Microsoft Disk (MS-DOS). Kdaj Microsoft Windows je bil izdan leta 1985, ta grafični operacijski sistem, ki temelji na uporabniškem vmesniku, je bil zgrajen na osnovi MS-DOS kode, tako da je računalnik veliko bolj dostopen končnemu uporabniku.

Apple je dejansko dovolil zagon več operacijskih sistemov na Apple II, ki se je prvič začel prodajati konec sedemdesetih let. Toda Apple je pred Microsoftom spoznal, kako pomemben bi bil GUI za pospeševanje sprejemanja osebnega računalnika. Prvi Applov operacijski sistem Macintosh (zdaj imenovan Classic MacOS), ki temelji na grafičnem uporabniškem vmesniku, izvira iz Apple Lisa (LisaOS), računalnik, izdan leta 1983. Operacijski sistem na Lisi je močno navdihnil delo, opravljeno v Xeroxovem raziskovalnem centru Palo Alto (PARC), in mnogi v skupini Xerox PARC so delali v podjetju Apple. Ko je bil leta 1984 izdan veliko bolj priljubljen Apple Macintosh, je na njem deloval Classic MacOS. Ko sem si ogledoval stare slike in videoposnetke Macintosha, sem bil presenečen nad tem, kako poznan je vmesnik, ki ga ima Classic MacOS za MacOS, ki se danes izvaja v mojem računalniku Apple..

Unix je bil prevladujoč operacijski sistem v računalniškem svetu in je bil v osemdesetih letih še naprej priljubljen zunaj prostora osebnega računalništva. V osemdesetih letih je to pomenilo, da obstajajo trije različni operacijski sistemi, zgrajeni na treh različnih kodnih bazah. Uporaba programa v teh operacijskih sistemih se ni mogla zgoditi. Programe je bilo treba prilagoditi za delovanje z OS. Operacijski sistem Apple in Microsoft, ki temelji na GUI, je računalništvo omogočil množicam. Za razvijalce je izdelava aplikacije, ki bi lahko delovala v računalniku, zahtevala poznavanje operacijskega sistema (in to še vedno počne). Toda Apple bi se odločil, da bi razvijalcem, ki poznajo ukaze Unix, olajšal uporabo MacOS-a ali operacijskega sistema, ki temelji na Unixu, manj oviro za vstop.

Apple se je začel premikati proti Operacijski sistem, ki temelji na Unixu, začenši leta 1988, ko je izšel Unix-ov A / UX. Na vzporedni progi, NeXT, ki ga je leta 1985 po odhodu iz Apple soustanovil Steve Jobs, je ustvaril operacijski sistem Unix z imenom NeXTSTEP. Apple je NeXT kupil leta 1996 in pridobil intelektualno lastnino, ki bo postala MacOS X. Za povzetje je soustanovitelj Apple zapustil podjetje, soustanovil drugo računalniško podjetje za izdelavo računalnikov in operacijskih sistemov, ki ga je nato kupilo podjetje, ki ga je najprej ustanovil, katerega pozneje je postal izvršni direktor, nato pa prevzel projekt njegovo novo podjetje in ta programski projekt je bil zasnovan tako, da je postal osnova sistema MacOS, ki ga trenutno uporabljam v svojem računalniku Apple. V Stevu Jobsu Walterja Issacsona je citat Larryja Ellisona, soustanovitelja podjetja Oracle, o pogovoru s Stevom Jobsom, ko sta bila na počitnicah na Havajih.

“Veš Larryja, mislim, da sem našel način, da se vrnem v Apple in ga nadzorujem, ne da bi ga bilo treba kupiti,” je dejal Jobs, ko sta se sprehajala ob obali. Ellison se je spomnil: “Razložil je svojo strategijo, ki je bila, da je Apple kupil NeXT, nato pa bo šel v upravni odbor in bo še korak stran od izvršnega direktorja.”

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

Tako je MacOS tako postal operacijski sistem, ki temelji na Unixu, in omogočil, da se ukaz Unix izvaja na terminalu v MacOS-u..

Windows ni postal podoben Unixu. Po velikem uspehu sistema Windows 95/98, Windows se je preusmeril k izgradnji svojega operacijskega sistema od NT (kratica NT ne pomeni več ničesar, vendar obstaja veliko teorij in zgodovin glede izbire NT – zabavna zajčja luknja, ki se spusti, če vas zanima Microsoftova zgodovina). Od operacijskega sistema Windows 2000 je Microsoft opuščal odvisnost od DOS-a (kar vodi do tega neverjetnega videoposnetka, kako Bill Gates izklopi DOS, ko je izšel Windows XP). Windows še naprej temelji na NT za vse nadaljnje izdaje, vključno z Windows 10.

Med Appleom in Microsoftom bi se pojavil še tretji konkurent. Linux je leta 1991 razvil in izdal Linus Torvalds. Je Unixu podoben operacijski sistem in je bil hkrati brezplačen in enostavno prilagodljiv, zato so ga hitro sprejele skupnosti razvijalcev, ki niso želele biti zaklenjene na Apple ali Microsoft. Linux je še naprej pridobival priljubljenost in se je znašel v številnih različnih računalniških okoljih. Na primer, Android, ki je mobilni operacijski sistem, je zgrajen na Linuxu in je najbolj priljubljen operacijski sistem za pametne telefone. Linux je vzdrževal tudi ukaze lupine Unix. Za več informacij o Linuxu, Zagon Linuxa, tretja izdaja je celovit vir.

Ker temeljijo na Unixu, pomeni, da so ukazi, napisani v terminalu MacOS in Linux, sintaksično enaki, ker oba uporabljata lupino bash (ali neki njen izvod, kot je zsh). Uporabniki sistema Windows morajo pogosto prevesti ukaz, ki ga vidijo v vadnici, napisani za lupino bash, da deluje v sistemih Windows PowerShell ali Cmd. Uporabniki Linuxa ali MacOS-a lahko preprosto zaženejo ukaz. Razvijalci preživijo v terminalu veliko časa. To pomeni, da je namestitev in uporaba nekaterih orodij za razvijalce za Ethereum (in številne druge jezike), kot so nvm, Node, npm in Truffle, zahtevala drugačen nabor navodil za uporabnike sistema Windows. 

Rezultat tega je večja združljivost med Linuxom in MacOS-om – in zato je mogoče številne ukaze, ki se uporabljajo v terminalu Ubuntu, distribuciji Linuxa, tudi uporabiti (večinoma) zamenljivo v terminalu MacOS. Windows se je v preteklosti zavzel v sistem, ki temelji na Unixu, toda izdaja WSL leta 2016 za Windows 10 je bila prvič, da so lahko uporabniki sistema Windows uporabljali jedro Linuxa ob hkratni uporabi sistema Windows brez navideznega stroja. WSL 2 je ustvaril lahek navidezni stroj, ki deluje v sistemu Windows, kar pomeni, da se razvijalcu ni več treba ukvarjati s težavami s pomnilnikom in shranjevanjem, povezanimi s prenosom navidezne škatle ali uporabo VMWare za namestitev Ubuntuja.

Zakaj to vpliva na razvijalce Ethereuma? Genesis Block Ethereuma se je zgodil 30. julija 2015 in po besedah ​​soustanovitelja in ustanovitelja podjetja ConsenSys Joeja Lubina Ethereuma se je večina razvoja dogajala na Ubuntu in MacOS X. Zato ni presenetljivo, da je veliko prvotnega orodja delovalo dobro z operacijskimi sistemi, podobnimi Unixu. Čeprav je bilo orodje razvito posebej za Windows, je pogosto izkušnja za razvijalce boljša, če lahko za namestitev programske opreme in zagon ukazov uporabljajo Unix podoben terminal. 

Microsoft si je prizadeval za izhod WSL 2 in se je izboljšal tam, kjer ga mnogi v skupnosti že od konca leta 2018 uporabljajo za namestitev distribucije Linuxa. Če uporabljate Windows, vam ni več treba boleti, da bi morali pri izdelavi dApp upoštevati nekoliko spremenjen nabor navodil. Uporabniki sistema Windows lahko zdaj sledijo vadnicam Ethereuma za Linux ali Mac.

Zelo zabavno branje, ki mi ga je priporočil Avery Erwin, je Neal Stephenson “Na začetku je bila ukazna vrstica”, esej / knjiga o njegovih osebnih izkušnjah z operacijskimi sistemi v obdobju, opisanem v tej kratki zgodovini.

Zaključek

Ta vadnica in kratka zgodovina daje uporabniku sistema Windows vpogled v to, kako nastaviti razvojno okolje z uporabo WSL 2, Ubuntu, VSCode, npx, Node, npm in Tartuf. Prav tako poda nekaj zgodovine, kako in zakaj moramo to storiti. Če imate glede na svoje izkušnje kakršne koli komentarje ali koristne namige, jih pošljite na [e-pošta zaščitena] tako da lahko posodobim ta članek in vam priznam prispevek.

Posebna zahvala Onyebuchi Valentine Ahiwe, Clemens Wan, Anthony Albertorio, Eli Geschwind, Nick Nelson in še več prijaznih prijateljev za vaš pregled in komentarje o tej vadnici in zgodovini. Cenim vaše komentarje.

Razvijalci Pametne pogodbe WindowsNewsletterNaročite se na naše novice o najnovejših novostih v Ethereumu, podjetniških rešitvah, virih za razvijalce in še več.

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