I have been struggling hard doing proper :python: #Python development on :nixos: #NixOS.
pip install'ed binary packages (numpy et. al) don't work (i.e. don't find system libraries like libz libstdc++ etc.), making scientific data analysis completely impossible. The workarounds (using the nixpkgs versions or setting LD_LIBRARY_PATH) are not viable.
With this #poetry2nix flake template (the clue is preferWheels=true) it seems I can finally work properly:
Programming language hot take from someone that really only knows one language well and has been using Nix for like 3 weeks: programming language should not come with an internal package manager, their packages should get installed with a tool like #Nix
I want to start a R project and I want to keep everything about this project static and frozen in time. I know nix-shell is a thing, but:
is there a better/smoother approach?
is it possible to also have a service/daemon running in that nix-shell ? The editor I use (Rstudio) has desktop and server versions, and I would rather have the server version running on a beefy remote machine and I ssh into it.
My understanding of :guix: and :nixos: are that they explicitly pin the versions of absolutely everything & their transitive dependency graphs, all the way down to the compiler versions used to build a specific software commit. But how do they handle bootstrapping compilers?
Yesterday a good friend of mine helped me to understand and toy around with Gnu #Guix in a VM as I'm very hesitant to add anything to my daily driver machine. All things considered, I'm >90% convinced.
But here is a question for the friends and the community: What are the advantages of Nix over Guix (apart from number of packages)?
P.s: I'm going to have it on an Arch-based machine to add reproducibility to my projects. It will not handle my OS packages.
Is it a #Linux distro? Or is it a #container orchestration tool?
At my last job our #webDev env was managed by it, but I was using it on #MacOS and we also had to have #Docker, so I could honestly never figure out what it was there for.
Has anyone worked with #golang, #nix (with or without nix-shell), and #JetBrains GoLand?
My first passes at researching this doesn't show me many promising results. Some vscode discussion suggest launching vscode from the CLI after entering the shell.nix-enabled project directory, but not sure how I feel about that.
Finally took some time to bust out the @PINE64#pinebookpro and have some fun! I'd planned on flashing #nixos onto it, but everything I'd book from the image on my NVMe, I'd go through the whole rebuild and switch but it continued failing to boot into the new build... 🤔
Next best option, fresh install an #archlinux based system with great development record for the PBP, #manjaro , and manage everything with #nix. Turns out option #2 is still pretty awesome! 😎🤘 :manjaro: :nixos: #linux
So #Nix is when Haskell people make a package manager, a language, an OS and a build system all entangled with each other both physically and conceptually?
NixOS has one fatal flaw, which is the usability of #Nix.
Docker does three things, Nix does two.
Nix solves the isolation of dependencies in a very good way, but it doesn’t solve running in namespaces, in cgroups, and security, and all of that. Nix doesn’t solve that.
Nix is a fantastic system if you can adopt it in an isolated, hermetic environment.
But it’s not for the masses. #Docker is for the masses.
Anybody using R's {reticulate} package in a Nix devshell? I noticed that if I have leftover python installs on my system, like .local/share/r-miniconda/ or .virualenv/r-reticulate, then the the nix reticulate is trying to use those -- not exactly the isolation I expected. When I delete them, everything works as it should. Is this a bug, or am I doing something wrong?
#Nix / #NixOS flakes are so nice. Wishing I'd just dove straight into them at the start instead of spending a few years (very off and on, mind you) learning the “legacy" way of doing things.
The huge 'flakes: experimental!!!’ label once again scaring folks off when it oughtn’t 😩