11 ms·
So, Mac doesn't come with a package manager. There are things you can do with port and brew, to alleviate some pain. Me personally, I fool around with a lot of
by jfoutz 3y ago
So, Mac doesn't come with a package manager. There are things you can do with port and brew, to alleviate some pain.
Me personally, I fool around with a lot of languages, and sometimes I don't quite keep every project up to date with the latest version. For work, the situation is even more challenging, because I don't have the authority to go tell teams to upgrade or not upgrade, but sometimes I need to build their projects.
None of this is really Mac specific. I used to use virtual box for this, which worked pretty well. I could set up a baseline environment and snapshot new boxes with new language revs.
Docker can kind of cover this, but I tend to over do it, breaking things out into the one you build with, and the one you run with, and it's fine, but it's a lot to keep in my head. So, I'm kinda flakey about that.
Now, I'm slowly building up some proficiency with nix. I think this is what I really want, to swap out the whole chain of system dependencies, and build docker containers or vms out of that if I need them.
Perhaps I'm a poor sysadmin. _everything_ locally installed makes things real weird after a while (years).
- cj 3y ago> Perhaps I'm a poor sysadmin. _everything_ locally installed makes things real weird after a while (years). Same experience here (years). Because it’s something that creeps up over time, the problems aren’t obvious overnight.
- fsflover 3y agoThis is one of the good reasons to use Qubes OS.
- moojd 3y agoMy path was vm -> containers -> nix. With nix flakes and the direnv extension in vscode you can get a clean per-project dev environment with zero docker overhead and without dev tools cluttering up your global environment and causing issues.
- jbverschoor 3y agoUse orbstack, install things in their own container, Mount local volumes
- jfoutz 3y agoThat looks really nice. I'm sure it's a great solution for lots of developers. I think I'm going to stick with nix. VM's, docker, orbstack and nix all seem to let me make a machine that looks like "X". The thing is, docker and VM's provide an abstraction that works 95% of the time, but that last 5% is awful (I don't know about orbstack). Nix, by all appearances (and my limited experience) is much much worse up front. there's a lot to learn. But in exchange I get to keep control. This abstraction is wrong, we're not doing that, we're doing this. I'm not asking, I'm telling.