20200508-why-i-dislike-arch-and-gentoo.md (4625B)
1 Why I dislike Arch and Gentoo 2 ================================================================================ 3 4 Over the years, I have used many many Linux distributions. The reason I am 5 now using a distribution maintained by me, is because I am never truly satisfied 6 about other people's work. Not that they are bad at they do, it's just that 7 they don't share the same vision as me. And I have felt this way with almost 8 every distribution I have used. 9 10 11 Arch Linux 12 -------------------------------------------------------------------------------- 13 14 Arch Linux itself feels like it became a 'meme distribution'. Their user-base 15 is a cult-like community that think they are superior for using Arch Linux. 16 Now, you might be an Arch user, and might not be like this. I used Arch for 17 a long time, and didn't feel this way, ever. I only see this level of cultism 18 for Arch and systemd. 19 20 If you ever call Arch bloated on an online community website, you will get 21 lots of crap for it. But in fact, Arch Linux is bloated. Now this isn't due 22 to having too many packages in the base installation. This is because of their 23 packaging of software. 24 25 Arch enables almost every single option in the package configuration, meaning 26 lots of unnecessary dependencies, and packages with humongous sizes. 27 28 Pacman is a rather slow package manager, and missing alternatives. For me, 29 an alternatives system is a must. 30 31 If you want to use a better binary distribution, use Void Linux. They have 32 saner package configurations, and the environment just feels more UNIXy. xbps 33 is really fast, and has an alternatives system. 34 35 36 Gentoo Linux 37 -------------------------------------------------------------------------------- 38 39 This will be the longer part, because my dislike for Gentoo is bigger than 40 my dislike towards Arch. If you want to see how NOT to maintain a distribution, 41 check out Gentoo. 42 43 I've used Gentoo for a few months, and I'm saying this right out of the 44 gate. Portage is the slowest piece of software that I have ever used on 45 Linux. Maybe that's because I deliberately avoid software using Python, 46 but Portage is most probably the slowest package manager that is being 47 used. 48 49 Portage depends on Bash, Python, and GNU wget. I have got a line count from 50 `cloc`, doing a `find . \( -name '*.sh -o -name '*.py' \) -exec cloc {} +`. 51 The source code of just `*.sh` and `*.py` files are over 100k lines of code. 52 Then I got curious and runned cloc against the whole repository. Here is 53 the output. 54 55 ``` 56 -------------------------------------------------------------------------------- 57 Language files blank comment code 58 -------------------------------------------------------------------------------- 59 Python 703 20009 21411 102180 60 Bourne Shell 13 643 678 3911 61 Bourne Again Shell 44 583 434 3172 62 diff 17 31 298 574 63 YAML 6 32 80 573 64 XSD 1 27 27 494 65 C 2 56 128 291 66 make 1 7 6 19 67 INI 1 1 0 15 68 reStructuredText 1 5 4 9 69 XSLT 1 0 0 5 70 -------------------------------------------------------------------------------- 71 SUM: 790 21394 23066 111243 72 -------------------------------------------------------------------------------- 73 ``` 74 75 That's quite a lot. 76 77 Portage is a package manager that tries to ease the configuration process of 78 packages, but at the process makes it terribly complex to compose packages, 79 and adds billions of portage configuration options. Configuring your first 80 kernel is literally easier than configuring portage in a way you want. Users 81 just do not know that they would be better off doing an LFS build for a much 82 stabler system. My system was broken countless times while using Gentoo. 83 Maintaining a Gentoo system is honestly harder than maintaining my own 84 distribution. 85 86 **EAPI**, probably the worst thing about the Portage ecosystem. It is the most 87 complex, hard to read, hard to learn packaging system ever made. Creating a 88 USE flag system shouldn't have been this hard.