Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Arch Linux

If you want a developer laptop you want modern hardware. If you want to run modern hardware you want a modern kernel.

In your case (since your hardware is a little old), you might not care about support from recent kernels but still want modern compilers, toolchains, etc available to you.

You also probably don't want it to break every 6 months when you have to system upgrade. Rolling release is the best.



I agree Arch and rolling release is great to avoid breaks. Paradoxically, people are afraid of it for the opposite reason.

In 9 years running Arch, I have never ever experienced the need to downgrade my kernel after an upgrade, and only once had to downgrade a package (ghc). I key point was always to run hardware that needs no drivers aside from those coming with vanilla kernels.

Quite on the contrary, I love getting new versions of things quickly as this means new features and bugfixes come to me ASAP.

With that said, I am considering to migrate to NixOS or GuixSD (currently toying with 2 virtual machines). I find Arch to be a great imperative distro, but functional ones are simply superior. Declarative system configuration, declarative package recipes, and the ability to install multiple versions of the same package is key if you have a complex setup (e.g. doing deep learning).


> I agree Arch and rolling release is great to avoid breaks. Paradoxically, people are afraid of it for the opposite reason. > I am considering to migrate to NixOS or GuixSD (currently toying with 2 virtual machines). I find Arch to be a great imperative distro, but functional ones are simply superior. Declarative system configuration, declarative package recipes, and the ability to install multiple versions of the same package is key if you have a complex setup (e.g. doing deep learning).

I've been eying NixOS, but haven't heard of GuixSD. I'll look into it, would be interested to hear your comparison.

The main downside to NixOS seems to be package availability. I get the impression that you spend a lot of time repackaging things for it because the coverage isn't there yet.


That was my impression about Nix, however mind that things are moving very very fast. NixPkgs is one of the top GitHub projects now by number of contributors. Loads of things are packaged. I think it's getting comparable to Arch plus AUR.

GuixSD is a GNU version of NixOS, running on Guix package manager. Extremely neat, as it's written in Guile Scheme. They have most basic things packaged. Also, derivations are compatible with Nix ones, so you can use any Nix channel.


Thanks for the reply, I'll give NixOS another look.


>I agree Arch and rolling release is great to avoid breaks. Paradoxically, people are afraid of it for the opposite reason.

That made me laugh. Yesterday, when I updated Arch, it included new python 3.6 which not only broke half-a-dozen packages but it also disabled my DE.

Arch breaks way more often than any other distro I've ever used.


I run arch on one of my laptops because I like to tinker (and have the latest of everything), but I certainly wouldn't recommend it to someone who wants to get work done. I run Ubuntu LTS on the laptop I rely on.

Just last month a kernel update rendered my arch laptop unbootable. I had to boot from a live USB drive, revert the kernel, and temporarily blacklist the package from upgrading. What I love about arch is the community, and that awesome wiki.


> I find Arch to be a great imperative distro, but functional ones are simply superior.

Can you tell me more about what an imperative and functional distro is?


Basically with most package managers you start from some base system and then execute commands which change the state of the system.

With a functional system you describe what kind of system you would like and it gets built for you. See https://nixos.org/nixos/about.html


I love my Arch laptop and desktop, but I would caution that Arch is a very Linux way of doing things. You're in full control and you take full responsibility. This is fantastic if you want to get an understanding of what your laptop is doing.

If you're looking for a MacOS replacement, Ubuntu might be a quicker path to just get things going. It mostly just works, and when it doesn't, there are lots of good resources to get you going again. There are a lot of developers on Ubuntu so a lot of package development happens there first.

In my experience, Arch has been more solid than Ubuntu, but I like to heavily customize my laptop. If a default Ubuntu (or Xubuntu, Lubuntu, etc) desktop environment works for you, it might be more stable.


I've been using Arch in my laptops and workstations almost 10 years already. I can't think of using any other distro, it's just something I need to install once and after that it just works.

For the first installation, there are way more things to do though than with your typical Ubuntu installation. People complaining about fonts should know, that in AUR there are font setups with the Ubuntu patches and the results are awesome. Why these are not in the mainline I don't know. I guess it has something to do with patents...


