I want to switch to Linux, and made an external USB SSD with about 20 different distros on their own partitions. The installation for some was much easier than others!
But this week, I was reminded why I still use Mac OS 10.13. On my Mac, I tried to install ffmpeg with rubberband support. When trying to compile it, brew gave cryptic error messages and eventually failed. For something else, I tried installing qemu, also using brew. There were a load of errors telling me I'm using an outdated OS and should feel bad about it, and again, it failed after 156 minutes with some libiconv error that I don't even totally understand, never mind know how to resolve. Something to do with having imagemagick already installed. I tried downloading an image from docker, and the docker-machine wasn't running, and even when I started it, the pull command from dockerhub still failed.
On a Mac, these kinds of errors are unusual. On Linux, build errors like that are normal.
I want to be able to install software in less than half an hour. Whether it's brew, apt-get, yum, pip, npm, or whatever other package manager you wish for - recompiling all my software is extremely slow, and by the time it's finished I've already moved on to something else.
For as long as software continues to be distributed as binaries for Mac, in a dmg or pkg, I'll continue using my Mac. I do still have to recompile sometimes, but it's something I dread, because of the huge amount of time it takes. Requiring this for every software package on Linux is what's pushing me away from the platform.
> On a Mac, these kinds of errors are unusual. On Linux, build errors like that are normal.
I think it's the opposite, and the errors that you encountered are a good example of why, since they all appear to be Mac/Homebrew-specific.
> On my Mac, I tried to install ffmpeg with rubberband support. When trying to compile it, brew gave cryptic error messages and eventually failed.
The FFmpeg in my distro's packages (OpenSUSE) and in Ubuntu's packages comes with rubberband already enabled. They are binary packages - no compilation needed, and it all just works. When I last used Homebrew I was surprised at how often it needed to compile things. For Linux users, compilation is rare.
> For something else, I tried installing qemu, also using brew. There were a load of errors telling me I'm using an outdated OS and should feel bad about it, and again, it failed after 156 minutes with some libiconv error that I don't even totally understand, never mind know how to resolve.
libiconv is not a thing in GNU/Linux. In Linux, iconv() is part of libc. libiconv is only used to port software to platforms which don't have iconv, or have an iconv() which is deficient in some way. Also, again, my distro and Ubuntu both include a binary package for qemu - no compilation needed.
> Whether it's brew, apt-get, yum, pip, npm, or whatever other package manager you wish for - recompiling all my software is extremely slow, and by the time it's finished I've already moved on to something else. [...] Requiring this for every software package on Linux is what's pushing me away from the platform.
I think you have the wrong idea about apt-get and package managers on Linux. Most distro package managers do not compile your software. Almost all the popular distros have binary package managers, which means compilation errors (on your machine) are not possible. Ironically, Homebrew (and Cygwin) users spend a lot more time compiling than Linux users do, so don't let your experience with Homebrew colour your opinion of Linux. They are not alike.
IMO the power of Linux distros is the package manager. The ~2.5 hour journey that you described on macOS should take less than a minute on most Linux distros. During my (somewhat brief) time with macOS, brew was a primary source of frustration.
You say that recompiling software is slow and errors during compilation are normal on Linux. I don't find myself compiling software very often. Most things are grabbed as binaries by the package manager. For everything else there's the AUR (which I rarely experience issues with.)
> IMO the power of Linux distros is the package manager. The ~2.5 hour journey that you described on macOS should take less than a minute on most Linux distros.
Unless of course said software is not in your repo, then expect that it will take at least 2.5 hours.
2.5 hours? That sounds like a severe exaggeration. For example, most software in the Arch User Repository installs in a few minutes or less on reasonably modern hardware. In many cases, Linux users also have the option of installing binary packages outside of their repos instead of compiling from source.
> In many cases, Linux users also have the option of installing binary packages outside of their repos instead of compiling from source.
In my experience that's relatively rare. Occasionally they have an AppImage, which is great, maybe a PPA if you're on Ubuntu. but otherwise the best you can do is try to hack some other distro's binary to work. For most niche software I've found that it is only available as source though. Then you get to try and get a working build environment...
Unless you're using one of the very few Linux distributions that require you to compile everything from source (such as Gentoo), almost all of the packages are precompiled binaries and there is no compilation involved on your end.
Well brew is absolute crap, and most Linux package managers are better. I’d suggest using nix for macOS in single-user imperative mode. It functions pretty much like brew except it never pukes all over itself.
I wouldn't necessarily generalize issues using brew on a mac to issues all package managers on linux. Some of those errors might be attributable to OSX locking down application installation. You can install binaries on linux just like with any other OS most people just prefer to use package managers.
But this week, I was reminded why I still use Mac OS 10.13. On my Mac, I tried to install ffmpeg with rubberband support. When trying to compile it, brew gave cryptic error messages and eventually failed. For something else, I tried installing qemu, also using brew. There were a load of errors telling me I'm using an outdated OS and should feel bad about it, and again, it failed after 156 minutes with some libiconv error that I don't even totally understand, never mind know how to resolve. Something to do with having imagemagick already installed. I tried downloading an image from docker, and the docker-machine wasn't running, and even when I started it, the pull command from dockerhub still failed.
On a Mac, these kinds of errors are unusual. On Linux, build errors like that are normal.
I want to be able to install software in less than half an hour. Whether it's brew, apt-get, yum, pip, npm, or whatever other package manager you wish for - recompiling all my software is extremely slow, and by the time it's finished I've already moved on to something else.
For as long as software continues to be distributed as binaries for Mac, in a dmg or pkg, I'll continue using my Mac. I do still have to recompile sometimes, but it's something I dread, because of the huge amount of time it takes. Requiring this for every software package on Linux is what's pushing me away from the platform.