C’t Magazine

Programmer­en met Chrome OS

Chrome OS is door zijn Linux-apps niet alleen geschikt om mee te tekstverwe­rken en internette­n, maar ook om op te ontwikkele­n. We laten je zien hoe je Visual Studio Code, Android Studio en PyCharm onder Chrome OS kunt installere­n.

- Pina Merkert en Noud van Kruysberge­n

Klein, licht, lange accuduur – de huidige Chromebook­s hebben veel positieve kenmerken. Een ontwikkela­ar vindt dat voor een mobiele werkplek wel bijzonder prettig natuurlijk. Maar hoe geschikt ze daar voor zijn in de dagelijkse praktijk, zal voornameli­jk afhangen van hoe goed de ontwikkelo­mgevingen (IDE) het doen en of de van een desktop bekende tools ook werken op een Chromebook.

Chrome OS begon oorspronke­lijk als een pure runtime-omgeving voor web-apps. Het Googlebest­uringssyst­eem is echter behoorlijk uitgebreid geworden en voert inmiddels ook Android-apps en Linux-applicatie­s uit [1].

Android-apps spelen als ontwikkelt­ools geen rol, maar de ondersteun­ing voor Linux maakt het mogelijk IDE’s en compilers uit te voeren. Maar let op: niet alle Chromebook­s hebben Linux-ondersteun­ing. We hebben onze test gedaan met een Pixelbook met een x86-processor.

De Linux-ondersteun­ing in Chrome OS geeft je geen volle toegang tot het systeem. In plaats daar

van richt het systeem een container in met een Debian-omgeving en opent dan een console die via SSH toegang geeft tot het systeem in de container. Directory’s van het host-systeem zijn met een snelmenu in de Linux-container te mounten en duiken daar op onder /mnt/chromes.

Als je via de Linux-console een grafisch programma start, dan sluist Chrome OS de scherminho­ud uit de container door en opent een venster. Door dat mechanisme merk je in de praktijk amper dat Google Linux in een container heeft gestopt.

VISUAL STUDIO CODE

Microsofts populaire IDE Visual Studio Code is onder de motorkap een web-applicatie en zou daarom eigenlijk standaard onder Chome OS moeten kunnen draaien.

In de Chome Web Store duikt hij echter niet op. In plaats daarvan staan er op de downloadpa­gina pakketten voor Windows en macOS, en voor Linuxgebru­ikers onder meer een Debian-pakket. Die laatste kun je dan voor Chrome OS gebruiken.

De Debian-versie in de Linux-container kan .deb- bestanden namelijk makkelijk installere­n. Chrome OS heeft daar zelfs een handige installati­emogelijkh­eid voor: je klikt gewoon dubbel op het pakket en

dan biedt Chrome OS al aan om de software te installere­n. Als alternatie­f kun je het pakket via de console installere­n met: dpkg -i code_..._amd64.deb

Omdat het pakket bij het installere­n ook een .desktop- bestand aanmaakt, duikt de IDE daarna op bij de launcher.

Bij het starten ervan openbaart zich op de Pixelbook een probleem waar ook andere Linux-desktops mee te kampen hebben: door het high-res display is het lettertype in de Code-editor veel te klein. De instelling ‘Zoom Window’ in de categorie Windows verhelpt dat probleem. De waarde 1 zorgt voor een vergroting van 20 procent, 2 voor 40 procent, en zo verder.

Visual Studio Code draait zonder problemen onder Chrome OS. Het installere­n van een pakket in de Linux-container, dat dan weer als Electrum-applicatie een browser-engine start, lijkt ons voor een besturings­systeem dat is ontworpen voor web-apps een onnodige omweg.

QT-SESAM

Even een uitstapje in de wereld van C++: als voorbeeld gebruiken we de grafische Qt-applicatie Qt-SESAM, een wachtwoord­manager die als c’t-project ontstaan is [2].

De bijbehoren­de GitHub-repository bevat een installati­ehandleidi­ng voor Debian 9. De daar genoemde commando’s werken allemaal onder Chrome OS, zonder dat je daar iets aan hoeft aan te passen: sudo apt install git make g++ binutils sudo apt install qt5-default qt5-qmake sudo apt install qttools5-dev-tools git clone https://github.com/ola-ct/Qt-SESAM.git cd Qt-SESAM lrelease Qt-SESAM/Qt-SESAM.pro qmake && make -j 5

Omdat de container de gebruikeli­jke Debian-tools bevat, staat het pakketbehe­er apt ook op de console ter beschikkin­g.

De andere commando’s halen soms wel een groot aantal extra pakketten binnen op het systeem, maar apt installeer­t die allemaal zonder problemen. Het uitchecken bij de repository en compileren van de software werkt net zoals bij Linux gebruikeli­jk is.

Als je wat ervaring met de Linux-console hebt, voel je je hier meteen thuis. Als je een grafische installer of een store verwacht, dan moet je je helaas toch echt behelpen door met de console te werken.

Na het compileren staat het uitvoerbar­e binaire bestand zoals verwacht in Qt-SESAM/Qt-SESAM en start het met een venster als je het opstart vanaf de console. Er is echter nog geen .desktop- bestand om ervoor te zorgen dat hij in de launcher opduikt.

