Skip to content
Snippets Groups Projects
Commit d22ae93c authored by Seseke, David's avatar Seseke, David :floppy_disk:
Browse files

Move to Markdown for README

Also add note about problem under Windows WSL.
parent 072fe504
No related branches found
No related tags found
No related merge requests found
# Nix ♥️ R
Dieses Repository dient dazu, einmal zu demonstrieren wie Nix mit einem
R-Projekt interagieren könnte. Bisher liegt hier nur eine `flake.nix`,
die eine Entwicklungsumgebung mit einigen, beliebigen R-Paketen zur
Verfügung stellt. Auch verwende ich derzeit den `unstable-release` von
Nix, welches sich nicht für den wissenschaftlichen Bereich eignen
dürfte.
Für eine Verwendung ist `nix` erforderlich. Wie das geht, steht
[hier](https://nixos.org/download.html). Darüber hinaus müssen die
experimentellen Features `nix-command` und `flakes` aktiviert sein.
Erklärung
[hier](https://nixos.wiki/wiki/Flakes#Other_Distros:_Without_Home-Manager).
Es gibt zwei Möglichkeiten, die Umgebung auszuführen:
1. Direktes Ausführen des beiliegenden Scripts
``` bash
nix run .
```
Damit wird die Umgebung aktiviert, das R-Skript ausgeführt und das
Ergebnis in die Kommandozeile ausgegeben.
2. Mit
``` bash
nix develop
```
lässt sich die Umgebung aktivieren. Ab dort sollten alle
Abhängigkeiten zur Verfügung stehen.
# Probleme bei der Ausführung unter Windows WSL
Anscheinend gibt Nix bei der ersten Ausführung von `nix run` unter Windows WSL
einen Permission-Fehler zurück. Dies lässt sich umgehen, indem zuerst `nix
develop` ausgeführt wird. Danach sollte `nix run` regulär funktionieren.
# Direnv
Für eine automatische Aktivierung der Nix-Umgebung wird hier `direnv`
verwendet. Wer das verwenden möchte, findet in dem Packagemanager
seines:ihres Vertrauens die jeweilige Distribution. Damit stehen direkt
beim Eintritt in den Ordner das Äquivalent von `nix develop` zur
Verfügung.
# Probleme mit dem RStudio-Wrapper
Bisher gibt es noch ein Problem mit RStudio, welches zwar ebenfalls in
der Flake definiert ist, allerdings bisher mit folgendem Fehler bei mir
nicht startet:
``` bash
/nix/store/nn617dg6i7nfrgihawwzspz8cljnx3qq-qtwebengine-5.15.13/libexec/QtWebEngineProcess: error while loading shared libraries: __vdso_gettimeofday: invalid mode for dlopen(): Invalid argument
/nix/store/nn617dg6i7nfrgihawwzspz8cljnx3qq-qtwebengine-5.15.13/libexec/QtWebEngineProcess: error while loading shared libraries: __vdso_gettimeofday: invalid mode for dlopen(): Invalid argument
[1] 57030 trace trap (core dumped) rstudio
```
Meiner Recherche nach liegt das vermutlich an den dynamisch verknüpften
Libraries, welche dann von der `qtwebengine` nicht gefunden werden
können. Lösungsvorschläge dazu sind allerdings eher dürftig.
Perspektivisch, soweit eine Nutzung erforderlich sein sollte, müsste ich
das im Nix-Forum einmal zur Sprache bringen.
Disclaimer: Meine derzeitige Linux-Installation ist in einem desolaten
Zustand, weshalb ich nicht garantieren kann, dass das Problem nicht von
meiner Konfiguration abhängt.
#+title: Nix ♥️ R
Dieses Repository dient dazu, einmal zu demonstrieren wie Nix mit einem R-Projekt interagieren könnte. Bisher liegt hier nur eine =flake.nix=, die eine Entwicklungsumgebung mit einigen, beliebigen R-Paketen zur Verfügung stellt. Auch verwende ich derzeit den =unstable-release= von Nix, welches sich nicht für den wissenschaftlichen Bereich eignen dürfte.
Für eine Verwendung ist =nix= erforderlich. Wie das geht, steht [[https://nixos.org/download.html][hier]]. Darüber hinaus müssen die experimentellen Features =nix-command= und =flakes= aktiviert sein. Erklärung [[https://nixos.wiki/wiki/Flakes#Other_Distros:_Without_Home-Manager][hier]].
Es gibt zwei Möglichkeiten, die Umgebung auszuführen:
1. Direktes Ausführen des beiliegenden Scripts
#+begin_src bash
nix run
#+end_src
Damit wird die Umgebung aktiviert, das R-Skript ausgeführt und das Ergebnis in die Kommandozeile ausgegeben.
2. Mit
#+begin_src bash
nix develop
#+end_src
lässt sich die Umgebung aktivieren. Ab dort sollten alle Abhängigkeiten zur Verfügung stehen.
*** Direnv
Für eine automatische Aktivierung der Nix-Umgebung wird hier =direnv= verwendet. Wer das verwenden möchte, findet in dem Packagemanager seines:ihres Vertrauens die jeweilige Distribution. Damit stehen direkt beim Eintritt in den Ordner das Äquivalent von =nix develop= zur Verfügung.
*** Probleme mit dem RStudio-Wrapper
Bisher gibt es noch ein Problem mit RStudio, welches zwar ebenfalls in der Flake definiert ist, allerdings bisher mit folgendem Fehler bei mir nicht startet:
#+begin_src bash
/nix/store/nn617dg6i7nfrgihawwzspz8cljnx3qq-qtwebengine-5.15.13/libexec/QtWebEngineProcess: error while loading shared libraries: __vdso_gettimeofday: invalid mode for dlopen(): Invalid argument
/nix/store/nn617dg6i7nfrgihawwzspz8cljnx3qq-qtwebengine-5.15.13/libexec/QtWebEngineProcess: error while loading shared libraries: __vdso_gettimeofday: invalid mode for dlopen(): Invalid argument
[1] 57030 trace trap (core dumped) rstudio
#+end_src
Meiner Recherche nach liegt das vermutlich an den dynamisch verknüpften Libraries, welche dann von der =qtwebengine= nicht gefunden werden können. Lösungsvorschläge dazu sind allerdings eher dürftig. Perspektivisch, soweit eine Nutzung erforderlich sein sollte, müsste ich das im Nix-Forum einmal zur Sprache bringen.
Disclaimer: Meine derzeitige Linux-Installation ist in einem desolaten Zustand, weshalb ich nicht garantieren kann, dass das Problem nicht von meiner Konfiguration abhängt.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment