211 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			211 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<?xml version="1.0" encoding="utf-8"?>
 | 
						|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 | 
						|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 | 
						|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
 | 
						|
<head>
 | 
						|
<!-- 2022-05-09 lun. 10:04 -->
 | 
						|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
 | 
						|
<title>System maintenance</title>
 | 
						|
<meta name="author" content="Dehaeze Thomas" />
 | 
						|
<meta name="generator" content="Org Mode" />
 | 
						|
<link rel="stylesheet" type="text/css" href="./dist/style.css"/>
 | 
						|
<script type="text/javascript" src="./dist/script.js"></script>
 | 
						|
</head>
 | 
						|
<body>
 | 
						|
<div id="org-div-home-and-up">
 | 
						|
 <a accesskey="h" href="./index.html"> UP </a>
 | 
						|
 |
 | 
						|
 <a accesskey="H" href="./index.html"> HOME </a>
 | 
						|
</div><div id="content" class="content">
 | 
						|
<h1 class="title">System maintenance</h1>
 | 
						|
<div id="table-of-contents" role="doc-toc">
 | 
						|
<h2>Table of Contents</h2>
 | 
						|
<div id="text-table-of-contents" role="doc-toc">
 | 
						|
<ul>
 | 
						|
<li><a href="#orgcee4f36">Update</a>
 | 
						|
<ul>
 | 
						|
<li><a href="#orga1d17d9">System packages</a></li>
 | 
						|
<li><a href="#org7a43bdd">NPM</a></li>
 | 
						|
<li><a href="#org1a3938d">PIP</a></li>
 | 
						|
<li><a href="#org02e5c0d">Emacs and Vim</a></li>
 | 
						|
</ul>
 | 
						|
</li>
 | 
						|
<li><a href="#org57b56ea">Check problems in the system</a></li>
 | 
						|
<li><a href="#org04cbee1">Check orphan and dropped packages</a></li>
 | 
						|
</ul>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
<p>
 | 
						|
<a href="https://wiki.archlinux.org/title/System_maintenance">https://wiki.archlinux.org/title/System_maintenance</a>
 | 
						|
</p>
 | 
						|
 | 
						|
<div id="outline-container-orgcee4f36" class="outline-2">
 | 
						|
<h2 id="orgcee4f36">Update</h2>
 | 
						|
<div class="outline-text-2" id="text-orgcee4f36">
 | 
						|
</div>
 | 
						|
<div id="outline-container-orga1d17d9" class="outline-3">
 | 
						|
<h3 id="orga1d17d9">System packages</h3>
 | 
						|
<div class="outline-text-3" id="text-orga1d17d9">
 | 
						|
<p>
 | 
						|
To check packages to update:
 | 
						|
</p>
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-bash">paru -Qu
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
 | 
						|
<p>
 | 
						|
And then to perform the update:
 | 
						|
</p>
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-bash">paru
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org7a43bdd" class="outline-3">
 | 
						|
<h3 id="org7a43bdd">NPM</h3>
 | 
						|
<div class="outline-text-3" id="text-org7a43bdd">
 | 
						|
<p>
 | 
						|
First update <code>npm</code> itself
 | 
						|
</p>
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-bash"><span class="org-type">sudo</span> npm install npm@latest -g
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
 | 
						|
<p>
 | 
						|
Then, we can list outdated packages:
 | 
						|
</p>
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-bash">npm outdated -g --depth=<span class="org-highlight-numbers-number">0</span>
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
 | 
						|
<p>
 | 
						|
And finally perform the update:
 | 
						|
</p>
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-bash"><span class="org-type">sudo</span> npm update -g
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org1a3938d" class="outline-3">
 | 
						|
<h3 id="org1a3938d">PIP</h3>
 | 
						|
<div class="outline-text-3" id="text-org1a3938d">
 | 
						|
<p>
 | 
						|
First upgrade <code>pip</code> itself:
 | 
						|
</p>
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-bash">/usr/bin/python3 -m pip install --upgrade pip
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
 | 
						|
<p>
 | 
						|
Then list outdated packages:
 | 
						|
</p>
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-bash">pip3 list --outdated
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
 | 
						|
<p>
 | 
						|
And update everything with:
 | 
						|
</p>
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-bash">pip3 list --outdated --format=freeze | <span class="org-type">grep</span> -v <span class="org-string">'^\-e'</span> | cut -d = -f <span class="org-highlight-numbers-number">1</span> | xargs -n1 pip3 install -U
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org02e5c0d" class="outline-3">
 | 
						|
<h3 id="org02e5c0d">Emacs and Vim</h3>
 | 
						|
<div class="outline-text-3" id="text-org02e5c0d">
 | 
						|
<p>
 | 
						|
Update Doom emacs with:
 | 
						|
</p>
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-bash">doom up
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
 | 
						|
<p>
 | 
						|
And Vim packages with:
 | 
						|
</p>
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-bash">nvim -c PlugUpgrade -c PlugUpdate
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org57b56ea" class="outline-2">
 | 
						|
<h2 id="org57b56ea">Check problems in the system</h2>
 | 
						|
<div class="outline-text-2" id="text-org57b56ea">
 | 
						|
<p>
 | 
						|
First check for failed services:
 | 
						|
</p>
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-bash">systemctl --failed
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
 | 
						|
<p>
 | 
						|
Same for user services:
 | 
						|
</p>
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-bash">systemctl --user --failed
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
 | 
						|
<p>
 | 
						|
Look for errors in the logs:
 | 
						|
</p>
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-bash"><span class="org-type">sudo</span> journalctl -p <span class="org-highlight-numbers-number">3</span> -b
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div id="outline-container-org04cbee1" class="outline-2">
 | 
						|
<h2 id="org04cbee1">Check orphan and dropped packages</h2>
 | 
						|
<div class="outline-text-2" id="text-org04cbee1">
 | 
						|
<p>
 | 
						|
Run the following to list all orphan packages:
 | 
						|
</p>
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-bash">pacman -Qtdq | fzf --preview <span class="org-string">'pacman -Qil {}'</span> --layout=reverse --bind <span class="org-string">'enter:execute(pacman -Qil {} | </span><span class="org-type"><span class="org-string">less</span></span><span class="org-string">)'</span>
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
 | 
						|
<p>
 | 
						|
Then, either remove the unused packages or set the package to “explicitly installed” with:
 | 
						|
</p>
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-bash"><span class="org-type">sudo</span> pacman -D --asexplicit package_name
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
 | 
						|
<p>
 | 
						|
Use the <code>ancient-packages</code> (<a href="https://aur.archlinux.org/packages/ancient-packages/">link</a>) command to list dropped packages (packages may longer in the remote repositories, but still on the local system):
 | 
						|
</p>
 | 
						|
<div class="org-src-container">
 | 
						|
<pre class="src src-bash">ancient-packages
 | 
						|
</pre>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
</div>
 | 
						|
<div id="postamble" class="status">
 | 
						|
<p class="author">Author: Dehaeze Thomas</p>
 | 
						|
<p class="date">Created: 2022-05-09 lun. 10:04</p>
 | 
						|
</div>
 | 
						|
</body>
 | 
						|
</html>
 |