Hacker News new | past | comments | ask | show | jobs | submit login
Why I Still Choose Gentoo (emergelinux.tumblr.com)
58 points by rohshall on July 15, 2013 | hide | past | favorite | 68 comments



Choice of menial things (author's words), "flexibility" of having only what you need. Touting a shorter compile time as a benefit against binary packages. Good stats on an old machine.

These all seem downright odd as benefits.

> Finally, the control over your kernel configuration is a huge selling point

WHY? Why is this a huge selling point? Why would I, the OS user, care if the kernel is tiny and tailored? What does it materially change when I use the computer?

I guess my reasons for picking an OS are just too different. I prefer something that lets me do all the things I sat down at a computer to do. Ideally, I wouldn't even know what OS I was using.

I don't mean to demean the users of Gentoo. Especially if there's a joy to it - if you enjoy configuring kernel-level stuff, distribution hacking - that's great. All that power to you, and Gentoo looks like a good fit. But defending it with these kinds of points just seems tired and strange.


When I began using Linux ~18 years ago, my PC sported an astounding 4 MB (that's megabytes) of RAM and was powered by a 486 processor that ran at a whopping 25 MHz.

Even though it took hours for a kernel to compile (as opposed to mere minutes now), it was worth it. At the time, having the absolute latest and greatest kernel was truly a necessity, depending on your hardware. Besides, one could fire off the compilation process before she went to bed for the night so it's not as if you sat around watching the scrolling text and watching for the build to finish.

The effects of building my own kernels were noticeable. If I simply included everything and the kitchen sink -- like today's distribution-provided kernels do -- it's quite possible that my machine might not have successfully booted up after I installed the new kernel, updated my symlinks, and re-ran LILO.

Every time I ran "make menuconfig", "do I compile 'x' into the kernel or as a module?" is a question I had to ask myself over and over again. Deciding wrong quite possibly meant wasting several hours worth of my time.

Today? I'm typing this on a laptop with eight 2.7 GHz cores, 32 GIGABYTES of RAM and a terabyte of storage (roughly 8,000 times as much RAM and storage as that old PC and somewhere in the neighborhood of 5,000 times the amount of processing power).

I cannot remember the last time that I configured and built a kernel by hand. The optimizations that were once so critical are now a thing of the very, very distant past.


Pretty much the reason I stopped using FreeBSD as my desktop os and got an OSX machine. Nothing against the DIYers out there, but the vast majority of people have other things they would rather spend their precious time on.


I recently did the inverse: OSX to Arch Linux.

My motivation was very much similar to why I switched from Textmate to VIM. I hit a wall in terms of how powerful and efficient I could be with Textmate. Wheras I knew I could become equally productive in VIM within a few months and in return I would have a seemingly endless opportunity to improve my toolset in the future.

The majority of people need optimized prepackaged software - agreed - but for someone who has spent the majority of their life on a computer, via hobby and now work, the context has shifted from "I just need it to work" to making a long-term investment in my tools to maximize productivity and enjoyment of the time spent on the machine.


I actually moved from linux to freebsd, because I was lazy.

Main selling point is: no matter what you tweak, it _will_ work and it will work as you expected it to.


Can you expand on your Textmate efficiency? I'm new to OS X and it's tools, currently on Sublime Text 2 but haven't really configured it at all.

I want to hear all of it!

Thanks.


I'd suggest that you try not to jump in the 'configuration band wagon' and first try to learn the very basics of Sublime Text. Also look for v3, which is neat.

Sublime Text 3 is a great editor on its own, and while I do have packages and plugins installed, I believe new users should take the time to familiarize themselves with the editor before bloathing it with whatever X blog post says.

As to ST vs VIM, I used to use Vim, I still use it everyday. ST has a much nicer GUI than MacVim or GVim... and the stuff I used to do in Vim, I can do just as well in ST with Vi-mode.

Now if only ST3 was not proprietary software.


I'm a long time VIM user and I jumped into the Sublime wagon for a day. And I realized that Sublimes VIM mode was not at all enough, just a shadow of the real thing. To this day, only thing that comes really really close is Emacs with evil mode.

For me, the more I use computers for work, the more stuff I build, GUIs start to be too much in my way. I just need to learn the editor keys and window manager keys to the spine. I don't want nags from my OS to update something, some windows to float wherever they decided this time or some weird services running which I don't know they exist.

Total control on what you own. That seems to be my goal as I get older and more proficient.


What follows is not a critique of Vim - I use Vim just as much as I use Sublime nowaday, if not more. I'm just stating why I found a case for Sublime.

* * *

I'm not implying that Vim mode is the same as Vim, it's not, not at all. But function-wise, I find most of what _I need_ right back into ST.

Also, Vim doesn't quite have multi-cursor the way ST has it. I'm sure Vim has a plugin that does it, but then you have to install it manually or with Pathogen or Vundle - Sublime's Package Manager works way better in that case.

The reason I favor a GUI over Vim's terminalish interface is that in Vim, everything has the same height and width: a char size. In Sublime, I can set my desktop manager to draw menus and stuff in super small points and keep the font of my code in a bigger point. The separator between two editor windows doesn't occupy a whole character width for itself. The status bar at the bottom as well. The autocompletion feature doesn't occupy an arbitrary character-sized space.

Fuzzy search in Sublime is great. ST3 comes with `Goto Definition` which works great too, especially when you tell Sublime what you consider being your project.

It's configurable in Python and JSON, which I find to be more readable than Vimscript and Elisp.

Its fancy design calms my need for artistic beauty, as non-hacker as this might sound. I like that it looks great.

Finally, I write a lot of Go and GoSublime is just a killer plugin.


I've used multiple cursors with Emacs and Vim. It's really nice, but I kind of still don't need that feature.

For beauty, I really love my Solarized desktop. It's functional, the colours are nice and I know exactly where is my editor, my browser and my test terminals.

https://www.dropbox.com/s/b99hli11lklmf00/desktop.png

So, coming from the Mac OS X world, I started to see the real beauty of my engineering desktop. And of course all the configs are in Github.


Link the Github! Link doesn't work for me. SSL connection error.



I've downloaded an app where when you press CMD, a popup appears displaying shortcuts for that program, it's been working wonders. Honestly, I might just go back to VIM, it just feels like home after using it for so long. I've yet to try vintage mode.


What app?


> But defending it with these kinds of points just seems tired and strange.

Why? Those are the points that are important to him. The set of points that are important to you are likely non-intersecting. You say you're trying not to demean Gentoo users, but it sure comes off like that.

It was a cool article and I learned new things about Gentoo and what makes it appealing to its users. It just sucks to see people put that down (by calling it odd/strange/tired/etc) because it doesn't conform to what they value out of their OS.


The big advantage is going through the process of putting the system together which gives you knowledge that you can apply to other distributions. It makes weird errors feel a lot less intimidating and you build more confidence in resolving things yourself when google doesn't help. In other words you start to understand what parts you need to make a functioning OS.

Gentoo installs can be very snappy on old hardware, I ran it for a while on an old AMD Athlon and it booted faster and felt way more responsive than much newer machines running Vista etc.

Of course it's not as quick to install and get to a desktop than say Ubuntu, but it isn't really trying to be. Having said that it's really not all that hard, if you've used Linux before and can follow an instruction manual you will be up and going in an hour or two depending on how fast your computer can compile the code.

It's also rolling release, so you don't have to worry about doing big distribution upgrades. You can keep a gentoo install rolling away for years quite happily.


I actually really really like Gentoo.... for a server box.

One day a few years ago I thought I'd throw it on my laptop. Biiig mistake. As an end-user I'm perfectly happy using a binary distro like Fedora. Storage is cheap and I've got lots of memory. System load is typically rather low so I just don't need the kind of performance optimizations that gentoo can provide.

As a server OS? I'd strongly consider Gentoo. As a desk/laptop OS? Hell naw.


Ha! Interestingly, the article "You're probably not for hackers" currently on the front page (https://news.ycombinator.com/item?id=6043318) is talking about building products for that other side that you find so strange.


Some people actually enjoy tinkering with the OS, the OS is a bit of a toy for me and I format to something new every two weeks or so. I can't imagine anything more boring than an OS which hides all the nuts and bolts, that's the sort of computer I give to my mum.

Each to their own.


The last time I felt it worthwhile tailoring my own kernel was to breath life into an older P3 laptop. In this case, it improved battery life by 30% over windows (my primary concern with it, as it was for class use in college). In this case, it was almost a decade ago.


The purpose of running a distribution— any distribution— is to outsource a bunch of basic work that all systems need. After all, I could do all that stuff myself just from source, but I'd like to get something _else_ done with my life too.

The problem with Gentoo is that it just doesn't have an active enough development community to keep up with that task in the way that Fedora, Ubuntu, Debian, or even arch can... so you're stuck doing a lot of stuff yourself, or using old software that you wouldn't be otherwise. Important bug fixes get left marked unstable forever, etc.

I think this is really unfortunate because Gentoo does better capture the inherent advantages in running an open source operating system.

As an upstream developer, I've found that Gentoo users seem to pretty much the only GNU/Linux users who send _patches_ with their bug reports— even more so than the _packagers_ of other distributions. It's especially remarkable when you consider how many more users these other systems have. I don't believe that it's just because Gentoo attracts the geekiest of the geeky, it's because the distribution inherently gives all the users the tools to contribute back and makes them take some of the startup costs, empowering them to contribute.

I wish all distributions were more like gentoo. Innovations in other areas are also important, but there is something to be said about recognizing what makes your system uniquely good and maximizing it— rather than imitating the competitions' strengths... in contrast to what I see with the major distros copying MSFT's and Apple's Signed-everything secureboot stuff, and their bondage and discipline tablet oriented UIs.


I think this is pretty perceptive. I wish that there were more active development for the portage tree community, but the truth is, there is just so much _there_, and as I see it, gentoo hasn't been commodified by an enterprise (canonical, red hat, etc), which is both a blessing and a curse. Also, I think nobody really runs "stable" gentoo, because stable things on single systems are naive. This is part of the reason for the explosion of distributed systems (cassandra, hadoop, hbase, etc). I think most people who run gentoo (correctly) don't actually rely on one single system being stable.


I can't tell if this is satire or not, it's almost as if I'm reading http://funroll-loops.info/


Thanks; I just wasted 1/2 hour reading through that site and groaning.


I used gentoo for many years. I have come to view this as something of an abusive relationship. Now I'm a happy arch user, and no longer think of interactions with the package manager with a sense of dread!

Also, the article had some fantastic (unintentional?) references to http://funroll-loops.info/


That's interesting. I dread arguing with any non-portage (that is, non-Gentoo) package manager. Maybe that's just 'cause I'm used to portage though.


yum actually works really well


I have 8GB of ram. I stopped caring about my OS footprint a long time ago. I sometimes forget VMs running on my workstation and never notice. My system resources are essentially limitless; my time is not.

I used Gentoo for a while thinking I cared about the system logger or cron. I don't. 99.9% of stuff can be installed with the default settings. Painting an actual racing stripe on my workstation would be a more efficient use of my time compared to the cost and any mythical benefits installing Gentoo provides.


It's interesting that so many people have time to maintain their OS, fixing the problems with that OS and still continue to spend time on Work, Family and co. Is that really necessary when you could use a more simpler OS and therefore could have more time to spend on other useful stuffs?


They do it because it's fun for them and they have the free time to do it. They'll swear up and down it's because they have to have absolute control over every aspect of their system because that's so, so, so important and necessary to everything they do, but in reality it's because they've got the time to do it and they're fundamentally doing it because it's fun and interesting for them.

Nothing wrong with that, that was me at one time. Of course, at the time I too swore up and down that all the time I spent maintaining my system(s) was because it was somehow really important for me to do so, and I only had a vague suspicion that it was really just me having fun learning about stuff and hacking around on all sorts of low-level things that I wouldn't get to mess around with otherwise. I still do it when I find the time but it's usually with a little more self-awareness about my motivations for doing so. :)


Is it necessary? Of course not.

However -- to some, me included, maintaining an operating system environment is somewhat of a hobby. Operating systems like Gentoo provide standardized ways to configure how an application is built, and more importantly it provides ways to configure what compile-time features are (and are not) included in the binary. While most people wouldn't find the effort worth the yield, there are people who spend years of their life meticulously making a ship in a bottle. People enjoy it anyway.

Another draw to Gentoo for me is the way they handle package management. You can stick to stable, and packages will be relatively well-tested and mature, or you can choose unstable which will offer you bleeding edge packages. You can also have a stable system, and mark only a few packages unstable. Not many distributions offer a system like that. They are usually completely stable, or don't offer a way to keep most of your system stable while letting a few packages be unstable.

I've used Gentoo for a long time, and my maintenance is nearly nothing these days. Few problems arise (a new GCC version breaks a program or something), but I've actually gained enough practical knowledge to go about fixing these problems rather painlessly for the average case.


Can't recall where I saw it, but: Novice users use the stock kernel because it just works; power users build their own kernel and optimise it to get every last marginal scrap of power out of it; advanced users use the stock kernel because it just works...


If you're somewhat familiar with Linux the time investment isn't really that bad. I've wasted more time over the years due to weird Windows quirks than I have configuring Gentoo.


This is my impression too. Every now and then I run emerge --sync && emerge -avDNu world, do a quick sanity check, then leave it alone.

I've spent enough time on other linux distros chasing down PPAs, or trying to diagnose weird issues that it refuses to log because it might intimidate the user.


I think it's like owning a classic car that you need to pamper all the time. It's a tool much like your computer but some people love tinkering.


Some people work in areas where fine-grained control of their environment (library versions, kernel options, etc.) is a requirement. Others do it to learn. IMHO you could benefit from being less hasty to judge and dismiss others.


While I'm not a kernel builder, I do aim for the barest possible distribution out of the box. I'm most happy when I have a basic install that includes vi and apt only.

That way I know exactly what dependencies I am dealing with and what all I need to be aware of when configuring any tool.

Might not be the same, because I am in the dist kernel upgrade group.


I could take public transportation and save a whole lot of money (gas, payments, insurance, etc.) but I find that having the flexibility to go wherever I want whenever I want is a good reason to keep my SUV.

In addition, I could save a helluva lot more money by not owning a motorcycle and driving the SUV. To me, though, it's worth every penny.


I think you're looking at a vocal minority. :)


It seems like the author's main point is that Gentoo's source-based package management offers more fine-grained control than Arch's binary package management.

To this I say: Arch has source-based package management too! It's called makepkg, and is indispensable for long-time Arch users, as it allows you to build packages not in the official repos, or tweak the build flags of official packages.

As always, the Arch wiki has extensive documentation.

* Here are docs on makepkg https://wiki.archlinux.org/index.php/Makepkg

* Here are docs on installing unofficial packages from the Arch User Repository https://wiki.archlinux.org/index.php/AUR

* Here are instructions on installing custom versions of official packages from source using ABS (https://wiki.archlinux.org/index.php/ABS)


Sure, Gentoo is fantastic for the control it gives you ... by making extreme flexibility relatively convenient, you get various benefits such as resource gains and additional security through minimalism. It's not for everyone, but it's an extremely valuable member of the Linux distribution space.

However, I disagree with the author suggesting Gentoo is anything near Linux from Scratch (LFS). A base 'stage3' (initial filesystem) image for Gentoo is quite large these days (~170MB compressed) and includes python, perl, bash, etc. (Squashfs with busybox and a kernel is a base Linux system!)

Like any project, Gentoo's not perfect and has its issues. While I personally prefer it to others, I also see the value in other systems for people with different goals (such as reasonably automated security updates, strong commercial support, etc.). As always, right tool for the job.


He's only listed three advantages that I can discern.

1. "but users of binary package management still install extra support for things they may never use."

2. Custom kernel with only what you need

3. "Even menial things such as choice of system logger and cron daemon can be chosen and configured exactly the way you want"

Why are those meaningful advantages? For example, if it makes my computer run faster, great, but does it? (I doubt it.)

Most of the other stuff is just giving major props to Portage... I mean yeah, I'm sure the "revdep-rebuild function" is great, but since I'm using a binary distro, I don't need it!


I don't see why number 2 can't be done on any other distro. Nothing is stopping you from compiling your own kernel on any of them. Of coarse its rare that people would bother.

3 is also a feature of Arch. The problem is now you have to spend time setting that stuff up. More problematic is you have to actually know you need to set something up. Did you remember/bother to tweak, your ssd settings in fstab? Setup OpenAL for 3d sound? Your HDD IO schedular? Your TCP buffer settings? Your font renderers antialiasing? All that crap sould be taken care of (although admitidly distros don't seem to do things like setup SSD schedulers to deadline/nop.

1 seems a be redonculious. There is very little reason to really worry about having a few extra packages lying around as long as there not running stuff in the background. I think it's more for people with a case of OCD about their file system.


Regarding 1), and I realise this is anecdotal... I had a binary package manager install all of X11 and Gnome 2, simply 'cause I tried to install the svn command-line client. This was on a server-style box I only sshed into, with limited disk space and memory (128M, I think?).

... not that I could really run Gentoo on that either though.


> Did you remember/bother to tweak, your ssd settings in fstab?

I use Arch too, and no, I didn't think to do that. Thanks!


Instead of mounting your file system with discard, use cron to run the command "fstrim /path/on/ssd" daily. You won't have to pass the discard commands every time something is deleted, and instead only have the performance hit once a day.


Gentoo is hard but it pays off in tough situations. The benefit is more about elegant and efficient customization rather than performance. It's not for most situations but I am very grateful that it exists and that I took the time to learn it.


This matches my own experience. For example, I use it for custom diskless images that run with some fairly specific kernel features and init system customizations to support from-boot ethernet and switch redundancy via bonding at the same time as root on NFS (for cluster integrity, ie. split-brain avoidance, even in the event of system failure within switching fabric). I would hate to try doing that with mainstream distributions.


I've used Gentoo since 2007ish on three separate machines, installed it on a couple more I didn't own, and on my own devices have totally broken it a few times in the earlier years forcing a complete reinstall. (One time I saved it after I had killed /bin et al. by bootstrapping with busybox...) The feeling of control and having essentially everything the way I want is seductive and easy to miss when I work with Windows or any other Linux. And for some reason fixing the system when it goes wrong gives me a bit of pleasure, which not many other things do. This year I swapped out my nVidia GTX260 for a Radeon HD 7950, so of course X wouldn't start. It's a simple issue though, about 10-20 minutes later I had graphics again and my dual monitors setup with my vertical one rotated properly. Huzzah!

Portage is my favorite package manager, but it's not without its problems. I occasionally get frustrated by dependency conflicts. One thing I think the submission should have mentioned is the `eix` tool, which is to Portage's `emerge` as `slocate` is to `find`. It's a much better experience for finding out what packages are available or a description of a package.

Another feature I like about Gentoo is 'rolling releases'. I don't ever have to do a dist-upgrade, I just update the packages I want to update when they have updates. And I'm still happily using gnome2.

Some people are offended by the installation process. I think that's a good enough litmus-test for whether they would enjoy Gentoo or not.


There two reasons I have up on Gentoo several years. One was a period of very high drama amongst the developers.

The major one was packages never being marked as stable. There was a file you could add packages to in order to allow unstable versions, but it just kept getting longer and longer. If I wanted long term stability, I'd use Debian. For desktops and workstations, I expect things to be "fresh" where each distro has their own tastes for fresh, but certainly measured in months. (I switched to Ubuntu because I knew I'd get fresh Gnome, at a time when there were good system enhancements like NetworkManager.)

A quick check on http://packages.gentoo.org shows that no version of Gnome 3 appears to be marked stable. For the software package I am an author of, the most recent version marked stable was released 13 months ago and there have been 10 releases since! LibreOffice does seem to be an up to date version, as does emacs.

One area when Gentoo shines are the docs - they are very very good. I did try Arch a while back and ended up in a maze of using the wrong one out of official and unofficial documentation.


I don't want to identify myself but I was one of the first developers for Gentoo back when it was called Enoch. There was always drama, credit stealing, back-stabbing et all. Arguably the largest contribution I made to the distribution (once again not mentioning specifics to identify myself)... the history of the event was rewritten and I was left out of it entirely.

I got the heck out of there. That being said, the founder Daniel Robbins is a nice guy and taught me a lot.


Daniel Robbins also left, he has since set up a Gentoo meta-distribution called Funtoo http://www.funtoo.org/


I did not know that, thanks.


I realise you're done with Gentoo, but I just want to make sure people are aware of

  ACCEPT_KEYWORDS="~amd64"
which automatically installs "unstable" versions of packages. Unstable is pretty damn stable in my experience. Maybe not server-proof, but fine for a desktop.


"fresh" means recent, but not "I want to be a tester" :-) From the developer handbook:

> The purpose of ~arch is for testing new packages added to Portage. ... The use of ~arch denotes an ebuild requires testing.

Most original developers don't release broken packages so in general new versions tend to be stable.

This covers the moving from ~arch to arch: http://www.gentoo.org/proj/en/devrel/handbook/handbook.xml?p...

The guideline there is about a month and no outstanding bug reports. That would be perfect, but unfortunately packages lag because it is easier for the maintainer to not mark them stable. It has probably been discussed before, but the inertia being towards things going stable with inaction rather than the other way around would help.


> " Gentoo also provides some fantastic tools for maintaining your system. ‘eselect’, for example, makes it easy to symlink your kernel,"

This whole post could have been sarcasm. I know it isn't, but, this is exactly what I never ever want from the computer I use for daily tasks. I just want it to work.


The kernel symlinking is actually a rather unnecessary eselect module. An example of a more useful module is switching your system's default python from 2.7 to 3 to 2.6 in one command instead of changing the symlink for the various python commands.


I used to be a major Gentoo user for years, but moved production servers over to FreeBSD because every few weeks commits to the portage tree would break my servers requiring hours of "massaging" to get packages compiled.

Portage is brilliant, and *BSD would benefit heavily from it, but at the time it just wasn't production ready. Too bad the GentooBSD project has been dead in the water for a few years.

I wrote a guide years ago on setting up a Stage 1 install[1], it's heavily out of date but may provide an insight into how things on the Gentoo side have changed over the years.

[1] http://matt.xerq.net/gentoo_stage1.txt


I used Gentoo a while ago, and I did enjoy the experience, but found the culture and system to be a bit mired in old stubborn tradition.

An interesting fork-ish project is Exherbo, which is basically Gentoo but much lighter (in architecture, not performance really), cleaner (in my opinion) and modern.

It's not for everyone, but if Gentoo tickled your fancy but you found it a bit old-feeling, give Exherbo a shot!

http://www.exherbo.org/

Full disclosure: I have absolutely no connection with Exherbo or its maintainers.


As another Gentoo alternative, I'd suggest Funtoo which is essentially a set of patches on top of Gentoo by the original creator.


Let's also not forget Gentoo is the basis of the amazing SystemRescueCD http://www.sysresccd.org


Years ago, I once tried to rescue a disk with this and the CD would not boot the computer... apparently because it needed to access a hard disk to boot. Perhaps I am not well schooled in the arts of systemrescuecd, but that just made me laugh. They may have fixed this in the years since, but I lost any confidence in systemrescuecd.

Instead, I booted with a BSD kernel having an embedded root filesystem and proceeded to rescue the disk.

This is why I often can't take Gentoo users seriously. Some certainly know what they're doing (Google built their systems from Gentoo, didn't they?). But too many others only think they do.


Replying to this just to let you know that it seems you've been hellbanned - each of your last three comments is [dead], although none seems offensive or inappropriate.


Thanks. So what does it mean if you are "hellbanned" but the comments are neither offensive nor inappropriate?

Is hellbanning automated, or is it the work of human judgment? Perhaps it is a technical issue that results in [dead] comments?


Portage is really worth the time it takes to setup Gentoo. Really, it doesn't take more than a few hours on a server install, and most of it is unattended.

There's also Funtoo (http://funtoo.org) out there, which is maintained by the creator of Gentoo (Daniel Robbins). It has a couple of neat features like a git-based portage tree, for example.


Many of the reasons which the author mentions as why they chose Gentoo are precisely the reasons why I choose FreeBSD.

I really like the ports system, and from what I've heard, Portage is based on the FreeBSD ports system.


We're talking about a sample size of one computer here right?


So you have a Core i7 to build the package quick, then, you use it for 1% of the time.

Sounds great.




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

Search: