website

My personal website
git clone git://git.ckyln.com/website
Log | Files | Refs

20200508-why-i-dislike-arch-and-gentoo.html (6110B)


      1 <!DOCTYPE HTML>
      2 <html lan=en>
      3   <head>
      4     <title>Why I dislike Arch and Gentoo | Cem's Website</title>
      5     <meta charset="utf-8">
      6     <meta name="Description" content="Cem Keylan's Website">
      7     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
      8     <style>
      9       html {font-family:monospace;font-size:16px;color:#282a36;}
     10       body {
     11 	  width: 90%;
     12 	  max-width: 1050px;
     13 	  margin-left: auto;
     14 	  margin-right: auto;
     15 	  margin-top: 20px;
     16 	  overflow: none;
     17           overflow-y: scroll;
     18 	  padding-right: 10px;
     19 	  padding-left: 10px;
     20       }
     21       a{text-decoration:none;font-weight:bold;color:#282a36;}
     22       a:hover{text-decoration:underline;}
     23       @media (prefers-color-scheme: dark) {
     24           html {color: white;background:#282a36;}
     25           a{color:white;}
     26       }
     27     </style>
     28     <link rel="stylesheet" href="/static/syntax.css">
     29     <script src="/static/highlight.pack.js"></script>
     30     <script>hljs.initHighlightingOnLoad();</script>
     31   </head>
     32   <body>
     33     <div class="header">
     34       <nav>
     35         <a href='/'>index</a> |
     36         <a href="/software.html">software</a> |
     37         <a href="/blog.html">blog</a> |
     38         <a href="/contact.html">contact</a> |
     39         <a href="/sysmgr">sysmgr</a> |
     40       </nav>
     41     </div>
     42     <hr>
     43     <p>
     44 <h1>Why I dislike Arch and Gentoo</h1>
     45 
     46 <p>Over the years, I have used many many Linux distributions. The reason I am
     47 now using a distribution maintained by me, is because I am never truly satisfied
     48 about other people&rsquo;s work. Not that they are bad at they do, it&rsquo;s just that
     49 they don&rsquo;t share the same vision as me. And I have felt this way with almost
     50 every distribution I have used.</p>
     51 
     52 <h2>Arch Linux</h2>
     53 
     54 <p>Arch Linux itself feels like it became a &lsquo;meme distribution&rsquo;. Their user-base
     55 is a cult-like community that think they are superior for using Arch Linux.
     56 Now, you might be an Arch user, and might not be like this. I used Arch for
     57 a long time, and didn&rsquo;t feel this way, ever. I only see this level of cultism
     58 for Arch and systemd.</p>
     59 
     60 <p>If you ever call Arch bloated on an online community website, you will get
     61 lots of crap for it. But in fact, Arch Linux is bloated. Now this isn&rsquo;t due
     62 to having too many packages in the base installation. This is because of their
     63 packaging of software.</p>
     64 
     65 <p>Arch enables almost every single option in the package configuration, meaning
     66 lots of unnecessary dependencies, and packages with humongous sizes.</p>
     67 
     68 <p>Pacman is a rather slow package manager, and missing alternatives. For me,
     69 an alternatives system is a must.</p>
     70 
     71 <p>If you want to use a better binary distribution, use Void Linux. They have
     72 saner package configurations, and the environment just feels more UNIXy. xbps
     73 is really fast, and has an alternatives system.</p>
     74 
     75 <h2>Gentoo Linux</h2>
     76 
     77 <p>This will be the longer part, because my dislike for Gentoo is bigger than
     78 my dislike towards Arch. If you want to see how NOT to maintain a distribution,
     79 check out Gentoo.</p>
     80 
     81 <p>I&rsquo;ve used Gentoo for a few months, and I&rsquo;m saying this right out of the
     82 gate. Portage is the slowest piece of software that I have ever used on
     83 Linux. Maybe that&rsquo;s because I deliberately avoid software using Python,
     84 but Portage is most probably the slowest package manager that is being
     85 used.</p>
     86 
     87 <p>Portage depends on Bash, Python, and GNU wget. I have got a line count from
     88 <code>cloc</code>, doing a <code>find . \( -name '*.sh -o -name '*.py' \) -exec cloc {} +</code>.
     89 The source code of just <code>*.sh</code> and <code>*.py</code> files are over 100k lines of code.
     90 Then I got curious and runned cloc against the whole repository. Here is
     91 the output.</p>
     92 
     93 <pre><code>--------------------------------------------------------------------------------
     94 Language                      files          blank        comment           code
     95 --------------------------------------------------------------------------------
     96 Python                          703          20009          21411         102180
     97 Bourne Shell                     13            643            678           3911
     98 Bourne Again Shell               44            583            434           3172
     99 diff                             17             31            298            574
    100 YAML                              6             32             80            573
    101 XSD                               1             27             27            494
    102 C                                 2             56            128            291
    103 make                              1              7              6             19
    104 INI                               1              1              0             15
    105 reStructuredText                  1              5              4              9
    106 XSLT                              1              0              0              5
    107 --------------------------------------------------------------------------------
    108 SUM:                            790          21394          23066         111243
    109 --------------------------------------------------------------------------------
    110 </code></pre>
    111 
    112 <p>That&rsquo;s quite a lot.</p>
    113 
    114 <p>Portage is a package manager that tries to ease the configuration process of
    115 packages, but at the process makes it terribly complex to compose packages,
    116 and adds billions of portage configuration options. Configuring your first
    117 kernel is literally easier than configuring portage in a way you want. Users
    118 just do not know that they would be better off doing an LFS build for a much
    119 stabler system. My system was broken countless times while using Gentoo.
    120 Maintaining a Gentoo system is honestly harder than maintaining my own
    121 distribution.</p>
    122 
    123 <p><strong>EAPI</strong>, probably the worst thing about the Portage ecosystem. It is the most
    124 complex, hard to read, hard to learn packaging system ever made. Creating a
    125 USE flag system shouldn&rsquo;t have been this hard.</p>
    126     </p>
    127     <a href="/blog/20200508-why-i-dislike-arch-and-gentoo.txt">This page in plain-text</a>
    128     <hr>
    129     <p class=footer>Copyright &copy; 2019-2021 Cem Keylan</p>
    130   </body>
    131 </html>