Arch is worth it for the AUR for sure. If you don't want to deal with setting up Linux from scratch you can go with Antergos. It's basically just an installer for Arch.


Antergos and friends are fine, but they're not the whole Arch experience. (Some say they're not Arch, full stop.)

Installers are brittle. They don't always fit every case you give to them. That's why vanilla Arch lacks an installer, because chances are you're smarter than a shell script. No matter what crazy, inane setup you might be facing, Arch can tolerate it. Specifically because it doesn't have an installer.

(I once dual-booted Mac OS and Arch, with a shared /home partition. It totally worked and was a lot of fun.)

With vanilla Arch, since you're the one who brought up the system, you know exactly what you put in and why. If something breaks, you are better able to fix it. Because it's no longer magic. You did it yourself, after all. You can at least identify the parts of the system that are wrong, if not being able to outright fix them.

And since setting up the system means learning how to use the wiki and IRC channel, for most people, you already know the support network to fall back on.

Arch's installation procedure doesn't just prepare the computer for booting Arch. It also prepares you for using Arch.

If you're using Antergos et al. there's no shame in it, but you're seriously missing out on a very interesting experience.


> (I once dual-booted Mac OS and Arch, with a shared /home partition. It totally worked and was a lot of fun.)

Interesting! What caveats did you experience? Did you end up symlinking stuff like ~/.firefox to ~/Library/Application Support/Firefox?


Remember that if you do it that way you can't have your /home encrypted by either Linux or macOS. Which is a very, very bad thing, for obvious reasons.


I was really only interested in keeping my personal files (like pictures or my development directory) synced. However, this still opened up a great big can of worms.

* Linux hfs drivers don't support journaling. Solution: turn it off, and suffer the inability of Mac OS to make a disk clean without booting into Recovery or Linux first if the computer powers off in a way that would dirty the disk.

* Mac OS user/group numbering differs from that of Linux by default. Solution: modify my user/group numbers, attempt to fix permissions, apply "Fix Disk Permissions" from Disk Utility judiciously.

* HFS is not case sensitive by default. I like case sensitivity, and so does Linux. Solution: make a case-sensitive HFS volume and ignore that it leaves Unreal Engine's storefront unable to launch.

* On Mac OS, /home is no longer /home. Solution: change the advanced options of my user to change the user home folder to /Volumes/UserData/rob, ignoring that this is a pretty awful hack and that if the disk is dirty or unmounted, login will simply spin forever.

* Bash scripts (and I think node-gyp?) running under Mac OS either 1) don't expect your home folder to have spaces, or 2) don't expect it to not be at /home/username. Solution: 1) name the /home volume "UserData" and not "User Data", 2) cry.

It was an ordeal, but Arch was totally normal and never broken by it. Everything in Arch worked perfectly well. And a couple of things were not so okay in Mac OS, but never any deal-killers.

All my application settings were either just synced automatically or nicely contained in .files ignoring the Mac OS standards, so I didn't bother doing too much symlinking.

However, I didn't have the foresight to shell out some extra cash for a 256GB SSD, so I had to deal with space limitations caused by the 128GB SSD. Larger apps like XCode or GarageBand had to be either shuffled around or diligently symlinked to an external drive that would later be mounted for use of those utilities. Typically apps on Mac OS are nice enough to not spray their contents everywhere, but the Mac App Store insists on downloading things to /Applications and not where you want things (so you shuffle things around) and still some apps are not just contained in .app files but instead download things to some arcane directories. Judicial use of `ncdu` was applied to clear out some disk space, as well as just a big ol' external drive.

At least it wasn't Windows. Which would likely die horribly if you tried something like this.

I wonder if maybe I should get a blog.


Did you consider or try ExtFS via FUSE? Did you consider to upgrade your FS to AFS (Apple's File System, the successor of HFS+)? What about disk encryption? Did you use e.g. VeraCrypt? Did you consider using the SD card or USB stick on your Mac?


I've found https://arch-anywhere.org to be perfect for that.


I hadn't seen this before, thanks!


I can't comment on arch, but I've found the same with my own software. Many small, incremental releases cause less breakages than big code drops every 6 months. Even if there is a bug introduced, it's usually much quicker to find debug and fix.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: