Hacker News new | ask | show | jobs
by alexggordon 4073 days ago
Cached version: http://webcache.googleusercontent.com/search?q=cache:http://...

I'd actually argue a different point from the author. If you're a beginner at Linux, and want to learn more I would highly recommend Arch to you. Arch was the first *nix system I ever installed by hand (OS X doesn't count), and even as a developer, I learned more spending 3 weeks installing the OS than I'd ever known about linux previously.

I'm a big supporter of the mentality that you should know the stack you're working on (regardless of OS), and I've found it's too easy nowadays to ignore all the important frameworks and libraries that the tools you're using are built on. Arch forces you to understand them, because you can't just "guess" your way through. The thing I loved about installing it most was that on my 3rd and 4th attempt I realized how fun it was to just break stuff to figure out how it works. I'd never had the chance to do that to an OS. You learn how to diagnose errors, how to discover them, what to Google, and why it happened in the first place.

Understandably, most people might not be in the job situation where they need to do something as time consuming as install Arch as a dev environment, but I think that if you want to learn about operating systems, in a structured and incredibly well documented environment, Arch is unparalleled.

2 comments

If your goal is to learn without totally assembling something from scratch, I'd honestly recommend Gentoo, CRUX or Slackware, instead. Latter is what I use daily, and it's the closest to vanilla that you'll get while being suitable for daily tasks.

Arch is a rather odd duck in that it has long cultivated this cult image of being a "hardcore" distro, but I never understood much of the appeal myself. It seems to attract a lot of unjustified smug users, and the so-called "Arch Way" (https://wiki.archlinux.org/index.php/The_Arch_Way) seems to be rather tarnished in light of more recent decisions.

What kind of recent decisions do you mean?

I've heard good things about Gentoo, I'd definitely give it a try someday. How would you compare it to Arch? Can you make a brief explanation what you like/dislike about them?

not parent but I have some experience with both:

Gentoo was the first distro I ever tried, then I switched to arch and I've been using it ever since.

I found gentoo to be way more of a hands-on distro. I configured the kernel by hand, checked the USE flags of all packages, looked up what each option was for and recompiled a shitload of things when I made a mistake. All these options are right there in your face and it's really tempting to mess around with them. Eventually, I found that it just took up too much of my time to do so.

Arch is still a rather flexible system but it hides some of this low level stuff from the user. I just accept the default kernel, I live with whatever dependencies the package manager tells me are needed and the system doesn't tempt me to do otherwise. However, most of the time I still get to choose what and how I want.

Lately though, sometimes I feel Arch crosses the line: eg. systemd pretty much being forced on users, removing the makepkg option to build packages as root.

Even if I'm not against systemd (it has its downsides, but it's not that bad as everybody thinks), I still think the user should be given a choice. So yeah, they probably crossed the line in this case.
Gentoo is for people that get tired of binary distributions. Imagine this:

* As a Redhat/RPM user, rpm -iUvh is dependency hell.

* As a debian user, dpkg -i usually leads to dependency hell.

* Yum/Apt will eventually break, leading to manual repair of the package database, or a stuck dependency that makes life miserable.

Either way, a sysadmin ends up compiling most of their bleeding-edge or otherwise need-to-have-it software, rather than relying on rpm's/deb's/ppa's to handle it for them. These people tend to install a base system, then compile the rest of the system on top of it, in order to not rely on a package maintainer who usually volunteers their time (when they have it). I personally have fond memories of 1999, compiling GNOME 0.98.1 and Enlightenment 0.15 on my Redhat 6 machine (Pentium 133Mhz - full day to build) in order to keep up with development.

If you find yourself working around rpm, deb, or even tgz or xz files, give Gentoo a shot. Ebuilds are clear instructions on how to build a package reliably. Should you want to enable custom options (i.e. VLC with VDPAU), most ebuilds have USE flags listed, which bring in any other libraries you may need, and can be set per-package or globally.

The first five or six times you build a kernel you just configured, it will fail to boot. You will have to earn your system (sound/video/peripherals) a piece at a time. And once you've done it, you'll feel like you climbed Everest. You will know Linux intuitively, and it won't feel like a foreign environment.

I like to compare Gentoo to driving a manual transmission. Automatics like Ubuntu/Redhat/Debian are useable, but you don't get a feel for the machine like you do with Gentoo.

Arch is like Gentoo's little brother with a systemd infection. He'll live a long healthy life, but expect breakdowns and sadness. If you have an AMD card, expect pain (even if you use V10L0's repositories). but the AUR is almost as big as portage, and you can seriously have a full system installed in less than 10 minutes (if you know the commands). I use an Arch LiveCD to chroot my Gentoo installs now. :)

Sorry for the downtime, it's fixed now.

Maybe some advanced users could start with Arch, but most of the people I know, will find it too difficult and give up on it. Yes, it's a great way to learn how stuff works, but it's just not for everyone. And in my opinion, beginners should start with something different. I'd never recommend my mom to try Arch for example.

I started with Arch too, and am still with it several years later (typing this comment on a Pixel 2 running Arch). I agree that Arch isn't for everyone, but I think a sufficiently curious and motivated beginner will be fine. Mostly because of Arch's incredible wiki.
Oh, can you report what works and what doesn't on a Pixel 2 hardware-wise?
Sure! On install, a few things didn't work: trackpad, keyboard backlight, touchscreen, and I think screen brightness. However, https://github.com/tsowell/linux-samus solved all these problems. There are a few details to iron out (as described in the README) but at this point it's fully functional for me.
Great, thanks! If you monitor hardware using powertop, do all devices enter into sleep modes when appropriate? Does the Pixel overheat?
No problems with overheating, so far it's never even gotten uncomfortably warm. Battery life is good enough relative to my old laptop that I haven't bothered checking power usage carefully yet, but here's powertop's output:

https://jds.objects.dreamhost.com/powertop.html

Arch's wiki + the lack of accidental complexity in their tools. Everything is very very tiny. It forces you to know the basic tools (grub,...) , and a few concepts (chroot, etc...). That said it took me years, even after CS college to be at ease with most things.
Girlfriend's first linux install was Arch. Made her install it herself, and now she has a full KDE desktop.

It was pretty much the sign she was a keeper. :)

Thanks for the article!

I will agree that my mom should not try and install Arch. However, if you work in the development community, want to learn more, and have an environment that encourages learning and experimenting, Arch is really an unparalleled option. I'm of the opinion that just because it's difficult, doesn't mean it shouldn't be recommended. I think even the ones that fail, might learn a ton from it, and having seen where the beginners that made it through an Arch installation ended up, I'm not sure what else I could recommend that would put a beginner in a better place.