4 ms·
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 wil
by lucasoshiro 2y ago
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.
- PittleyDunkin 2y ago> 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.
- lmz 2y agoAgreed. Joining system and user packages leads to cases like "how did my python upgrade break yum".
- lucasoshiro 2y agoIt 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
- lmz 2y agoA 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.
- lucasoshiro 2y agoYou 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/ 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.
- PittleyDunkin 2y ago> You can still use pip inside pyenv or similar. That seems to be the worst of all possible worlds.
- lucasoshiro 2y agoPerhaps not the best, which could be maybe something like Nix. But this is the opposite of what we have that in Mac
- PittleyDunkin 2y agoI 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.
- figomore 2y agoYou can use topgrade (https://github.com/topgrade-rs/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.