index.html 11 KB
Newer Older
1 2 3 4 5 6 7 8
<title>Wrath of Linux Package Managers - VARSTACK</title>
<meta charset="utf-8"/>

<link href="/css/bootstrap.css" rel="stylesheet">
<link href="/css/highlighting.css" rel="stylesheet">
<link href="/css/style.css" rel="stylesheet">


9 10 11 12
<script src="/js/jquery-1.11.3.min.js" async></script>
<script src="/js/bootstrap.min.js" async></script>
<script src="/js/SmoothScroll.js" async></script>
<script src="/js/script.js" async></script>
13 14


15
<script src="/js/tips.js" async></script>
16

17 18
<script type="text/javascript" async>var switchTo5x=true;</script>
<script type="text/javascript" async>stLight.options({publisher: "7839e2af-f9d1-4f68-9304-dcf13d3352ea", doNotHash: false, doNotCopy: false, hashAddressBar: false});</script>
19 20 21 22 23 24 25 26 27 28

<!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
    <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->

    
    <div class="container">
        <div class="row" id="menu">
            <div class="table_this" id="tableRow">
Pallav Agarwal's avatar
Pallav Agarwal committed
29 30
                <div class="col-md-3 vcenter" id="site_title"><a href="/" style="color:black;">VARSTACK</a></div>
                <div class="col-md-6 vcenter">
31 32 33 34 35 36 37 38 39
                    <div class="row" id="top_menu">
                        <ul class="nav nav-pills">
                            <li class="active" id="blog"><a class="color_change" href="/">Blog</a></li>
                            <li id="tips"><a class="color_change" href="/tips/">Tips</a></li>
                            <li id="algo"><a class="color_change" href="/algo/">Behind The Scenes</a></li>
                            <li id="about"><a class="color_change" href="/about_me/">About Me</a></li>
                        </ul>
                    </div>
                </div>
Pallav Agarwal's avatar
Pallav Agarwal committed
40
                <div class="col-md-3 vcenter">
41 42 43 44 45 46 47 48 49 50
                    <div class="row">
                        <form action="/search/" id='search-form'>
                            <input id="search-box" type="text" name="query" placeholder="Search..">
                        </form>
                    </div>
                </div>
            </div>
        </div>
        
        <div class="row" id="content">
Pallav Agarwal's avatar
Pallav Agarwal committed
51
            <div class="col-md-7 col-md-push-3">
52
                <div class="row" id="data">
Pallav Agarwal's avatar
Pallav Agarwal committed
53 54 55 56 57 58 59
                    <div class="col-md-12">
                        <br />
                        <h3>Wrath of Linux Package Managers</h3>
                        <hr />
                        <div class="row text-justify" id="content-holder">
                            <div class="col-md-12">
                                <p>We all love to characterise things as <em>"More than the sum of it's parts"</em>.
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
We'd like to say the same about our linux operating system. My <strong>ARCH</strong> is more
than the sum of it's parts! Well.. no.</p>

<p>A linux system is exactly the sum of it's parts. And most of those parts
are connected to the base package manager, the beast that acts like a framework,
holding everything together.</p>

<p>Have you ever wondered what makes <em>Ubuntu</em> <strong>Ubuntu</strong>?
Or what is the difference between <em>ARCH</em> and <em>GENTOO</em>? If you guessed <em>a package
manager</em>, you'd be right.</p>

<p>You probably don't believe me? I mean, doesn't Ubuntu look completely
different from Linux Mint or Fedora? Sure it does, but that's only the defaults.
I have a Linux Mint and an Arch system which look identical, but have very
different package managers, and hence very different folder structures. And before
I shifted to i3wm (Window Manager), my ARCH used to look identical to the
environment you'd get on Fedora.</p>

<p>So, what makes these Package Managers so different from one another?
To answer that, let's look at some common package managers.</p>

<ol>
<li><p><strong>DPKG</strong>: If you have used any debian based OS, you should be familiar with
dpkg. Dpkg is known to create and install .deb packages. These packages contain
cross compiled binaries, with a predetermined folder structure. Files are merely
copied to the correct location during installation. All packages present upstream
are stable, and usually a little old.</p></li>
<li><p><strong>PORTAGE</strong>: You probably haven't heard of this, unless you have used <em>GENTOO</em>.
The reason I mention this is because of the contrast between PORTAGE and DPKG. While
dpkg installs everything from binaries, portage usually downloads the source code,
and compiles everything. This has the obvious benefit that binaries compiled can
be machine tuned, making the system noticably faster. Unfortunately, build errors
can be a headache. Installation of binaries is supported, but rarely used.</p></li>
<li><p><strong>PACMAN</strong>: This is the package manager that ships with <em>ARCH</em> and tries to
combine the best of both worlds. Pacman itself installs binaries, while AUR
allows the users to use pacman to install packages from source too. The packages
present upstream, in this case, are usually rolling stone releases (As latest as
possible) and can <em>sometimes</em> have bugs.</p></li>
</ol>