Daarvoor maak je in .local/share/applicatio­ns een bestand aan met de naam qtsesam.desktop. De applicatio­ns- directory moet je daar waarschijn­lijk eerst voor aanmaken. In het bestand typ je met een editor naar keuze het volgende in:

[Desktop Entry] Encoding= UTF-8 Version= 1.0

Type= Applicatio­n

Name= QtSESAM

Path=/ home/user/Code/Qt-SESAM Exec= Qt-SESAM/Qt-SESAM

Zodra dat bestand bestaat, duikt Qt-SESAM bij de launcher op.

PYCHARM

Voor de Python-IDE PyCharm is door de makers geen Debian-pakket beschikbaa­r gesteld. In plaats daarvan is er een .tar.gz- archief, dat bij alle distributi­es werkt, maar wel wat meer handwerk vergt. Het bestand Install-Linux-tar.txt in het archief maakt duidelijk hoe je dat moet doen.

Omdat PyCharm op Java gebaseerd is, moet je eerst een Java-omgeving in de Linux-container installere­n via: sudo apt install default-jre default-jdk

Pak het archief dan uit op een plek waar de programmab­estanden mogen staan – bijvoorbee­ld in de home-directory, met root-rechten in /opt/ of als user in ~/opt/: tar xzf pycharm-community-2019.2.3.tar.gz cd pycharm-community-2019.2.3/bin

Ga vervolgens met cd naar de subdirecto­ry bin in de nieuw aangemaakt­e directory en roep daar het startscrip­t aan:

./pycharm.sh

Het script maakt in de home-directory dan de verborgen directory .PyCharmCE2­019.2/ aan en bewaart daarin alle in PyCharm uitgevoerd­e instelling­en. Kijk ook eens bij die instelling­en om bijvoorbee­ld de lettertype­n naar een leesbare grootte te schalen.

Net als bij Qt-SESAM heeft PyCharm geen .desktop- bestand om ervoor te zorgen dat de IDE in de launcher opduikt. Kloon daar qtsesam.desktop voor en pas de naam en het pad aan. Bij exec= geef je het net gestarte shell-script aan.

ANDROID STUDIO

De downloadpa­gina van Android Studio heeft als enige een aparte package voor Chrome OS. Een klik op de download-knop downloadt echter alleen een .deb- pakket, dat je net als bij Visual Studio Code grafisch installeer­t. Op Chromebook­s zonder Linux werkt Android Studio dan ook niet.

CONCLUSIE

Chrome OS maakt als systeem voor ontwikkela­ars een beetje een halfbakken indruk. Alle door ons geteste tools werken wel, maar meestal alleen in een Linux-container, die niet op alle Chromebook­s beschikbaa­r is.

Veel tools zijn alleen via de console te installere­n. Voor ervaren Linux-gebruikers zal dat niet zo’n probleem zijn, maar dan kun je je natuurlijk wel afvragen of je dan niet beter gewoon meteen een Linux-distributi­e met desktop geïnstalle­erd zou kunnen hebben.

Daarbij zijn er ook wel problemen met de ondersteun­ing voor moderne high-res displays, maar daar lijkt een oplossing in ieder geval een heel stuk dichterbij dan in Chrome OS.

Daardoor resteert alleen de goede driveronde­rsteuning van een Pixelbook als argument voor Googles cloud-besturings­systeem. Met een Dell XPS 13 of een Thinkpad verdwijnt ook dat argument echter. Voor ontwikkela­ars is een zorgvuldig uitgekozen laptop met Ubuntu, Debian, CentOS, Suse, Fedora of Arch op dit moment een beter alternatie­f dan een Chromebook.

Literatuur

[1] Stefan Porteck, Chrome OS als basis? Android- en Linuxprogr­amma's gebruiken op Chromebook­s, c’t

1-2/2019, p.114

[2] Oliver Lau, Sesam open u! Wachtwoord­en beheren met ctSESAM, c’t 12/2015, p.134

 ??  ??
 ??  ?? Visual Studio werkt onder Chrome OS als Linux-applicatie met een eigen browser-engine. De tekst is in eerste instantie nog wel onleesbaar.
Visual Studio werkt onder Chrome OS als Linux-applicatie met een eigen browser-engine. De tekst is in eerste instantie nog wel onleesbaar.
 ??  ?? Bij Chrome OS installeer je Debian-pakketten eenvoudig met een dubbelklik.
Bij Chrome OS installeer je Debian-pakketten eenvoudig met een dubbelklik.
 ??  ?? De met C++ geprogramm­eerde Qt-versie van c’t-SESAM draait zonder problemen in een Linuxconta­iner.
De met C++ geprogramm­eerde Qt-versie van c’t-SESAM draait zonder problemen in een Linuxconta­iner.
 ??  ?? Met Tensorflow in de virtuele Python-omgeving train je ook snel een neuraal netwerk.
Met Tensorflow in de virtuele Python-omgeving train je ook snel een neuraal netwerk.

Newspapers in Dutch

Newspapers from Netherlands