Visual Studio Code

Schon seit einigen Jahren besteht die Möglichkeit, Visual Studio Code (im Folgenden kurz VSCode) auf dem Raspberry Pi auszuführen. Vor einigen Wochen ist die Installation wesentlich einfacher geworden. Dieser Beitrag erklärt, warum das plötzlich funktioniert und weswegen sich darum sogar eine kleine Kontroverse entwickelt hat.

Visual Studio Code unter Raspbian

Installation

Zur Installation von VSCode führen Sie einfach sudo apt update und dann sudo apt install code -y aus. Wenn Sie auf Ihrem Raspberry Pi schon länger keine Updates installiert haben, müssen Sie das vorher erledigen. Dann sieht die Kommandoabfolge so aus:

sudo apt update
sudo apt full-upgrade
sudo apt update
sudo apt install code -y

apt full-upgrade führt ein Update aller installierten Pakete durch. Dabei wird, wenn dies noch nicht bei einem früheren Update erfolgt ist, eine Microsoft-Paketquelle eingerichtet. Von dort kann dann das Paket code mit Visual Studio Code installiert werden.

Geschwindigkeit

VSCode verwendet intern Electron. Dieses Framework setzt sich aus Teilen des Webbrowsers Chromium und der JavaScript-Bibliothek Node.js zusammen. Deswegen ist die Paketgröße von VSCode riesig (mehr als 200 MByte). Auch im Betrieb beansprucht VSCode viel RAM und besticht nicht gerade durch rasende Geschwindigkeit.

Bei meinen Tests auf einem Raspberry Pi 400 hat sich der hohe Ressourcen-Bedarf von VSCode nicht als störend herausgestellt; die Geschwindigkeit ist zwar nicht herausragend, aber OK. Auf älteren Raspberry-Pi-Modellen, insbesondere mit weniger als 2 GByte RAM, wird VSCode aber eher nicht zum Editor Ihrer Wahl werden.

VSCode als Python-Editor

VSCode eignet sich gut als Editor für Python-Programme. Allerdings weist VSCode ständig auf Probleme im Code hin, wo gar keine bestehen. Das hat damit zu tun, dass VSCode auf das Analyse-Werkzeug pylint zurückgreift. pylint hat wiederum Probleme, Eigenschaften/Methoden/Konstanten (ganz allgemein: Members) von Klassen korrekt zu erkennen. Das führt zu Fehlermeldung der Art Module abc has no ‚xy‘ member. Abhilfe: Führen Sie Strg+Shift+P aus, suchen Sie dann nach Preferences: Open Settings (JSON) und erweitern Sie die Konfigurationsdatei um die folgende Zeile:

"python.linting.pylintArgs": ["--generated-members"]

Datenschutzbedenken

VSCode ist ein von Microsoft initiiertes Open-Source-Projekt. Sowohl der Editor als auch die vielen Erweiterungen stehen unter GitHub im Quellcode zur Verfügung. Soweit ist alles bestens.

Die Kritiker reiben sich an zwei Punkten:

  • Zum einen hat die Raspbian Organisation im Rahmen eines Updates eine zusätzliche APT-Paketquelle eingerichtet (Datei /etc/apt/sources.list.d/vscode.list). Diese verweist auf eine Paketrepository von Microsoft. Durch die Auswertung der Zugriffe kann Microsoft Rückschlüsse ziehen, wie viele aktive Raspbian-Installationen es gibt.

  • Zum anderen gibt es in VSCode Telemetriefunktionen, die regelmäßig Informationen über die Nutzung von VSCode an Microsoft weiterleiten. Microsoft begründet diese Funktionen damit, dass die Informationen dazu dienen, VSCode zu verbessen, und verspricht, keinerlei private oder sensiblen Daten zu übertragen. VSCode weist — durchaus sehr korrekt — gleich beim ersten Start auf die Telemetrie-Funktion hin und gibt auch gleich einen Link auf eine Seite mit einer Anleitung an, wie Sie die Funktion deaktivieren können (opt-out).

Tatsächlich ist die Deaktivierung unkompliziert: Sie öffnen mit Strg+, den Settings-Dialog, suchen dort nach Telemetry, und deaktivieren dort die beiden Telemetrie-Optionen. Fertig.

Telemetrie-Funktionen von VSCode deaktivieren

Persönlich erscheint mir die Kritik an VSCode überzogen. Ich bin glücklich, dass VSCode so unkompliziert unter Raspbian installiert werden kann und gut funktioniert. Das zusätzliche Repository stört mich nicht, und die Telemetrie-Funktionen sind rasch deaktiviert. Persönlich habe ich eher bei den vielen Erweiterungen Sicherheitsbedenken: Aus Hacker-Perspektive wäre eine manipulierte Erweiterung ein guter Weg, um VSCode-Anwender auszuspionieren.

VSCode am Desktop-Computer ausführen, um Rasbperry-Pi-Dateien remote zu bearbeiten

Sofern Sie auf Ihrem Raspberry Pi den SSH-Server aktiviert und ein sicheres Passwort eingestellt haben, gibt es noch eine Möglichkeit, VSCode zu verwenden. Dazu führen Sie VSCode nicht auf dem Raspberry Pi, sondern auf Ihrem normalen Computer aus — ganz egal, ob dieser unter Linux, Windows oder macOS läuft. Außerdem installieren Sie in VSCode die Erweiterung Remote SSH. Damit kann VSCode via SSH eine Verbindung zu einem anderen Rechner (in unserem Fall also zum Raspberry Pi) herstellen und die dort befindlichen Dateien bearbeiten.

Der Vorteil dieser Vorgehensweise ist, dass VSCode auf Ihrem Rechner ausgeführt wird, der in der Regel über mehr RAM und CPU-Leistung verfügt als der Raspberry Pi. Der Nachteil ist, dass Sie Programme nicht so unkompliziert wie bei einer lokalen Installation ausführen und testen können. Auch die Syntaxkontrolle funktioniert weniger gut, weil Sie lokal oft andere Bibliotheken und Programmversionen installiert haben als auf dem Raspberry Pi. Schließlich können Sie nur Dateien verändern, die dem Benutzer pi (oder einem anderen Benutzer-Account) zugeordnet sind, nicht aber Systemdateien, deren Veränderung root-Rechte bedarf.

Eine kurze Anleitung zum Umgang mit der Erweiterung Remote SSH finden Sie in meinem Blog.

Quellen und Links