<?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>