Hoofdstuk 9 Ubuntu for Windows

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.

9.1 Installatie

Activeer eerst Windows subsysteem voor Linux:

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:

Nu heb je bash werkend met een Linux subsysteem. Alle Linux commands werken.

Om nu niet iedere keer dit te hoeven doen, kan je een alias maken om snel naar dingen toe te gaan.

9.2 LET OP!!!

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.

9.3 Wil je meer weten over hoe dit systeem werkt?

Zoek naar Windows subsystem for Linux en je krijgt artikelen en Youtube filmpjes die dit uitleggen.

9.4 Racket installeren in Ubuntu

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

9.5 Copy-paste

Informatie komt uit deze bron

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*

9.6 Lilypond binnen WSL

Lilypond gebruiken binnen Windows Subsystem for Linux (Ubuntu).

9.6.1 Update je systeem

Het volgende zorgt dat alle geinstalleerde software up-to-date is.

sudo apt update
sudo apt upgrade

9.6.2 Installeer lilypond

sudo apt install lilypond

9.6.3 Voeg de speciale racket commands toe

cd /usr/share/racket/collects
sudo git clone https://github.com/marcdinkum/csd.git

9.6.4 Voeg de require commands toe aan .racketrc

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)

9.6.5 Je melodie uit testen

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.

9.6.5.0.1 Voor degenen die geïnteresseerd zijn

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.

9.7 Atom v1.31 error

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