Op Windows 10 kun je een Linux subsysteem draaien. Dit is nog gewoon Windows, maar je krijgt ook een apart Linux gedeelte dat Windows apps kan aanroepen en ook gewoon werkt als een volledige Linux distributie.
Activeer eerst Windows subsysteem voor Linux:
configuratiescherm
en klik op programma's
Windows onderdelen in- of uitschakelen
Windows Subsyteem voor Linux
aan.OK
en start je computer opnieuw op.Nu heb je het Linux subsysteem geïnstalleerd. Zoek in je Windows menu naar Bash en start dat programma op. Je merkt dat het nog niet werkt. Dit komt omdat je nog geen distributie hebt geïnstalleerd. Linux heeft veel verschillende distributies of distros. In de WSL modus voor Windows 10 heb je keuze uit een paar:
Microsoft Store
en zoek op het woord Linux
Debian GNU Linux
, Ubuntu
, OpenSuse
of Kali Linux
. Voor de lessen gebruiken wij Ubuntu
. Download de versie zonder versienummers.sudo
commands gaat doen.Nu heb je bash werkend met een Linux subsysteem. Alle Linux commands werken.
ls
. Dit laat alles zien in de map.cd ../..
Hiermee ga je twee mappen omhoog.ls
. Nu zie je een stuk meer. Dit is de Root van Linux.mnt
gaan en in die map staat een map c
(of misschien nog andere letters als je meer volumes hebt). Type dus cd mnt/c
of een andere drive letter.Om nu niet iedere keer dit te hoeven doen, kan je een alias maken om snel naar dingen toe te gaan.
cd
hiermee ga je direct terug naar je Linux Home map.ls -a
Dit laat naast alle bestanden ook alle verborgen bestanden zien.touch .bash_aliases
.vim .bash_aliases
te typen.I
om te kunnen typen en type nu alias goSomewhere='cd /mnt/c/Users/<username>/<map die je wilt>; ls'
.ESC
en type dan :wq
dit slaat het bestand op en sluit vim af en brengt je terug naar de terminal.. ~/.bashrc
en vanaf nu kan je de aliases gebruiken om overal snel te komen.Verander NOOIT een Linux bestand met een Windows app.
Dus ga niet met een Windows verkenner rondneuzen in de Linux subsysteem map, of Linux bestanden veranderen met je favoriete Windows text editor! Als je dit wel doet, dan zullen er bestanden corrupt raken en kan je het Linux substeem niet meer gebruiken! Dus als je Linux bestanden wilt aanpassen, doe dat altijd met Linux apps.
Zoek naar Windows subsystem for Linux
en je krijgt artikelen en Youtube filmpjes die dit uitleggen.
Open de Ubuntu terminal en type cd
om te zorgen dat je in de home folder bent van Linux en type dan de volgende regels:
sudo add-apt-repository ppa:plt/racket sudo apt-get update sudo apt install racket
Copy-paste in Ubuntu werkt door te selecteren en rechterklikken (copy) en dan rechterklikken (paste). Dit zet het op je kladbord en daarom kan je dus in je (atom) editor gewoon control-v en c doen.
Deze functie werkt alleen als je 'QuickEditMode' aan hebt staan (staat automatisch aan als je net hebt geïnstalleerd (als het goed is)).
racket -> atom: racket > (define a '(1 2 3 4 5)) *selecteer dit en druk op je rechtermuis knop* atom: (define a '(1 2 3 4 5)) *control-v om te plakken atom -> racket: atom: (define a '(1 2 3 4 5)) *selecteer en control-c om te kopiëren* racket: > (define a '(1 2 3 4 5)) *rechterklik in ubuntu om te plakken*
Lilypond gebruiken binnen Windows Subsystem for Linux (Ubuntu).
Het volgende zorgt dat alle geinstalleerde software up-to-date is.
sudo apt update
sudo apt upgrade
sudo apt install lilypond
cd /usr/share/racket/collects
sudo git clone https://github.com/marcdinkum/csd.git
cd ~ ; Ga naar je home folder
touch .racketrc ; Maak het bestand .racketrc aan **Let op de punt!**
vim .racketrc ; Ga het bestand .racketrc bewerken met vim
vim:
Type i
. Hierdoor kom je in de insert modus.
Nu kan je gewoon typen als elke andere editor.
Type het volgende:
(require readline/rep)
(require csd/music_transforms)
(require csd/lilypond)
Type ESC
en dan :wq
. Hiermee sla je de text op en sluit je vim af. (w staat voor write en q staat voor quit)
Nu heb je alle instellingen goed staan en kan je naar de map gaan waar je je scheme opdrachten hebt staan.
Open met atom je Scheme bestand door atom <file_naam>
in de
terminal te typen. Als atom een crash geeft zie hieronder bij Atom-v1.31-error.
Kopieer de antwoorden.
Type in de terminal racket
en plak daar je antwoorden in door op je rechtermuis te klikken en klik nog op enter.
Type dan (exit)
en dan ls
in de terminal. Nu zie je dat er een bestand is.
Type lilypond <bestand>.ly
Nu heeft lilypond een pdf en midi ervan gemaakt. Dit kan je bekijken in je verkenner.
Als je moe wordt van heel de tijd die lange regel te typen om naar je scheme map te gaan, kan je ook een alias maken:
cd ~ ; Ga naar je home folder
touch .bash_aliases ; Maak het bestand .bash_aliases aan **Let op de punt!**
vim .bash_aliases ; Ga het bestand .bash_aliases bewerken met vim
In vim type:
alias goscheme='cd /mnt/<drive>/Users/<je_naam>/Documents/<je_scheme_map>; ls'
Type ESC
en dan :wq
om op te slaan en af te sluiten.
Type in de terminal dan . ~/.bashrc
om de nieuwe alias in je systeem te krijgen. Nu kan je goscheme
typen en je gaat direct naar je map.
Je kan dit voor elke andere map doen waar je vaak moet zijn. Kies dan in plaats van goscheme
dan een andere alias naam en een andere bestands locatie. Je hoeft dan natuurlijk ook niet meer het bestand te maken met touch
, maar moet je het alleen openen met vim
.
Atom versie 1.31 heeft een bepaalde error met Windows Subsyteem voor Linux (WSL). Dit wordt in versie 1.32 waarschijnlijk gefixt, maar tot die tijd moet je versie 1.30 gebruiken. Hier is de issue thread met de info over de status van deze error: https://github.com/atom/atom/issues/18126
Download versie 1.30 hier: https://github.com/atom/atom/releases en kies dan AtomSetup-x64.exe
Als atom geïnstalleerd is ga dan naar Help
->About Atom
en haal het vinkje weg bij Automatically update Atom
. Waarschijnlijk is aan het eind van oktober versie 1.32 uit. Dan is het waarschijnlijk gefixt en kan je Atom weer laten updaten.
De error krijg je als je in Ubuntu atom
intikt. Deze ziet er alsvolgt uit:
net.js:200
this._handle.open(options.fd);
^
Error: EINVAL: invalid argument, uv_pipe_open
at new Socket (net.js:200:18)
at createWritableStdioStream (internal/process/stdio.js:164:16)
at process.getStdout [as stdout] (internal/process/stdio.js:14:14)
at console.js:246:38
at NativeModule.compile (bootstrap_node.js:596:7)
at Function.NativeModule.require (bootstrap_node.js:541:18)
at setupGlobalConsole (bootstrap_node.js:310:41)
at startup (bootstrap_node.js:70:7)
at bootstrap_node.js:608:3