Como configurar o Radian no NixOS – lukmayer.github.io
Tenho brincado com o NixOS. É legal! É a primeira vez que não encontro um único caso de inferno de dependência ao configurar minhas ferramentas de codificação. Gosto mais dela do que das outras distros ‘atômicas’ que experimentei porque você não é forçado a usar contêineres em todos os lugares. Isso não quer dizer que seja fácil. Na verdade, a curva de aprendizado é bastante íngreme e a documentação é muito pobre.
Na verdade, é por isso que estou escrevendo isso. Eu queria configurar o Radian e ter meus pacotes R na configuração também, já que o Nixpkgs já tem quase todos os pacotes que eu possa precisar disponíveis como um binário pré-compilado. É tecnicamente muito fácil de fazer, mas exigiu que eu adquirisse algum conhecimento prévio.
Para fornecer uma análise de alto nível, no NixOS os pacotes não são instalados em suas pastas típicas do sistema. Normalmente você teria uma única pasta R, geralmente no /bin diretório, mas isso tem a desvantagem de possivelmente induzir um inferno de dependência. Por exemplo, seu sistema, por padrão, não saberá o que fazer se você instalar uma segunda versão diferente do R, pois a pasta já está em uso. O gerenciador de pacotes nix resolve isso dando a cada pacote sua própria pasta com um nome de hash criptográfico, o que significa que você pode ter quantas versões R instaladas desejar. Isso também significa que cada pacote R terá sua própria pasta, o que, em princípio, deve causar muitos problemas porque o R procura pacotes em uma pasta específica. No entanto, com um script wrapper pode-se garantir que R será capaz de ver todas essas pastas, apesar da pasta típica da biblioteca R não existir. Este script wrapper é onde está toda a mágica.
Envolver R com pacotes R é bastante fácil, há muitos exemplos online. Mas o terminal R padrão é feio! Não tem muitas cores e é meio difícil dizer se está ocupado. Então, naturalmente, eu queria usar o terminal Radian R, que é muito melhor. No entanto, Radian é um pacote Python, então como posso fazer um pacote Python ver meus pacotes R? Eu estava um pouco desesperado tentando descobrir se alguém configurou o Radian no NixOS, antes de perceber que já existe um script wrapper para agrupar o Radian com pacotes. Então o objetivo deste post é apenas dizer que esse script existe…
Veja como configurei radian em meu configuration.nix:
(radianWrapper.override {
packages = with rPackages; (
tidyverse
BayesFactor
brms
lme4
zoo
readxl
languageserver
stringr
DT
this_path
);
})
Este wrapper está obviamente aninhado dentro
environment.systemPackages = with pkgs; (
...
);
Então, sim, desde que você saiba que isso existe, é super fácil configurar o Radian no NixOS!
