More adventures with nix

Clocks From Pexels Castorly Stock

So I’ve been continuing to work with nix. It’s been quite an experience.

So my “hobby” project is fine. However, for teaching purposes, I wanted to do something configuration management related and settled on renvin R. This isn’t necessarily because I think it’s the best way of doing things, but given the set up available on campus PCs it’s the only thing I think I can do. The problem is the clash between nixand renv.

I’ve had to add a number of headers that are needed by the packages renvis trying to install. All this would be automatic if I only used one system or the other.

export LD_LIBRARY_PATH="${pkgs.libxml2.out}/lib:${pkgs.postgresql.lib}/lib:${pkgs.glpk}/lib:${pkgs.icu.out}/lib:${pkgs.curl.out}/lib:${pkgs.fontconfig.out}/lib:${pkgs.freetype.out}/lib:${pkgs.harfbuzz.out}/lib:${pkgs.libtiff.out}/lib:${pkgs.libpng.out}/lib:${pkgs.libjpeg.out}/lib:${pkgs.zlib.out}/lib:${pkgs.fribidi.out}/lib"

I still need to find out more about nix-flakesand also overlays. However, the fun and games I had is that because I was tracking R-4.4.0 I was looking at some old headers. This meant, for example, that (amongst other problems) I had this message to deal with ssh: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /nix/store/.../libcrypto.so.3)

The solution to this was to force the nix shell to use the host openssl. That means some alterations in the default.nixfile, but at some stage I might have to use alias ssh="/usr/bin/env -i SSH_AUTH_SOCK=$SSH_AUTH_SOCK /usr/bin/ssh"so that I am using host sshwhen I’m in nix. This doesn’t feel too good, but

(a) I’m still on a learning curve and (b) Hopefully there will be some tidying up (and rediscovery) as the Uni PCs will be getting upgraded over the summer.