<p><strong>NOTE</strong>: Above information is an over simplification of the working of package
managers. What happens under the hood is a lot more complicated.</p>

<p><br /></p>

<h4>Why do I think this is important?</h4>

<p>Those who know me, (Or have read <em>ABOUT ME</em>) would know that lately, I've been
trying to build my own operating system using the LFS project. I was struck with
the choice of a package manager, as by default, LFS has none. I went with Portage,
since it compiles the packages, just like everything else in LFS. As I continued
with the build, my OS started to be more and more Gentoo-ey. It started pointing
out that I should read Gentoo forums before installing specific packages and so on.
I could as well have choosed Pacman or DPKG or Snappy to make it into ARCH, Debian
or Ubuntu.</p>

<p><br /></p>

<h4>Why did I call this the <em>wrath</em> of package managers?</h4>

<p>As the package managers are the backbone of the operating systems, it is a good
idea to leave them alone to their musings. They do not like competition and if
you try to install Pacman on Debian or Portage on Arch, you will (<em>more likely than
not</em>) end up with a broken, unusable system as the different package managers
will step on each other's files and overwrite each other's essential files.</p>

<p><br /></p>

Pallav Agarwal's avatar
Pallav Agarwal committed
129 130
                            </div>
                        </div>
131 132 133
                    </div>
                </div>
                <hr /><br />
Pallav Agarwal's avatar
Pallav Agarwal committed
134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189
            </div>
            <div class="col-md-3 col-md-pull-7" id="recent">
                <h4>RECENT POSTS</h4>
                <ul class="nav nav-pills nav-stacked">
                    
                    <li>
                        <a href="/2015/07/09/Vim-Plugins/" class="color_change">Essential VIM plugins</a>
                    </li>
                    
                    <li>
                        <a href="/2015/07/08/Vim-Colorscheme/" class="color_change">VIM: Setting a colorscheme</a>
                    </li>
                    
                    <li>
                        <a href="/2015/07/03/Vim-Plug-Plugin-Manager/" class="color_change">Plugin Management in VIM</a>
                    </li>
                    
                    <li>
                        <a href="/2015/07/01/Vim-Customization/" class="color_change">Vim Customization: Guide to writing your...</a>
                    </li>
                    
                    <li>
                        <a href="/2015/06/26/Linuxbrew/" class="color_change">Package Management without root access -...</a>
                    </li>
                    
                </ul>
                <h4>RECENT TIPS</h4>
                <ul class="nav nav-pills nav-stacked">
                    
                    <li>
                        <a href="/2015/07/09/Wrath-of-Linux-Package-Managers/" class="color_change">Wrath of Linux Package Managers</a>
                    </li>
                    
                    <li>
                        <a href="/2015/07/01/Vim-Mappings/" class="color_change">Quick intro to custom Vim Mappings...</a>
                    </li>
                    
                    <li>
                        <a href="/2015/06/30/Mouse-with-vim/" class="color_change">Using Mouse with VIM in the...</a>
                    </li>
                    
                </ul>
                <br />
                <br />
            </div>
            <div class="col-md-2">
            </div>
            <div class="row">
                <div class="col-md-8 col-md-offset-2">
                    <span class='st_sharethis_large' displayText='ShareThis'></span>
                    <span class='st_facebook_large' displayText='Facebook'></span>
                    <span class='st_twitter_large' displayText='Tweet'></span>
                    <span class='st_googleplus_large' displayText='Google +'></span>
                    <span class='st_linkedin_large' displayText='LinkedIn'></span>
                    <span class='st_pinterest_large' displayText='Pinterest'></span>
                    <div id="disqus_thread"></div>
190
                    <script type="text/javascript" async>
191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206
/* * * CONFIGURATION VARIABLES * * */
var disqus_shortname = 'varstack';

/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
    var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
    dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-21768487-2', 'auto');
ga('send', 'pageview');
Pallav Agarwal's avatar
Pallav Agarwal committed
207
                    </script>
208
                    <script type="text/javascript" src="http://w.sharethis.com/button/buttons.js" async></script>
Pallav Agarwal's avatar
Pallav Agarwal committed
209 210
                    <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
                </div>
211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233
            </div>
        </div>
    </div>


    <div class="modal fade" id="imagemodal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal">
                        <span aria-hidden="true">&times;</span>
                        <span class="sr-only">Close</span>
                    </button>
                    <h4 class="modal-title" id="myModalLabel">
                        Image Preview
                    </h4>
                </div>
                <div class="modal-body">
                    <img src="" id="imagepreview" style="max-height: 100%; max-width: 100%;">
                </div>
            </div>
        </div>
    </div>