summaryrefslogtreecommitdiff
path: root/public/pacman-overview.html
diff options
context:
space:
mode:
Diffstat (limited to 'public/pacman-overview.html')
-rw-r--r--public/pacman-overview.html36
1 files changed, 36 insertions, 0 deletions
diff --git a/public/pacman-overview.html b/public/pacman-overview.html
new file mode 100644
index 0000000..e05fd81
--- /dev/null
+++ b/public/pacman-overview.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>A quick overview of usage of the Pacman package manager — Luke Shumaker</title>
+ <link rel="stylesheet" type="text/css" href="assets/style.css">
+</head>
+<body>
+<header><a href="/">Luke Shumaker</a> » <a href=/blog>blog</a> » pacman-overview</header>
+<article>
+<h1 id="a-quick-overview-of-usage-of-the-pacman-package-manager">A quick overview of usage of the Pacman package manager</h1>
+<p>This was originally published on <a href="https://news.ycombinator.com/item?id=5101416">Hacker News</a> on 2013-01-23.</p>
+<p>Note: I've over-done quotation marks to make it clear when precise wording matters.</p>
+<p><code>pacman</code> is a little awkward, but I prefer it to apt/dpkg, which have sub-commands, each with their own flags, some of which are undocumented. pacman, on the other hand, has ALL options documented in one fairly short man page.</p>
+<p>The trick to understanding pacman is to understand how it maintains databases of packages, and what it means to &quot;sync&quot;.</p>
+<p>There are several &quot;databases&quot; that pacman deals with:</p>
+<ul>
+<li>&quot;the database&quot;, (<code>/var/lib/pacman/local/</code>)<br> The database of currently installed packages</li>
+<li>&quot;package databases&quot;, (<code>/var/lib/pacman/sync/${repo}.db</code>)<br> There is one of these for each repository. It is a file that is fetched over plain http(s) from the server; it is not modified locally, only updated.</li>
+</ul>
+<p>The &quot;operation&quot; of pacman is set with a capital flag, one of &quot;DQRSTU&quot; (plus <code>-V</code> and <code>-h</code> for version and help). Of these, &quot;DTU&quot; are &quot;low-level&quot; (analogous to dpkg) and &quot;QRS&quot; are &quot;high-level&quot; (analogous to apt).</p>
+<p>To give a brief explanation of cover the &quot;high-level&quot; operations, and which databases they deal with:</p>
+<ul>
+<li>&quot;Q&quot; Queries &quot;the database&quot; of locally installed packages.</li>
+<li>&quot;S&quot; deals with &quot;package databases&quot;, and Syncing &quot;the database&quot; with them; meaning it installs/updates packages that are in package databases, but not installed on the local system.</li>
+<li>&quot;R&quot; Removes packages &quot;the database&quot;; removing them from the local system.</li>
+</ul>
+<p>The biggest &quot;gotcha&quot; is that &quot;S&quot; deals with all operations with &quot;package databases&quot;, not just syncing &quot;the database&quot; with them.</p>
+
+</article>
+<footer>
+<p>The content of this page is Copyright © 2013 <a href="mailto:lukeshu@sbcglobal.net">Luke Shumaker</a>.</p>
+<p>This page is licensed under the <a href="https://creativecommons.org/licenses/by-sa/3.0/">CC BY-SA-3.0</a> license.</p>
+</footer>
+</body>
+</html>