Usually, I prefer manually installing the packages needed for getting started with a new language or technlogy.

I avoid using distro package managers since they tend to be a bit outdated in this regard, and specialised package managers like SDKMAN! seem overkill for one or more packages. Exceptions being languages with excellent tooling and version management like Rust or Ocaml.

I’ve been doing this for a while and was wondering what the general consensus is

Edit: Thanks for your replies everyone! I’ve decided to stick with my distro package manager.

  • delirious_owl@discuss.online
    link
    fedilink
    arrow-up
    28
    arrow-down
    1
    ·
    11 months ago

    Definitely stick to the OS package manager. Not doing this is a mistake a lot of devs make.

    Otherwise you end up with an app that doesn’t run on most systems, and expecting people to do curl piped to bash as root.

    Stick to the stable branch. Stick to the OS repos.

  • lurch (he/him)@sh.itjust.works
    link
    fedilink
    arrow-up
    14
    ·
    11 months ago

    uninstalling sometimes doesn’t work when you install from source, so i’ve learned to be patient and always use the distro package.

    • redcalcium@lemmy.institute
      link
      fedilink
      arrow-up
      8
      ·
      11 months ago

      This is why you should build a package when compiling from source instead of doing make install directly. Packages can easily unistalled or upgraded.

  • Shareni@programming.dev
    link
    fedilink
    arrow-up
    11
    ·
    11 months ago

    For personal use, I previously used system packages, but now I’m installing them through nix home-manager. It’s really nice, especially because I’ve got a list of them now and don’t have remember what to install ever again.

    • QuazarOmega@lemy.lol
      link
      fedilink
      arrow-up
      4
      ·
      11 months ago

      I’m also curious about getting Nix on non NixOS, are there any simple example home manager configurations to look at so that I can easily start?

  • sloppy_diffuser@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    9
    ·
    11 months ago

    I use Nix, even on my Ubuntu machines, to install tooling in my user profile.

    Nixpkgs unstable stays pretty up to date. The few I want something on release day or bleeding edge nightlies, I override the derivation source. I use nvfetcher to pull the latest release or head of the default branch as part of my update routine.

    I’m pretty new to Nix, so its been slow integrating into my workflow, but I plan to start integrating flake’s into my repos. My team seems to have constant issues with keeping their tooling up to date which breaks things locally from time to time.

    • brian@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      11 months ago

      one more for using nix, but for language tooling I generally prefer a nix shell and installing per project dependencies there. then updates don’t break random projects and you know all the dependencies of a given project

  • breadsmasher@lemmy.world
    link
    fedilink
    English
    arrow-up
    5
    ·
    11 months ago

    Depends what I am working on.

    Sometimes I have to work with a mess of angular and node versions, which I don’t want polluting my main system and be something to need to manage. So I use containers for development and have all dependencies for that specific project in the container

  • biribiri11@lemmy.ml
    link
    fedilink
    arrow-up
    4
    ·
    11 months ago

    +1 to running whatever is packaged by your distro. For me, Fedora is rarely out of date. If worse comes to worse, you can always volunteer to become a packager and improve the ecosystem for everyone while fixing your own problems.

  • 0x0@programming.dev
    link
    fedilink
    arrow-up
    3
    ·
    11 months ago

    Usually distro packages, even mingw and android’s sdk are packaged now (at least on Ubuntu which i’m forced to use).

    Not shying away from upstream though.

  • bionicjoey@lemmy.ca
    link
    fedilink
    arrow-up
    2
    ·
    11 months ago

    I’m a big fan of Condaforge for this sort of thing. Keeps my development software separate from my daily driving software.

  • Irdial@lemmy.sdf.org
    link
    fedilink
    English
    arrow-up
    2
    ·
    11 months ago

    I run Ubuntu and use the Nala frontend for APT to keep a log of my package installs. That way, I can easily remove everything if I no longer need to work with a particular language or set of dependencies. For anything too complicated, I like to drop into a Docker container (which integrates nice with VSCode/Codium)