News for hackers. Stuff that matters.
Re:The legacy of NeXT lives on in OS X (2012) by lucasoshiro on Sunday December 22, 2024 @09:19AM (#42486451)
Not exactly...

The App Store install what you would install through .dmg or .pkg. This is, if you install, for example, Android Studio, Docker and UTM, you will have three QEMU executables, one for each app.

Homebrew does quite a good job as a package manager for Mac, however, it's far from how the package managers work in Linux distros. For example, by running ``sudo pacman -Syu`` I upgrade everything that is installed, including the kernel, standard libraries, Python packages, language packages, manpages and so on. In Mac, I have to upgrade the system through system updates, homebrew packages through ``brew upgrade``, Python packages through pip, the App Store installed stuff through App Store and the manually installed apps through whatever the way they are upgraded.

Re:The legacy of NeXT lives on in OS X (2012) by PittleyDunkin on Sunday December 22, 2024 @10:00AM (#42486716)
> For example, by running ``sudo pacman -Syu`` I upgrade everything that is installed, including the kernel, standard libraries, Python packages, language packages, manpages and so on.

I actually view this as a liability. System package management should be distinct from userspace package management.

Re:The legacy of NeXT lives on in OS X (2012) by lmz on Sunday December 22, 2024 @11:08AM (#42487186)
Agreed. Joining system and user packages leads to cases like "how did my python upgrade break yum".
Re:The legacy of NeXT lives on in OS X (2012) by lucasoshiro on Sunday December 22, 2024 @11:28AM (#42487335)
It won't happen if the packages are well maintained. Note that if you want a different version for your project you should use a pyenv or similar and have finer control on its dependencies
Re:The legacy of NeXT lives on in OS X (2012) by lmz on Sunday December 22, 2024 @04:34PM (#42489327)
A pyenv is separating system and user / project packages. You could take it one step further and use pkgsrc, Nix, or homebrew. That way you can get a newer redis/RabbitMQ/whatever not just newer python.
Re:The legacy of NeXT lives on in OS X (2012) by lucasoshiro on Sunday December 22, 2024 @11:26AM (#42487314)
You can still use pip inside pyenv or similar. Pacman would install the system-wide stuff, so you won't need to bother about the libraries that a package that you have installed is using.

Mentioning this classic XKCD: https://xkcd.com/1987/. This only made sense after using a Mac. While using Manjaro it was quite organized: only the pacman-installed libraries and the ones of my user projects. Now in Mac I have the default Python, the several Python versions installed from several dependencies in Homebrew, and so on.

Re:The legacy of NeXT lives on in OS X (2012) by PittleyDunkin on Sunday December 22, 2024 @02:57PM (#42488638)
> You can still use pip inside pyenv or similar.

That seems to be the worst of all possible worlds.

Re:The legacy of NeXT lives on in OS X (2012) by lucasoshiro on Sunday December 22, 2024 @03:29PM (#42488833)
Perhaps not the best, which could be maybe something like Nix. But this is the opposite of what we have that in Mac
Re:The legacy of NeXT lives on in OS X (2012) by PittleyDunkin on Monday December 23, 2024 @10:40AM (#42495156)
I think my point was:

> Pacman would install the system-wide stuff

Most system-wide stuff is userspace. I was more referring to a divide between the OS-core (kernel, drivers, init scripts) and userspace. Upgrading userspace should not incidentally not allow the system to boot.

Re:The legacy of NeXT lives on in OS X (2012) by figomore on Sunday December 22, 2024 @04:05PM (#42489091)
You can use topgrade (https://github.com/topgrade-rs/topgrade) to update system, homebrew, npm, python, cargo with only one command. It also works on Linux and Windows.