# feed_item

id: https://itsfoss.com/tail-command/
feed_url: https://itsfoss.com/rss/
read: False
title: Using tail Command in Linux
link: https://itsfoss.com/tail-command/
categories: Linux Commands
description:
The tail command is one of the several ways to display file contents or part of it. You can also live monitor changes made to files with it. Here are some common examples.

content:
<img src="https://itsfoss.com/content/images/2023/06/tail-command-in-linux.png" alt="Using tail Command in Linux"><p>There are several commands to <a href="https://itsfoss.com/view-file-contents/">view the contents of a file in Linux</a>. Tail command is one of them.</p><p>And as the name suggests, the tail command is used to print the end part of a file. This can be useful when dealing with config files where the new changes are made to the end of the file.</p><p>The tail command also allows you to view the changes made to a file live. This is extensively used for monitoring log files in real-time while troubleshooting issues.</p><p>In this tutorial, I will show how you can use the tail command by sharing some practical examples of it.</p><figure class="kg-card kg-bookmark-card kg-card-hascaption"><a class="kg-bookmark-container" href="https://itsfoss.com/basic-terminal-tips-ubuntu/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">19 Basic But Essential Linux Terminal Tips You Must Know</div><div class="kg-bookmark-description">Learn some small, basic but often ignored things about the terminal. With the small tips, you should be able to use the terminal with slightly more efficiency.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="Using tail Command in Linux"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Abhishek Prakash</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2021/12/ubuntu-terminal-basic-tips.png" alt="Using tail Command in Linux"></div></a><figcaption>New to the terminal? Learn the terminology</figcaption></figure><h2 id="how-to-use-the-tail-command-in-linux">How to use the tail command in Linux</h2><p>To use any command in the terminal, execution of the command in the right syntax is compulsory, so let&apos;s start with its syntax first.</p><pre><code>tail [option] [file]</code></pre><p>Here,</p><ul><li><code>[option]</code> allows you to tweak the default behavior of the command.</li><li><code>[file]</code> is where you&apos;d enter the file name that you want to pair with the tail command.</li></ul><p>To make things easy to understand, I will be using the <code>Haruki.txt</code> text file containing the following line:</p><pre><code>Hear the Wind Sing (1979)
Pinball, 1973 (1980)
A Wild Sheep Chase (1982)
Hard-Boiled Wonderland and the End of the World (1985)
Norwegian Wood (1987)
Dance Dance Dance (1990)
South of the Border, West of the Sun (1992)
The Wind-Up Bird Chronicle (1994)
Sputnik Sweetheart (1999)
Kafka on the Shore (2002)
After Dark (2004)
1Q84 (2009-2010)
Colorless Tsukuru Tazaki and His Years of Pilgrimage (2013)
Men Without Women (2014)
Killing Commendatore (2017)</code></pre><p>And <strong>when the tail command is executed without any options, it prints the last 10 lines of the file:</strong></p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/04/The-default-behavior-of-the-tail-command.png" class="kg-image" alt="Using tail Command in Linux" loading="lazy" width="837" height="342" srcset="https://itsfoss.com/content/images/size/w600/2023/04/The-default-behavior-of-the-tail-command.png 600w, https://itsfoss.com/content/images/2023/04/The-default-behavior-of-the-tail-command.png 837w" sizes="(min-width: 720px) 720px"></figure><div class="kg-card kg-callout-card kg-callout-card-green"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">Quite obviously, if there are less than 10 lines, tail command will display all the lines by default.</div></div><p>But you can do more than just this! Let me tell you how.</p><h2 id="tail-command-examples">Tail command examples</h2><p>In this section, I will share different examples of the tail command, using its different options. </p><div class="kg-card kg-callout-card kg-callout-card-red"><div class="kg-callout-emoji">&#x1F6A7;</div><div class="kg-callout-text">You&#x2019;ll see some command examples with text inside &lt;&gt;. This indicates that you need to replace the content along with &lt; and &gt; with a suitable value.</div></div><h3 id="1-print-the-last-n-lines">1. Print the last N lines</h3><p>As I mentioned earlier, the tail command prints the last ten lines by default but you may not always want the same behavior.</p><p>To print the desired number of last N lines, all you have to do is use the <code>-n</code> flag and append the number of the last N lines you want to be printed:</p><pre><code>tail -n &lt;Number-of-last-N-Lines&gt; &lt;File&gt;</code></pre><p>For example, here, I printed the last three lines of my text file named <code>Haruki.txt</code>:</p><pre><code>tail -n 3 Haruki.txt</code></pre><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/04/print-the-last-N-lines-using-the-tail-command.png" class="kg-image" alt="Using tail Command in Linux" loading="lazy" width="837" height="192" srcset="https://itsfoss.com/content/images/size/w600/2023/04/print-the-last-N-lines-using-the-tail-command.png 600w, https://itsfoss.com/content/images/2023/04/print-the-last-N-lines-using-the-tail-command.png 837w" sizes="(min-width: 720px) 720px"></figure><p>You can also use a number higher than 10 here.</p><h3 id="2-print-everything-from-the-n-line">2. Print everything from the N line</h3><p>So if you want the output from a specific point, this can be very handy.</p><p>To do so, you&apos;d have to use the <code>-n</code> flag and append the line number from where you want to print the file with the <code>+</code> sign:</p><pre><code>tail -n +&lt;Line-number&gt; &lt;File&gt;</code></pre><p>So let&apos;s say I want to print everything from the 5th line in the text file <code>Haruki.txt</code> then, I will use the following command:</p><pre><code>tail -n +5 Haruki.txt</code></pre><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/04/Print-everything-from-the-N-line-using-the-tail-command.png" class="kg-image" alt="Using tail Command in Linux" loading="lazy" width="837" height="368" srcset="https://itsfoss.com/content/images/size/w600/2023/04/Print-everything-from-the-N-line-using-the-tail-command.png 600w, https://itsfoss.com/content/images/2023/04/Print-everything-from-the-N-line-using-the-tail-command.png 837w" sizes="(min-width: 720px) 720px"></figure><h3 id="3-print-the-filename-with-the-output">3. Print the filename with the output</h3><p>You may find yourself in a situation where you want to print the filename with the output given by the tail command. </p><p>A good example will be while <a href="https://linuxhandbook.com/redirect-dev-null/?ref=itsfoss.com">redirecting the output of multiple files</a> with tail commands to a single file and you want to separate the output.</p><p>To do so, you&apos;d have to use the <code>-v</code> flag, which will get you a verbose output:</p><pre><code>tail -v [File]</code></pre><p>Here, I used the previous example, but this time, I added the option for the verbose output:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/04/use-the-verbose-output-with-the-tail-command.png" class="kg-image" alt="Using tail Command in Linux" loading="lazy" width="837" height="397" srcset="https://itsfoss.com/content/images/size/w600/2023/04/use-the-verbose-output-with-the-tail-command.png 600w, https://itsfoss.com/content/images/2023/04/use-the-verbose-output-with-the-tail-command.png 837w" sizes="(min-width: 720px) 720px"></figure><h3 id="4-use-multiple-files-with-the-tail-command">4. Use multiple files with the tail command</h3><p>Sometimes, you may want to use multiple files with the tail command, and it&apos;s pretty simple! All you have to do is use the multiple filenames and the tail command will take care of the rest:</p><pre><code>tail &lt;options&gt; &lt;File-1&gt; &lt;File-2&gt; &lt;File-n&gt; </code></pre><p>For example, here, printed the last three lines of the two different text files: <code>Haruki.txt</code> and <code>Premchand.txt</code>:</p><pre><code>tail -n 3 Haruki.txt Premchand.txt</code></pre><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/04/use-multiple-files-with-the-tail-command.png" class="kg-image" alt="Using tail Command in Linux" loading="lazy" width="837" height="325" srcset="https://itsfoss.com/content/images/size/w600/2023/04/use-multiple-files-with-the-tail-command.png 600w, https://itsfoss.com/content/images/2023/04/use-multiple-files-with-the-tail-command.png 837w" sizes="(min-width: 720px) 720px"></figure><p>And if you notice carefully, it prints the filename by default, which is nice. </p><p><strong>If you want to skip the filename from the output</strong>, use the <code>-q</code> flag (quiet mode):</p><pre><code>tail -q &lt;File-1&gt; &lt;File-2&gt; &lt;File-n&gt; </code></pre><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/04/use-quite-mode-in-the-tail-command-.png" class="kg-image" alt="Using tail Command in Linux" loading="lazy" width="837" height="253" srcset="https://itsfoss.com/content/images/size/w600/2023/04/use-quite-mode-in-the-tail-command-.png 600w, https://itsfoss.com/content/images/2023/04/use-quite-mode-in-the-tail-command-.png 837w" sizes="(min-width: 720px) 720px"></figure><h3 id="5-monitor-changes-made-to-file-live">5. Monitor changes made to file live</h3><p>This is an excellent feature of the tail command. Not only you can see the last few lines, but it can also display any new lines added to it. How cool is that!</p><p>To do so, use the <code>-f</code> (follow) flag with the tail command:</p><pre><code>tail -f &lt;File&gt;</code></pre><p>Here&apos;s an example where <a href="https://linuxhandbook.com/screen-command/?ref=itsfoss.com">I used multiple windows in a single terminal</a>. I executed the tail command in one and in the other one, I used the echo command to append the text in the file:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/04/Use-live-monitoring-of-file-in-linux-using-the-tail-command.gif" class="kg-image" alt="Using tail Command in Linux" loading="lazy" width="984" height="332" srcset="https://itsfoss.com/content/images/size/w600/2023/04/Use-live-monitoring-of-file-in-linux-using-the-tail-command.gif 600w, https://itsfoss.com/content/images/2023/04/Use-live-monitoring-of-file-in-linux-using-the-tail-command.gif 984w" sizes="(min-width: 720px) 720px"></figure><p>Sysadmins and developers <a href="https://linuxhandbook.com/watch-logs-real-time/?ref=itsfoss.com">use it to watch log files in real-time</a>. It helps in troubleshooting. </p><div class="kg-card kg-callout-card kg-callout-card-green"><div class="kg-callout-emoji">&#x1F3CB;&#xFE0F;</div><div class="kg-callout-text">The <code>tail -F</code> is lesser known but slightly better option. In some server configurations, the log files are rotated and created (with the same name again). The <code>tail -f</code> command will not track changes if the file was recreated. However, <code>tail -F</code> will wait for the file to be created and continue monitoring it.&#xA0;</div></div><p>Pretty cool! Isn&apos;t it?</p><h2 id="quick-summary-of-tail-command-options">Quick summary of tail command options</h2><p>Here&apos;s a brief summary covering everything I&apos;ve mentioned so far in this tutorial:</p><!--kg-card-begin: html--><table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>-n &lt;number&gt;</code></td>
<td>Display N lines from the end of the file</td>
</tr>
<tr>
<td><code>-n +&lt;number&gt;</code></td>
<td>Print everything from the Nth line</td>
</tr>
<tr>
<td><code>-v</code></td>
<td>Include filename in the output header</td>
</tr>
<tr>
<td><code>-q</code></td>
<td>Removes the filenames from the output</td>
</tr>
<tr>
<td><code>-f</code></td>
<td>Monitor the changes made to the file in real-time</td>
</tr>
<tr>
<td><code>-F</code></td>
<td>Monitor changes in real-time, wait for file to be (re)created</td>
</tr>
</tbody>
</table><!--kg-card-end: html--><h2 id="%F0%9F%96%A5%EF%B8%8F-practice-what-you-learn">&#x1F5A5;&#xFE0F; Practice what you learn</h2><p>If you want to test your recently learned knowledge of the tail command, here&apos;s some exercise for you.</p><p><a href="https://github.com/itsfoss/text-files/blob/master/agatha.txt?ref=itsfoss.com">Download the agatha.txt file</a> from our GitHub repository.</p><p>Now do the following.</p><ol><li>Print the last 12 lines of the file</li><li>Print only the last line of the file</li><li>Add the filename to output while displaying the lines starting from line 15</li><li>Print only the 11th line (combine it with the head command)</li></ol><p>You can discuss the practice questions in the community:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.community/?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">It&#x2019;s FOSS Community</div><div class="kg-bookmark-description">A place for desktop Linux users and It&#x2019;s FOSS readers</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.community/uploads/default/optimized/1X/f274f9749e3fd8b4d6fbae1cf90c5c186d2f699c_2_180x180.png" alt="Using tail Command in Linux"><span class="kg-bookmark-author">It&apos;s FOSS Community</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.community/uploads/default/original/1X/f274f9749e3fd8b4d6fbae1cf90c5c186d2f699c.png" alt="Using tail Command in Linux"></div></a></figure><p>If you are absolutely new to the command line, we have a good starting point for you.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/tag/terminal-basics/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Linux Command Tutorials for Absolute Beginners</div><div class="kg-bookmark-description">Never used Linux commands before? No worries. This tutorial series is for absolute beginners to the Linux terminal.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="Using tail Command in Linux"><span class="kg-bookmark-author">It&apos;s FOSS</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/03/terminal-basics-series-tag.png" alt="Using tail Command in Linux"></div></a></figure><p>&#x1F5E8; We&apos;ll be sharing more Linux command examples every week. Stay tuned for more. And if you have questions or suggestions, the comment section is all yours. </p>


id: https://itsfoss.com/ubuntu-prevent-sleep/
feed_url: https://itsfoss.com/rss/
read: False
title: How to Prevent Ubuntu from Going into Sleep Mode
link: https://itsfoss.com/ubuntu-prevent-sleep/
categories: Ubuntu
description:
Leave the system for five minutes and it goes into sleep mode? Here's what you can do to get rid of this annoyance.

content:
<img src="https://itsfoss.com/content/images/2023/06/prevent-ubuntu-from-sleep.png" alt="How to Prevent Ubuntu from Going into Sleep Mode"><p>You must have noticed it. You have installed Ubuntu and it seems all good. You leave the system inactive for five minutes or so and it is locked!</p><p>You enter your account password and log back in. So far, so good. But you leave it for a few minutes again and it gets locked again. </p><p>You have to enter your password again. And it goes on.</p><p>For laptops, it is even worse. The laptop goes into sleep mode, forcing you to use the power button to wake it from sleep.</p><p>This is annoying. It&apos;s frustrating to enter the password again and again because you left the system unattended. The good thing is that you don&apos;t have to live like this forever.</p><p>It is due to the default power-saving settings in Ubuntu and you can easily change it.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4CB;</div><div class="kg-callout-text">I have noticed the same behavior in Fedora so it&apos;s not exclusive to Ubuntu. It is GNOME desktop&apos;s settings. And the steps mentioned here should be applicable to other distributions using the GNOME desktop environment.</div></div><p>Press the Super key (Windows key) and search for settings.</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/06/gnome-system-settings.png" class="kg-image" alt="How to Prevent Ubuntu from Going into Sleep Mode" loading="lazy" width="2000" height="545" srcset="https://itsfoss.com/content/images/size/w600/2023/06/gnome-system-settings.png 600w, https://itsfoss.com/content/images/size/w1000/2023/06/gnome-system-settings.png 1000w, https://itsfoss.com/content/images/size/w1600/2023/06/gnome-system-settings.png 1600w, https://itsfoss.com/content/images/size/w2400/2023/06/gnome-system-settings.png 2400w" sizes="(min-width: 720px) 720px"></figure><h2 id="prevent-screen-locking">Prevent screen locking</h2><p>In the Settings application, go to Power settings. Under the Power Saving Options, you should see a few options of interest.</p><p>For example, you can change the screen blank settings from the default 5 minutes to up to 15 minutes. </p><p>You can also disable the screen dimming entirely by choosing Never. This way, the screen never dims and never locks.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/06/disable-auto-dim-screen-ubuntu.webp" class="kg-image" alt="How to Prevent Ubuntu from Going into Sleep Mode" loading="lazy" width="1920" height="1503" srcset="https://itsfoss.com/content/images/size/w600/2023/06/disable-auto-dim-screen-ubuntu.webp 600w, https://itsfoss.com/content/images/size/w1000/2023/06/disable-auto-dim-screen-ubuntu.webp 1000w, https://itsfoss.com/content/images/size/w1600/2023/06/disable-auto-dim-screen-ubuntu.webp 1600w, https://itsfoss.com/content/images/2023/06/disable-auto-dim-screen-ubuntu.webp 1920w" sizes="(min-width: 720px) 720px"><figcaption>Click to enlarge</figcaption></figure><p>That takes care of screen dimming and locking. Let&apos;s handle the automatic suspend issue.</p><h2 id="prevent-automatic-sleep">Prevent automatic sleep </h2><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4CB;</div><div class="kg-callout-text">Suspend and sleep means the same in Ubuntu&apos;s context. More <a href="https://wiki.ubuntu.com/UnderstandingSuspend?ref=itsfoss.com">info here</a>.</div></div><p>Another setting you should change here is the Automatic Susepend. You can turn it off completely or change its time interval.</p><p>This way, Ubuntu will not go in sleep mode and you don&apos;t have to push the power button and then enter your password again to access the system.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/06/disable-automatic-suspend-ubuntu.webp" class="kg-image" alt="How to Prevent Ubuntu from Going into Sleep Mode" loading="lazy" width="1920" height="1381" srcset="https://itsfoss.com/content/images/size/w600/2023/06/disable-automatic-suspend-ubuntu.webp 600w, https://itsfoss.com/content/images/size/w1000/2023/06/disable-automatic-suspend-ubuntu.webp 1000w, https://itsfoss.com/content/images/size/w1600/2023/06/disable-automatic-suspend-ubuntu.webp 1600w, https://itsfoss.com/content/images/2023/06/disable-automatic-suspend-ubuntu.webp 1920w" sizes="(min-width: 720px) 720px"><figcaption>Click to enlarge</figcaption></figure><p>If you don&apos;t want to change the power settings but also like the option to disable screen locking, there is a handy tool you could use.</p><h2 id="alternatively-use-the-caffeine-app">Alternatively, use the Caffeine app</h2><p>The idea is to give some caffeine (coffee) to your Linux system so that it does not sleep.</p><p>Let&apos;s see how to brew it. I mean how to use it.</p><p>First, install Caffeine on your Ubuntu system. You can look for it in the software center and install it from there.</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/06/install-caffeine-ubuntu.png" class="kg-image" alt="How to Prevent Ubuntu from Going into Sleep Mode" loading="lazy" width="1908" height="786" srcset="https://itsfoss.com/content/images/size/w600/2023/06/install-caffeine-ubuntu.png 600w, https://itsfoss.com/content/images/size/w1000/2023/06/install-caffeine-ubuntu.png 1000w, https://itsfoss.com/content/images/size/w1600/2023/06/install-caffeine-ubuntu.png 1600w, https://itsfoss.com/content/images/2023/06/install-caffeine-ubuntu.png 1908w" sizes="(min-width: 720px) 720px"></figure><p>Alternatively, you can use the following command in the terminal:</p><pre><code>sudo apt install caffeine</code></pre><p>Once installed, search for it in the activity area (press the Windows key and type caffeine).</p><p>Start the Caffeine Indicator as it comes with an applet indicator that sits on the top panel.</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/06/start-caffeine-app.png" class="kg-image" alt="How to Prevent Ubuntu from Going into Sleep Mode" loading="lazy" width="2000" height="710" srcset="https://itsfoss.com/content/images/size/w600/2023/06/start-caffeine-app.png 600w, https://itsfoss.com/content/images/size/w1000/2023/06/start-caffeine-app.png 1000w, https://itsfoss.com/content/images/size/w1600/2023/06/start-caffeine-app.png 1600w, https://itsfoss.com/content/images/size/w2400/2023/06/start-caffeine-app.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>You&apos;ll now notice a coffee icon in the top panel. Click on it and click enable to activate the app.</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/06/enable-caffeine-app-ubuntu.png" class="kg-image" alt="How to Prevent Ubuntu from Going into Sleep Mode" loading="lazy" width="2000" height="710" srcset="https://itsfoss.com/content/images/size/w600/2023/06/enable-caffeine-app-ubuntu.png 600w, https://itsfoss.com/content/images/size/w1000/2023/06/enable-caffeine-app-ubuntu.png 1000w, https://itsfoss.com/content/images/size/w1600/2023/06/enable-caffeine-app-ubuntu.png 1600w, https://itsfoss.com/content/images/size/w2400/2023/06/enable-caffeine-app-ubuntu.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>That&apos;s it. As long as your system is on caffeine, it won&apos;t sleep &#x1F609;</p><p>Once you want to go back to normal behavior, deactivate the Caffeine app the same way you activated it.</p><h2 id="more-power-settings-tweaks">More power settings tweaks</h2><p>If you want to keep the laptop lid closed while it is connected to external monitors, here&apos;s what you can do.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/laptop-lid-suspend-ubuntu/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Make Ubuntu Not Go in Suspend When Laptop Lid is Closed</div><div class="kg-bookmark-description">If you use Ubuntu on a laptop, you might have noticed that the system is suspended when you close the lid. That&#x2019;s the expected behavior. It saves the battery as well as your work. You lift the lid, the system wakes up, and you can log in and continue</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="How to Prevent Ubuntu from Going into Sleep Mode"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Abhishek Prakash</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2022/08/ubuntu-laptop-lid-closing-behavior.png" alt="How to Prevent Ubuntu from Going into Sleep Mode"></div></a></figure><p>I hope this quick little tutorial helped you prevent Ubuntu from going into sleep mode.</p><p>Let me know if you have questions or suggestions.</p>


id: https://itsfoss.com/cowsay/
feed_url: https://itsfoss.com/rss/
read: False
title: Moo! There is a Cow in My Linux Terminal
link: https://itsfoss.com/cowsay/
categories: Terminal Fun
description:
The cowsay is a fun little Linux command line utility that can be enjoyed in so many ways. Here are several examples.

content:
<img src="https://itsfoss.com/content/images/2023/06/cowsay-linux-1.png" alt="Moo! There is a Cow in My Linux Terminal"><p>The Linux terminal can be a fun place if you want it to be.</p><p>Of course, it is used for serious work but you have <a href="https://itsfoss.com/funny-linux-commands/">funny Linux commands</a> to amuse yourself.</p><p>The cowsay is one such tool. It gives you a cow in the terminal.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/06/cowsay-linux.png" class="kg-image" alt="Moo! There is a Cow in My Linux Terminal" loading="lazy" width="766" height="263" srcset="https://itsfoss.com/content/images/size/w600/2023/06/cowsay-linux.png 600w, https://itsfoss.com/content/images/2023/06/cowsay-linux.png 766w" sizes="(min-width: 720px) 720px"><figcaption>Yes, that&apos;s a cow in case you have difficulty recognizing it ;)</figcaption></figure><p>The thing about cowsay is that it could be used for &apos;serious work&apos; if combined with other commands. One such example is using it to display the &apos;message of the day&apos; on a shared Linux server with multiple users.</p><p>Sounds interesting? Time to &#x336;m&#x336;i&#x336;l&#x336;k&#x336; install it.</p><h2 id="install-cowsay">Install Cowsay</h2><p>Cowsay is a popular tool and it is available in the repositories of most Linux distributions.</p><p>To install cowsay in Debian and Ubuntu system, open a terminal and run:</p><pre><code>sudo apt install cowsay</code></pre><p>For Fedora, use:</p><pre><code>sudo dnf install cowsay</code></pre><p>And in Arch Linux based distros, use:</p><pre><code>sudo pacman -S cowsay</code></pre><h2 id="using-cowsay">Using Cowsay</h2><p>As the name suggests, this is an ASCII talking cow, that outputs text provided as its input. By default, cowsay provides several options to tweak the look and appearance of the ASCII cow.</p><h3 id="normal-cowsay">Normal Cowsay</h3><pre><code>cowsay &lt;Text&gt;</code></pre><p>This will print whatever text you provided in a speechbubble with the cow .</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/06/normal-cowsay.svg" class="kg-image" alt="Moo! There is a Cow in My Linux Terminal" loading="lazy" width="1240" height="386"><figcaption>Cowsay</figcaption></figure><p>Or you can provide output of another command, say <code>echo</code> as input to cowsay using pipes redirection.</p><pre><code>echo &quot;Hello&quot; | cowsay</code></pre><h3 id="greedy-cow">Greedy Cow</h3><p>Here, cow appears to be greedy, with Dollar eyes.</p><pre><code>cowsay -g &lt;message&gt;</code></pre><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/06/greedy-cowsay.svg" class="kg-image" alt="Moo! There is a Cow in My Linux Terminal" loading="lazy" width="1240" height="386"><figcaption>Greedy Cowsay</figcaption></figure><h3 id="use-special-characters-as-eyes">Use Special Characters as eyes</h3><p>You can use the <code>-e</code> option, and then provide two characters that you want to appear as eyes. The default is &#x201C;OO&#x201D;.</p><pre><code>cowsay -e hh &lt;hello&gt;</code></pre><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/06/cowsay-special-eyes.svg" class="kg-image" alt="Moo! There is a Cow in My Linux Terminal" loading="lazy" width="1240" height="386"><figcaption>Special Eyes</figcaption></figure><p>Here, in the above screenshots, two &#x201C;h&#x201D; will appear in place of eyes.</p><div class="kg-card kg-callout-card kg-callout-card-red"><div class="kg-callout-emoji">&#x1F6A7;</div><div class="kg-callout-text">If the characters entered by you has already been used by any of the default option, say $$, then it is lost.</div></div><h3 id="use-another-character-instead-of-the-cow">Use another character instead of the cow</h3><p>Cowsay provides many other ASCII images also, which you can use through the option <code>-f</code>. </p><p>List them with option <code>-l</code>:</p><pre><code>cowsay -l</code></pre><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/06/cowsay-files.png" class="kg-image" alt="Moo! There is a Cow in My Linux Terminal" loading="lazy" width="1351" height="529" srcset="https://itsfoss.com/content/images/size/w600/2023/06/cowsay-files.png 600w, https://itsfoss.com/content/images/size/w1000/2023/06/cowsay-files.png 1000w, https://itsfoss.com/content/images/2023/06/cowsay-files.png 1351w" sizes="(min-width: 720px) 720px"><figcaption>Various default cowsay cow files</figcaption></figure><p>Now, to print one of the above images, use:</p><pre><code>cowsay -f &lt;cowfile name&gt; &lt;message&gt;</code></pre><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/06/cowsay-different-inbuilt-files.svg" class="kg-image" alt="Moo! There is a Cow in My Linux Terminal" loading="lazy" width="1240" height="603"><figcaption>Different Images</figcaption></figure><p>Similarly, in newer versions, you can use <code>-r</code> option to randomly print one of the above images.</p><pre><code>cowsay -r Hello</code></pre><h3 id="other-options">Other options</h3><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th>Option</th>
<th>Use</th>
</tr>
</thead>
<tbody>
<tr>
<td>-b</td>
<td>Invokes Borg mode</td>
</tr>
<tr>
<td>-d</td>
<td>Causes the cow to appear dead</td>
</tr>
<tr>
<td>-p</td>
<td>Causes a state of paranoia to come over the cow</td>
</tr>
<tr>
<td>-s</td>
<td>Makes the cow appear thoroughly stoned</td>
</tr>
<tr>
<td>-t</td>
<td>A tired cow</td>
</tr>
<tr>
<td>-y</td>
<td>Brings on the cow&#x2019;s youthful appearance</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><h2 id="using-cowthink">Using Cowthink</h2><p>Cowthink is an adjoint program that come with cowsay. Instead of the speach bubble, it displays the thought bubble. It will make more sense to you if you are familiar with comic book notations.</p><pre><code>cowthink Hello</code></pre><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/06/cowthink-normal.svg" class="kg-image" alt="Moo! There is a Cow in My Linux Terminal" loading="lazy" width="1240" height="386"><figcaption>Cowthink</figcaption></figure><p>All the options that were mentioned with cowsay will work here as well.</p><h2 id="using-cowsay-with-fortune">Using Cowsay with Fortune</h2><p>With the help of pipe redirection, you can use cowsay along with another popular fun Linux command, the <code>fortune</code> command.</p><div class="kg-card kg-callout-card kg-callout-card-green"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">Install fortune and lolcat in Ubuntu using <code>sudo apt install fortune lolcat</code></div></div><p>For those of you, who don&#x2019;t know what <code>fortune</code>, it is a small program, that prints quotes from famous persons on a terminal. You can run it as a standalone command like:</p><pre><code>fortune</code></pre><p>To simply print what fortune says using cowsay, run:</p><pre><code>fortune | cowsay</code></pre><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/06/fortune-cowsay.svg" class="kg-image" alt="Moo! There is a Cow in My Linux Terminal" loading="lazy" width="1240" height="386"></figure><p>You can also add the cowsay options to make it better:</p><pre><code>fortune | cowsay -f dragon </code></pre><h2 id="using-a-colorful-cow-with-lolcat">Using a colorful cow with lolcat</h2><p>Many of you know lolcat and its rainbow effects on texts. So why not use it along with the above programs? All you have to do is to pipe the cowsay command to lolcat. </p><pre><code>cowsay Hello | lolcat</code></pre><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/06/cowsay-lolcat.svg" class="kg-image" alt="Moo! There is a Cow in My Linux Terminal" loading="lazy" width="1240" height="386"><figcaption>Cowsay Lolcat</figcaption></figure><p>Now, if you want to add <code>fortune</code> and various <code>cowsay</code> options along with this, use all such options and pipe the entire thing to lolcat, like this:</p><pre><code>fortune | cowsay -f tux | lolcat
fortune | cowthink -f tux | lolcat</code></pre><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/06/-cowsay-fortune-lolcat-tux.svg" class="kg-image" alt="Moo! There is a Cow in My Linux Terminal" loading="lazy" width="1240" height="603"><figcaption>Cowsay, Tux, Fortune and Lolcat</figcaption></figure><h2 id="third-party-cow-files-for-advanced-users">Third-party cow files (for advanced users)</h2><p>Not interested in the default cowsay cow files? Do not worry, there are a huge number of different cowfiles out there, created by enthusiast developers. Two of them, I will mention here. <a href="https://github.com/bkendzior/cowfiles?ref=itsfoss.com">https://github.com/bkendzior/cowfiles</a> and <a href="https://github.com/paulkaefer/cowsay-files?ref=itsfoss.com">https://github.com/paulkaefer/cowsay-files</a></p><p>You can either install the cowfiles from these repositories as mentioned on their README, or just download the required cowfile (.cow) from the repository and paste them on <code>/usr/share/cowsay/site-cows/</code>. Now, you can access that cowfile using its name:</p><pre><code>cowsay -f &lt;new file name&gt; Hello</code></pre><p>You can see in the screenshot I have used a downloaded cow file, called C3PO.cow.</p><p>For those of you, who want to create your own images, you can visit <a href="https://charc0al.github.io/cowsay-files/converter/?ref=itsfoss.com">Charc0al&#x2019;s cowsay file</a>.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/06/charcoal-cowfiles.png" class="kg-image" alt="Moo! There is a Cow in My Linux Terminal" loading="lazy" width="1583" height="950" srcset="https://itsfoss.com/content/images/size/w600/2023/06/charcoal-cowfiles.png 600w, https://itsfoss.com/content/images/size/w1000/2023/06/charcoal-cowfiles.png 1000w, https://itsfoss.com/content/images/2023/06/charcoal-cowfiles.png 1583w" sizes="(min-width: 720px) 720px"><figcaption>Third Party Cowfiles</figcaption></figure><p>Here, you can either download the existing files, or convert some of your images (recommend no larger than 50 &#xD7; 50) for the purpose.</p><h2 id="other-funny-uses">Other funny uses</h2><p><strong>Use cowsay prompt to enter password in sudo commands:</strong></p><pre><code>sudo -p &quot;$(cowsay &apos;If you know the password, enter it here. Or just go away:&apos;)&quot; &lt;command&gt;</code></pre><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/06/cowsay-sudo-prompt.svg" class="kg-image" alt="Moo! There is a Cow in My Linux Terminal" loading="lazy" width="1240" height="603"><figcaption>Cowsay Sudo prompt</figcaption></figure><p><strong>Make cowsay as an entry to your bash config, so you are greeted every time you open the terminal.</strong></p><ul><li>For newer cowsay versions, like those in Fedora, add <code>fortune | cowsay -r | lolcat</code> to your <code>~/.bashrc</code>. Now, each time, you open the terminal, a new cowfile with a different quote will be printed.</li><li>For older versions of cowsay, where you cannot get the random (-r) option, you can get different files manually, and use <code>fortune | cowsay -f &lt;name of particular cowfile to use&gt; | lolcat</code>.</li></ul><p><strong>Make other commands show output using cowsay</strong></p><p>You can make commands like <code>lsblk</code> to print the output using cowsay. Just pipe those commands.</p><pre><code>lsblk | cowsay</code></pre><p><strong>Use cowsay-beefymiracle in Fedora</strong></p><p><code>beefymiracle</code> is a cowsay package available in Fedora. The cow is turned into beef here (my vegetarian heart cries &#x1F622;).</p><p>Use the below command to install it:</p><pre><code>sudo dnf install cowsay-beefymiracle</code></pre><p>Now, run:</p><pre><code>cowsay -f beefymiracle &lt;message&gt;</code></pre><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/06/cowsay-beefymiracle-fedora.png" class="kg-image" alt="Moo! There is a Cow in My Linux Terminal" loading="lazy" width="1428" height="655" srcset="https://itsfoss.com/content/images/size/w600/2023/06/cowsay-beefymiracle-fedora.png 600w, https://itsfoss.com/content/images/size/w1000/2023/06/cowsay-beefymiracle-fedora.png 1000w, https://itsfoss.com/content/images/2023/06/cowsay-beefymiracle-fedora.png 1428w" sizes="(min-width: 720px) 720px"><figcaption>Beef instead of cow but who killed the cow?</figcaption></figure><h2 id="bonus-xcowsay">Bonus: XCowsay</h2><p><code>xcowsay</code> is a graphical alternative to the normal cowsay. Here, the cow is no more ASCII, but a proper image. You can install it by:</p><pre><code>sudo apt install xcowsay</code></pre><p>Now run:</p><pre><code>xcowsay &lt;message&gt;</code></pre><p>This will display the graphical cow for a specific amount of time according to the length of the text, and then disappears. <strong>You can click on it to hide it immediately, though.</strong></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/06/xcowsay-normal.png" class="kg-image" alt="Moo! There is a Cow in My Linux Terminal" loading="lazy" width="1144" height="422" srcset="https://itsfoss.com/content/images/size/w600/2023/06/xcowsay-normal.png 600w, https://itsfoss.com/content/images/size/w1000/2023/06/xcowsay-normal.png 1000w, https://itsfoss.com/content/images/2023/06/xcowsay-normal.png 1144w" sizes="(min-width: 720px) 720px"><figcaption><code>xcowsay</code> command</figcaption></figure><p>What is more interesting is the cow can &apos;dream&apos; images instead of texts. Or even the cow image can be changed to random images. </p><p>Use either:</p><pre><code>xcowsay --dream=file

OR

xcowsay --image=file --dream=file</code></pre><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://itsfoss.com/content/images/2023/06/custom-image-in-xcowsay.png" width="1215" height="725" loading="lazy" alt="Moo! There is a Cow in My Linux Terminal" srcset="https://itsfoss.com/content/images/size/w600/2023/06/custom-image-in-xcowsay.png 600w, https://itsfoss.com/content/images/size/w1000/2023/06/custom-image-in-xcowsay.png 1000w, https://itsfoss.com/content/images/2023/06/custom-image-in-xcowsay.png 1215w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://itsfoss.com/content/images/2023/06/xcowsay-random-image-both.png" width="1394" height="721" loading="lazy" alt="Moo! There is a Cow in My Linux Terminal" srcset="https://itsfoss.com/content/images/size/w600/2023/06/xcowsay-random-image-both.png 600w, https://itsfoss.com/content/images/size/w1000/2023/06/xcowsay-random-image-both.png 1000w, https://itsfoss.com/content/images/2023/06/xcowsay-random-image-both.png 1394w" sizes="(min-width: 720px) 720px"></div></div></div><figcaption>Random Images in XCowsay</figcaption></figure><p>You can explore the man page of <code>xcowsay</code> for more options.</p><h2 id="more-ascii-fun-in-the-terminal">More ASCII fun in the terminal</h2><p>Love ASCII? How about displaying your distribution&apos;s logo in ASCII format with <a href="https://itsfoss.com/using-neofetch/">Neoftech</a>?</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/display-linux-logo-in-ascii/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Display Linux Distribution Logo in ASCII Art in Terminal</div><div class="kg-bookmark-description">Wondering how they display Linux logo in terminal? With these tools, you can display logo of your Linux distribution in ASCII art in the Linux terminal.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="Moo! There is a Cow in My Linux Terminal"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Abhishek Prakash</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2015/10/display-linux-logo-ascii-terminal.jpeg" alt="Moo! There is a Cow in My Linux Terminal"></div></a></figure><p>Why restrict with logo? Here are more ASCII tools for Linux terminal.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/ascii-art-linux-terminal/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">10 Tools to Generate and Have Fun With ASCII Art in Linux Terminal</div><div class="kg-bookmark-description">Linux terminal is not as scary as you think. Of course, it could be intimidating in the beginning but once you know the terminal better, you start loving it. You are likely to use the terminal for serious work. But there are many fun stuff you can do in the</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="Moo! There is a Cow in My Linux Terminal"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Abhishek Prakash</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2022/07/ascii-art-tools-linux.png" alt="Moo! There is a Cow in My Linux Terminal"></div></a></figure><p>Don&apos;t stop the fun in the terminal.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/funny-linux-commands/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">12 Linux Commands to Have Some Fun in the Terminal</div><div class="kg-bookmark-description">So, you think Linux terminal is all work and no fun? These funny Linux commands will prove you wrong. The Linux terminal is the place to get serious work done. We have plenty of useful linux command tips and tricks to help you with that. But, did you know that</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="Moo! There is a Cow in My Linux Terminal"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Community</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2020/04/fun-linux-commands.png" alt="Moo! There is a Cow in My Linux Terminal"></div></a></figure><p>I hope you liked this tutorial on using cowsay in various formats. It&apos;s amazing that this little tool comes with so many options and there are so many ways to use it.</p><p>Which cowsay example did you like the most here? Don&apos;t say beef one &#x1F494;</p>


id: https://itsfoss.com/newsletter/foss-weekly-23-22/
feed_url: https://itsfoss.com/rss/
read: False
title: FOSS Weekly #23.22: Immutable Ubuntu Edition, Face Unlock and More Linux Stuff
link: https://itsfoss.com/newsletter/foss-weekly-23-22/
categories: Newsletter
description:
Seems like Ubuntu is gearing up for an immutable desktop variant in 2024. Other than that, stream full HD with Netflix on Linux.

content:
<img src="https://itsfoss.com/content/images/2023/06/foss-weekly-23-22.png" alt="FOSS Weekly #23.22: Immutable Ubuntu Edition, Face Unlock and More Linux Stuff"><p>Immutable is the new buzzword in the Linux world. Started with container-focused working environments, and it is also coming to desktop variants. </p><p>With Fedora already there, Ubuntu is also planning for a Snap-based immutable desktop edition in 2024.</p><p>Seems like <a href="https://itsfoss.com/immutable-linux-distros/#what-is-an-immutable-linux-distro">immutability</a> is the future of Linux. </p><p><strong>&#x1F4AC; Let&apos;s see what else you have in this edition of FOSS Weekly:</strong></p><ul><li>First look at Sniffnet, a Rust-based network monitoring tool</li><li>Using face unlocking in Linux</li><li>And other Linux news, videos, puzzles and, of course, memes!</li></ul><hr><h2 id="%F0%9F%93%B0-linux-news">&#x1F4F0; Linux news</h2><ul><li>The Budgie-flavored Fedora Onyx is <a href="https://news.itsfoss.com/fedora-onyx-official/?ref=itsfoss.com">all set</a> to be a new immutable Fedora Variant.</li><li>PyPI recently had to <a href="https://news.itsfoss.com/pypi-subpoenaed/?ref=itsfoss.com">share user data</a> with the US Department of Justice.</li><li>Microsoft has made Azure Linux<a href="https://techcommunity.microsoft.com/t5/azure-infrastructure-blog/introducing-the-azure-linux-container-host-for-aks/ba-p/3824101?ref=itsfoss.com"> generally available</a> as a container host for Azure Kubernetes.</li><li>Mozilla introduced a <a href="https://blog.thunderbird.net/2023/05/introducing-the-brand-new-thunderbird-logo/?ref=itsfoss.com">brand-new logo</a> for the Thunderbird email client.</li><li>MX Linux 23 Beta is <a href="https://mxlinux.org/blog/mx-23-libretto-beta-1-now-available-for-testing-purposes/?ref=itsfoss.com">now available</a> for testing.</li></ul><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://news.itsfoss.com/ubuntu-all-snap-desktop/?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Snap-based Immutable Ubuntu Desktop to Come With 24.04 LTS!</div><div class="kg-bookmark-description">Ubuntu is likely to offer an immutable desktop option based on Snap with the release of Ubuntu 24.04 LTS.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png" alt="FOSS Weekly #23.22: Immutable Ubuntu Edition, Face Unlock and More Linux Stuff"><span class="kg-bookmark-author">It&apos;s FOSS News</span><span class="kg-bookmark-publisher">Sourav Rudra</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://news.itsfoss.com/content/images/2023/05/ubuntu-all-snap-desktop.png" alt="FOSS Weekly #23.22: Immutable Ubuntu Edition, Face Unlock and More Linux Stuff"></div></a></figure><hr><h2 id="%F0%9F%A7%A0-what-we%E2%80%99re-thinking-about">&#x1F9E0; What we&#x2019;re thinking about</h2><p>There is no cloud. It&apos;s just someone else&apos;s computer. Own your computer. Or should I say, own your servers?</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://puri.sm/posts/introducing-the-librem-server-v2/?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Introducing the Librem Server v2 &#x2013; Purism</div><div class="kg-bookmark-description">Purism makes premium phones, laptops, mini PCs and servers running free software on PureOS. Purism products respect people&#x2019;s privacy and freedom while protecting their security.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://puri.sm/wp-content/uploads/2020/04/cropped-purism-logo-rectangle-1-270x270.png" alt="FOSS Weekly #23.22: Immutable Ubuntu Edition, Face Unlock and More Linux Stuff"><span class="kg-bookmark-author">Purism</span><span class="kg-bookmark-publisher">see all</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://puri.sm/wp-content/uploads/2023/05/server-persp-800.png" alt="FOSS Weekly #23.22: Immutable Ubuntu Edition, Face Unlock and More Linux Stuff"></div></a></figure><hr><h2 id="%F0%9F%9B%8D%EF%B8%8F-interesting-offers-for-linux-users">&#x1F6CD;&#xFE0F; Interesting offers for Linux users</h2><p>Unleash the creative power of Blender, the free and open-source software tool for 3D artists, with this bundle of books from Packt.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.humblebundle.com/books/blender-animation-and-games-packt-books?partner=itsfoss&amp;ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Humble Tech Book Bundle: Blender Animation and Games by Packt</div><div class="kg-bookmark-description">We&#x2019;ve teamed up with Packt for our newest bundle. Get books like Game Development with Blender and Godot. Plus, pay what you want &amp; support charity!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://cdn.humblebundle.com/static/hashed/03df0490a53d595fd930f9fff52038366d60a05d.png" alt="FOSS Weekly #23.22: Immutable Ubuntu Edition, Face Unlock and More Linux Stuff"><span class="kg-bookmark-author">Humble Bundle</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://hb.imgix.net/7f272b3fc868b9d190ad8e9da7031f7c69b960d3.jpg?auto=compress,format&amp;h=630&amp;w=1200&amp;s=1ea5184912b92c0fa0ffd93b722adbea" alt="FOSS Weekly #23.22: Immutable Ubuntu Edition, Face Unlock and More Linux Stuff"></div></a></figure><hr><h2 id="%F0%9F%A7%AE-tips-and-tutorials">&#x1F9EE; Tips and Tutorials</h2><p>Even though Snap packages are updated automatically, you can still control updates manually. Learn more on the update mechanism of Snap.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/snap-update/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How to Update Snap Packages in Ubuntu</div><div class="kg-bookmark-description">Snap packages are automatically updated. But you can still control the updates manually. Learn all about Snap updates here.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.22: Immutable Ubuntu Edition, Face Unlock and More Linux Stuff"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Abhishek Prakash</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/05/update-snap-packages-in-ubuntu.png" alt="FOSS Weekly #23.22: Immutable Ubuntu Edition, Face Unlock and More Linux Stuff"></div></a></figure><p>By default, Netflix only streams in 720p which is not even considered HD anymore. Here is what you can do to improve streaming quality on Firefox and Chrome.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/netflix-full-hd-firefox/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Watch Netflix in Full HD on Firefox</div><div class="kg-bookmark-description">Paying for full HD streaming to Netflix and yet it doesn&#x2019;t play in 1080p? Here&#x2019;s how you can make Netflix play full HD on Firefox browser.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.22: Immutable Ubuntu Edition, Face Unlock and More Linux Stuff"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Abhishek Prakash</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2022/10/watch-netflix-in-hd-in-firefox.png" alt="FOSS Weekly #23.22: Immutable Ubuntu Edition, Face Unlock and More Linux Stuff"></div></a></figure><p>If you are in experimental mode, here&apos;s something you can try.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/face-unlock-ubuntu/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How to Set Up Face Unlock on Ubuntu and Other Linux Distros</div><div class="kg-bookmark-description">Missing the Windows Hello kind of unlocking of your system on Linux? Learn how to set up face unlock on Ubuntu and other Linux distributions.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.22: Immutable Ubuntu Edition, Face Unlock and More Linux Stuff"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Abhishek Prakash</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2020/08/Face-Unlock-in-Linux.png" alt="FOSS Weekly #23.22: Immutable Ubuntu Edition, Face Unlock and More Linux Stuff"></div></a></figure><h2 id="%F0%9F%93%B9-what-we-are-watching">&#x1F4F9; What we are watching</h2><p>Three videos in three weeks! Is there a reward for such a streak? &#x1F609;</p><figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/iFbYf9dL0I4?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen title="CachyOS Overview: Blazingly Fast &amp; Customizable New Linux Distribution"></iframe></figure><hr><h2 id="%E2%9C%A8-application-highlights">&#x2728; Application highlights</h2><p>Sniffnet is a pretty neat tool for monitoring the network activity on your system.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://news.itsfoss.com/sniffnet/?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Sniffnet: An Interesting Open-Source Network Monitoring Tool Anyone Can Use</div><div class="kg-bookmark-description">Take a glance at your network connection with this handy app.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png" alt="FOSS Weekly #23.22: Immutable Ubuntu Edition, Face Unlock and More Linux Stuff"><span class="kg-bookmark-author">It&apos;s FOSS News</span><span class="kg-bookmark-publisher">Sourav Rudra</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://news.itsfoss.com/content/images/2023/05/sniffnet-first-look.jpg" alt="FOSS Weekly #23.22: Immutable Ubuntu Edition, Face Unlock and More Linux Stuff"></div></a></figure><hr><h2 id="%F0%9F%92%A1quick-linux-tip">&#x1F4A1;Quick Linux tip</h2><p>Nautilus has the feature to show recently visited folders. On the top left, <strong>right-click on the back arrow</strong> to get the list of previously visited folders.</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/06/image.png" class="kg-image" alt="FOSS Weekly #23.22: Immutable Ubuntu Edition, Face Unlock and More Linux Stuff" loading="lazy" width="776" height="392" srcset="https://itsfoss.com/content/images/size/w600/2023/06/image.png 600w, https://itsfoss.com/content/images/2023/06/image.png 776w" sizes="(min-width: 720px) 720px"></figure><hr><h2 id="%F0%9F%A4%A3-meme-of-the-week">&#x1F923; Meme of the week</h2><p>Ubuntu is embracing Snap. The users might not ;)</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/memes3.png" class="kg-image" alt="FOSS Weekly #23.22: Immutable Ubuntu Edition, Face Unlock and More Linux Stuff" loading="lazy" width="1080" height="1080" srcset="https://itsfoss.com/content/images/size/w600/2023/05/memes3.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/memes3.png 1000w, https://itsfoss.com/content/images/2023/05/memes3.png 1080w" sizes="(min-width: 720px) 720px"></figure><hr><h2 id="%F0%9F%97%93%EF%B8%8F-tech-trivia">&#x1F5D3;&#xFE0F; Tech trivia</h2><p>File sharing service Napster was released on June 1, 1999. The service provided a simple way for users to copy and distribute MP3 music files. It became an instant hit among young internet users. Napster was sued by the Recording Industry Association of America a few months later and as a result, it was shut down in 2002.</p><hr><h2 id="%F0%9F%A7%A9-puzzle-for-pro-members-only">&#x1F9E9; Puzzle (for Pro members only)</h2><p>This week&apos;s puzzle is slightly like crosswords, but it&apos;s not exactly the same.</p><p>When you answer all the questions correctly, it reveals a hidden word. Can you do that?</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/puzzle/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Puzzle of The Week: Acrostic #1: Reveal the hidden word</div><div class="kg-bookmark-description">Exercise those &#x2018;little gray cells&#x2019; of yours and solve this puzzle.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.22: Immutable Ubuntu Edition, Face Unlock and More Linux Stuff"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Abhishek Prakash</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/05/puzzle-of-the-week.png" alt="FOSS Weekly #23.22: Immutable Ubuntu Edition, Face Unlock and More Linux Stuff"></div></a></figure><hr><h2 id="%F0%9F%A7%91%E2%80%8D%F0%9F%A4%9D%E2%80%8D%F0%9F%A7%91-fossverse-corner">&#x1F9D1;&#x200D;&#x1F91D;&#x200D;&#x1F9D1; FOSSverse corner</h2><p>A long-time It&apos;s FOSS reader, Ernie, shared his experience finding the perfect distro for his older laptop.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.community/t/i-think-ive-found-the-right-distro-for-my-aging-older-laptop/10590?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">I think I&#x2019;ve found the right distro for my aging (older) laptop!</div><div class="kg-bookmark-description">Windows 10 reaches end of life next year. When my wife passed away, I &#x2018;inherited&#x2019; her laptop, so I named it charpc. It is a Dell Experion 5000 series UEFI based device with TPM2, but the CPU will never pass the Windows 11 hardware requirements, so for about the past year (I like to be proactive), I&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.community/uploads/default/optimized/1X/f274f9749e3fd8b4d6fbae1cf90c5c186d2f699c_2_180x180.png" alt="FOSS Weekly #23.22: Immutable Ubuntu Edition, Face Unlock and More Linux Stuff"><span class="kg-bookmark-author">It&apos;s FOSS Community</span><span class="kg-bookmark-publisher">ernie</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.community/uploads/default/original/1X/f274f9749e3fd8b4d6fbae1cf90c5c186d2f699c.png" alt="FOSS Weekly #23.22: Immutable Ubuntu Edition, Face Unlock and More Linux Stuff"></div></a></figure><p>&#x1F389; We reached 21,000 members on It&apos;s FOSS. Thanks for being part of this journey.</p><hr><h2 id="%E2%9D%A4%EF%B8%8F-enjoying-foss-weekly">&#x2764;&#xFE0F; Enjoying FOSS Weekly?</h2><p><strong>Forward it to Linux-using friends</strong> and encourage them to subscribe (hint: <a href="https://itsfoss.com/signup/">it&apos;s here</a>).</p><p>Become a Pro member and show your support &#x1F64F;</p><p>Share the newsletter and the articles in Linux communities on Reddit and other platforms.</p><p><strong>Native French or Deutsch speaker? </strong>Like the <a href="https://itsfoss.com/es/">Spanish section</a>, I am looking to expand It&apos;s FOSS in French and Deutsch languages. And I need help with the translation. Want to help me out? Press the reply button :)</p>


id: https://itsfoss.com/install-pipx-ubuntu/
feed_url: https://itsfoss.com/rss/
read: False
title: Install and Use pipx in Linux
description: Pipx addresses the shortcomings of the popular pip tool. Learn to install and use Pipx in Linux.
link: https://itsfoss.com/install-pipx-ubuntu/
categories: Installation
content:
<img src="https://itsfoss.com/content/images/2023/05/install-pipx-ubuntu.png" alt="Install and Use pipx in Linux"><p>Pip is a popular tool for installing Python packages and modules from <a href="https://pypi.org/?ref=itsfoss.com">Python Package Index</a>.</p><p>However, in recent distribution versions, pip users are encountering an <a href="https://itsfoss.com/externally-managed-environment/">externally-managed-environment error</a>.</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/error--externally-managed-environment.png" class="kg-image" alt="Install and Use pipx in Linux" loading="lazy" width="922" height="631" srcset="https://itsfoss.com/content/images/size/w600/2023/05/error--externally-managed-environment.png 600w, https://itsfoss.com/content/images/2023/05/error--externally-managed-environment.png 922w" sizes="(min-width: 720px) 720px"></figure><p>That&apos;s a &apos;feature&apos; added to avoid conflicts between Python packages installed via <a href="https://itsfoss.com/install-pip-ubuntu/">Pip</a> and the native package manager. Python wants you to use separate virtual environments instead of installing the package at the global level via Pip.</p><p><strong>This is where pipx comes into the picture</strong>. It creates a new virtual environment for each application you install and then creates links to local binary in the /bin at the global level. All this is automatic. It saves time and effort for you.</p><p>Let&apos;s see how to install and use Pipx on Ubuntu and other Linux distributions.</p><h2 id="install-pipx-on-ubuntu-and-other-linux">Install pipx on Ubuntu and other Linux</h2><p>The installation is straightforward and can be installed using the following command on Ubuntu and Debian:</p><pre><code>sudo apt update &amp;&amp; sudo apt install pipx</code></pre><p>For other distributions, please use your package manager and install it.</p><p>Once you are done with the installation, <a href="https://itsfoss.com/add-directory-to-path-linux/">add it to the $PATH</a> so it can be accessed from everywhere:</p><pre><code>pipx ensurepath</code></pre><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/install-pipx-in-ubuntu.png" class="kg-image" alt="Install and Use pipx in Linux" loading="lazy" width="922" height="336" srcset="https://itsfoss.com/content/images/size/w600/2023/05/install-pipx-in-ubuntu.png 600w, https://itsfoss.com/content/images/2023/05/install-pipx-in-ubuntu.png 922w" sizes="(min-width: 720px) 720px"></figure><p><strong>Close the terminal and start it again</strong>. That&apos;s it! Now, let&apos;s have a look at how to use it.</p><h2 id="using-pipx">Using pipx</h2><p>What is the primary use of a package manager? Package installation, updation, and removal.</p><p>Let me show how you can do the following with pipx:</p><ul><li>Search packages </li><li>Package installation </li><li>Upgradation </li><li>Package removal</li></ul><p>Let&apos;s start with the installation.</p><h3 id="how-to-install-packages-using-pipx">How to install packages using pipx</h3><p>To install packages using pipx, you&apos;d have to follow a simple command syntax:</p><pre><code>pipx install &lt;package_name&gt;</code></pre><p>For example, here, I installed a very useful program Cowsay:</p><pre><code>pipx install cowsay</code></pre><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/install-python-packages-in-isolation-using-pipx-in-ubuntu.png" class="kg-image" alt="Install and Use pipx in Linux" loading="lazy" width="922" height="220" srcset="https://itsfoss.com/content/images/size/w600/2023/05/install-python-packages-in-isolation-using-pipx-in-ubuntu.png 600w, https://itsfoss.com/content/images/2023/05/install-python-packages-in-isolation-using-pipx-in-ubuntu.png 922w" sizes="(min-width: 720px) 720px"></figure><p>Similarly, if you want to install a specific version of the package, you&apos;d have to insert the version number followed by <code>==</code> as shown:</p><pre><code>pipx install package==version</code></pre><p>For example, here, I installed numpy version 1.24.1:</p><pre><code>pipx install numpy==1.24.1</code></pre><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/install-specific-version-of-python-package-in-ubuntu-using-pipx.png" class="kg-image" alt="Install and Use pipx in Linux" loading="lazy" width="922" height="267" srcset="https://itsfoss.com/content/images/size/w600/2023/05/install-specific-version-of-python-package-in-ubuntu-using-pipx.png 600w, https://itsfoss.com/content/images/2023/05/install-specific-version-of-python-package-in-ubuntu-using-pipx.png 922w" sizes="(min-width: 720px) 720px"></figure><h3 id="how-to-search-packages">How to search packages</h3><p>The pipx utility does not have a search feature (because of limited API use of PyPI) but that doesn&apos;t mean you can&apos;t search Python packages.</p><p>To search packages, you&apos;d have to install <code>pypisearch</code>:</p><pre><code>pipx install pypisearch</code></pre><p>Once you do that, you can search the packages using the <code>pypisearch</code> command: </p><pre><code>pypisearch python_package_name</code></pre><p>Here, I searched for neofetch:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/search-python-packages-in-Ubuntu.png" class="kg-image" alt="Install and Use pipx in Linux" loading="lazy" width="1201" height="364" srcset="https://itsfoss.com/content/images/size/w600/2023/05/search-python-packages-in-Ubuntu.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/search-python-packages-in-Ubuntu.png 1000w, https://itsfoss.com/content/images/2023/05/search-python-packages-in-Ubuntu.png 1201w" sizes="(min-width: 720px) 720px"></figure><h3 id="how-to-upgrade-packages-using-pipx">How to upgrade packages using pipx</h3><p>Like any other modern package manager, you can upgrade all packages at once or you can upgrade one package at a time.</p><p>To upgrade all the packages at once, all you have to do is execute the following command:</p><pre><code>pipx upgrade-all</code></pre><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/upgrade-all-the-python-packages-at-once-in-ubuntu.png" class="kg-image" alt="Install and Use pipx in Linux" loading="lazy" width="922" height="176" srcset="https://itsfoss.com/content/images/size/w600/2023/05/upgrade-all-the-python-packages-at-once-in-ubuntu.png 600w, https://itsfoss.com/content/images/2023/05/upgrade-all-the-python-packages-at-once-in-ubuntu.png 922w" sizes="(min-width: 720px) 720px"></figure><p>As you can see, it upgraded numpy to the latest version.</p><p>But if you want to upgrade a specific package, here&apos;s how you do it:</p><pre><code>pipx upgrade package-name</code></pre><p>Let&apos;s say I want to upgrade <code>cowsay</code> package to the latest version, then, I will be using the following:</p><pre><code>pipx upgrade cowsay</code></pre><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/upgrade-specific-python-package-using-pipx-in-ubuntu.png" class="kg-image" alt="Install and Use pipx in Linux" loading="lazy" width="922" height="175" srcset="https://itsfoss.com/content/images/size/w600/2023/05/upgrade-specific-python-package-using-pipx-in-ubuntu.png 600w, https://itsfoss.com/content/images/2023/05/upgrade-specific-python-package-using-pipx-in-ubuntu.png 922w" sizes="(min-width: 720px) 720px"></figure><h3 id="how-to-uninstall-packages-using-pipx">How to uninstall packages using pipx</h3><p>To remove packages, you&apos;d have to use the <code>uninstall</code> flag as shown:</p><pre><code>pipx uninstall package_name</code></pre><p>For your reference, here, I removed <code>numpy</code> from my system:</p><pre><code>pipx uninstall numpy</code></pre><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/remove-python-packages-using-pipx-in-ubuntu.png" class="kg-image" alt="Install and Use pipx in Linux" loading="lazy" width="922" height="156" srcset="https://itsfoss.com/content/images/size/w600/2023/05/remove-python-packages-using-pipx-in-ubuntu.png 600w, https://itsfoss.com/content/images/2023/05/remove-python-packages-using-pipx-in-ubuntu.png 922w" sizes="(min-width: 720px) 720px"></figure><h2 id="pip-or-pipx">Pip or Pipx?</h2><p>The restrictions put on Pip have limited its use by the end users. Thankfully, Pipx provides the much-needed alternative. It meets the Python guidelines of using virtual environments and, at the same time, allows installed applications to be available at the global level.</p><p>For end users, who are not Python application developers, this gives the option to use Python applications unavailable in distribution repositories.</p><p>I hope you find this tutorial helpful. Let me know if you have questions or suggestions.</p>


id: https://itsfoss.com/snap-update/
feed_url: https://itsfoss.com/rss/
read: False
title: How to Update Snap Packages in Ubuntu
link: https://itsfoss.com/snap-update/
categories: Ubuntu
description:
Snap packages are automatically updated. But you can still control the updates manually. Learn all about Snap updates here.

content:
<img src="https://itsfoss.com/content/images/2023/05/update-snap-packages-in-ubuntu.png" alt="How to Update Snap Packages in Ubuntu"><p>The snap packages are now an integral part of Ubuntu.</p><p>I mean, you can <a href="https://itsfoss.com/remove-snap/">remove Snap</a> from Ubuntu but they are still at the core of Ubuntu.</p><p>When it comes to <a href="https://itsfoss.com/update-ubuntu/">updating Ubuntu</a>, you&apos;ll come across <a href="https://itsfoss.com/apt-update-vs-upgrade/">apt update and apt upgrade commands</a>. No one really talks about snap update command.</p><p>That&apos;s because Snap updates are automatically updated to newer versions. It&apos;s built-in to the Snap mechanism. Your system checks for the updates multiple times daily and updates Snap applications automatically.</p><p>But this does not mean you cannot update Snap packages manually. Knowing about Snap updates also help you understand some of the underlying mechanism.</p><p>Let me show you how Snap update works and how you can control various parameters.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4CB;</div><div class="kg-callout-text">The <code>snap refresh</code> command is used for updating Snap packages.</div></div><h2 id="check-snap-update-schedule">Check Snap update schedule</h2><p>As I mentioned earlier, the snapd daemon checks for updates on installed Snap packages multiple times a day. &#xA0;By default, it checks for updates four times a day.</p><p>You can see all these details using this command:</p><pre><code>snap refresh --time</code></pre><p>It gives me the following output:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/snap-update-schedule.png" class="kg-image" alt="How to Update Snap Packages in Ubuntu" loading="lazy" width="789" height="319" srcset="https://itsfoss.com/content/images/size/w600/2023/05/snap-update-schedule.png 600w, https://itsfoss.com/content/images/2023/05/snap-update-schedule.png 789w" sizes="(min-width: 720px) 720px"></figure><p>In here, <code>timer: 00:00~24:00/4</code> tells you that the refresh check takes place 4 times in the span of 24 hours.</p><p>It also shows that the last Snap update check took place at 09:19 and the next one is scheduled at 15:33.</p><div class="kg-card kg-callout-card kg-callout-card-green"><div class="kg-callout-emoji">&#x1F3CB;&#xFE0F;</div><div class="kg-callout-text">You can change the refresh schedule for snaps using <code>refresh.timer</code> option. For example, <code>sudo snap set system refresh.timer=6:00-8:00,20:00-22:00</code> will make the Snap update check to happen between 6 and 8 in the morning and 8 and 10 at night.</div></div><h2 id="see-which-snap-applications-can-be-updated">See which Snap applications can be updated</h2><p>You can check which Snap packages have updates available with the following command:</p><pre><code>snap refresh --list</code></pre><p>If no Snap package has updates, you&apos;ll see this message.</p><pre><code>All snaps up to date.</code></pre><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/image-17.png" class="kg-image" alt="How to Update Snap Packages in Ubuntu" loading="lazy" width="1548" height="720" srcset="https://itsfoss.com/content/images/size/w600/2023/05/image-17.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/image-17.png 1000w, https://itsfoss.com/content/images/2023/05/image-17.png 1548w" sizes="(min-width: 720px) 720px"></figure><h2 id="update-all-snap-packages-manually">Update all Snap packages manually</h2><p>If you don&apos;t want to wait till the next Snap refresh, you can surely manually update all the Snap packages that can be updated.</p><p>All you have to do is to run this command:</p><pre><code>sudo snap refresh</code></pre><p>And see the updates take place.</p><h2 id="update-specific-snap-packages">Update specific Snap packages</h2><p>If you only want to update a specific Snap package, use:</p><pre><code>sudo snap refresh package_name</code></pre><p>You&apos;ll need to be precise with the package name, of course. You can also provide multiple packages to be updated.</p><pre><code>sudo snap refresh package_1 package_2</code></pre><p>Please note that some Snap applications (that are usually installed in classic mode) are not updated in the background. You have to close the running Snap applications and then update them. </p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/pending-update-firefox-ubuntu/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">[Solved] &#x201C;Pending Update of Firefox&#x201D; Error in Ubuntu</div><div class="kg-bookmark-description">Seeing a persistent &#x201C;pending update of Firefox snap&#x201D; message that doesn&#x2019;t go away even if you restart the browser or the Ubuntu system? Here&#x2019;s what to do.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="How to Update Snap Packages in Ubuntu"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Abhishek Prakash</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2022/07/pending-update-of-firefox-snap-error-ubuntu.png" alt="How to Update Snap Packages in Ubuntu"></div></a></figure><h2 id="check-changes-made-by-snap-updates">Check changes made by Snap updates</h2><p>Since Snap updates mostly work in the background, you may wonder what changes were made </p><pre><code>snap changes</code></pre><p>It should show what changes Snap made in the last refresh. </p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/snap-update-changes.png" class="kg-image" alt="How to Update Snap Packages in Ubuntu" loading="lazy" width="985" height="356" srcset="https://itsfoss.com/content/images/size/w600/2023/05/snap-update-changes.png 600w, https://itsfoss.com/content/images/2023/05/snap-update-changes.png 985w" sizes="(min-width: 720px) 720px"></figure><p>You can see the details of each change by using the ID it shows.</p><pre><code>snap change change_ID</code></pre><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/snap-update-change-details.png" class="kg-image" alt="How to Update Snap Packages in Ubuntu" loading="lazy" width="1313" height="761" srcset="https://itsfoss.com/content/images/size/w600/2023/05/snap-update-change-details.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/snap-update-change-details.png 1000w, https://itsfoss.com/content/images/2023/05/snap-update-change-details.png 1313w" sizes="(min-width: 720px) 720px"></figure><h2 id="revert-the-updated-snap-application">Revert the updated Snap application</h2><p>By default, Snap saves one older version of the Snap packages. If you do not like the newly updated version, you can go back to the previous one with the <code>revert</code> option.</p><pre><code>sudo snap revert package_name</code></pre><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/snap-revert.png" class="kg-image" alt="How to Update Snap Packages in Ubuntu" loading="lazy" width="1028" height="327" srcset="https://itsfoss.com/content/images/size/w600/2023/05/snap-revert.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/snap-revert.png 1000w, https://itsfoss.com/content/images/2023/05/snap-revert.png 1028w" sizes="(min-width: 720px) 720px"></figure><h2 id="prevent-a-package-from-updates">Prevent a package from updates</h2><p>If you would like to stay on the current version for a particular package, you can hold it to prevent it from automatic updates.</p><pre><code>sudo snap refresh --hold package_name</code></pre><p><strong>You can stop the automatic update for all snap packages</strong>:</p><pre><code>sudo snap refresh --hold</code></pre><p>When you are ready to accept updates on the package, you can unhold it.</p><pre><code>sudo snap refresh --unhold package_name</code></pre><p>You may also unhold all the held packages in one go:</p><pre><code>sudo snap refresh --unhold</code></pre><div class="kg-card kg-callout-card kg-callout-card-green"><div class="kg-callout-emoji">&#x1F3CB;&#xFE0F;</div><div class="kg-callout-text">You can hold a package for a specific time only with <code>sudo snap refresh --hold=duration package_name</code>. The duration can be in hours, minutes or even seconds.</div></div><h2 id="in-the-end">In the end...</h2><p>If you use mobile data from time to time and do not want Snap auto-updates to eat away all your precious data, here&apos;s a trick for that.</p><p>The command below will prevent Snap updates on metered connections. In network settings, you can set your mobile network as metered.</p><pre><code>sudo snap set system refresh.metered=hold</code></pre><p>More about Snap updates can be found in the official documentation.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://snapcraft.io/docs/keeping-snaps-up-to-date?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Managing updates | Snapcraft documentation</div><div class="kg-bookmark-description">Snaps are containerised software packages that are simple to create and install. They auto-update and are safe to run. And because they bundle their dependencies, they work on all major Linux systems without modification.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://assets.ubuntu.com/v1/841d0bcf-favicon_32px.png" alt="How to Update Snap Packages in Ubuntu"><span class="kg-bookmark-author">Snapcraft</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://assets.ubuntu.com/v1/4726d040-Snap+logo+white+bg.jpg" alt="How to Update Snap Packages in Ubuntu"></div></a></figure><p>And that&apos;s it. I guess you know a lot more about Snap updates than you did earlier. Let me know what new stuff you learned in the comments. Any other question or suggestion is also weclome.</p>


id: https://itsfoss.com/newsletter/foss-weekly-23-21/
feed_url: https://itsfoss.com/rss/
read: False
title: FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff
link: https://itsfoss.com/newsletter/foss-weekly-23-21/
categories: Newsletter
description:
Changes to Pip mechanism, stress testing CPU and other Linux tips and tutorials in this edition of FOSS Weekly.

content:
<img src="https://itsfoss.com/content/images/2023/05/FOSS-WEEKLY-23-21.png" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"><p>It seems like Pip is changing its behavior to avoid conflicts with native Linux packages. The change is now present in Ubuntu 23.10 and Fedora 38, where you&apos;ll <a href="https://itsfoss.com/externally-managed-environment/">run into an error while using Pip</a>.</p><p>And we have new badges for Pro members &#x1F918;</p><p><strong>&#x1F4AC; Let&apos;s see what else you have in this edition of FOSS Weekly:</strong></p><ul><li>Addressing the Pip issue in Ubuntu 23.10</li><li>Stress testing CPU</li><li>And other Linux news, videos, puzzles and, of course, memes!</li></ul><hr><h2 id="%F0%9F%93%B0-linux-news">&#x1F4F0; Linux news</h2><ul><li>Lightweight distro Bodhi Linux <a href="https://www.bodhilinux.com/release/7-0-0/?ref=itsfoss.com">released version 7.0 beta</a>.</li><li>Fedora 36 has reached end of life. Existing users should <a href="https://itsfoss.com/upgrade-fedora-version/">upgrade to a newer version</a>.</li><li>Cloudflare has launched a <a href="https://news.itsfoss.com/cloudflare-open-source-sponsorship/?ref=itsfoss.com">new sponsorship program for OSS projects</a>.</li></ul><p>Twitter&apos;s original co-founder Jack Dorsey&apos;s Bluesky recently open-sourced their Web, Android, and iOS applications.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://news.itsfoss.com/bluesky-social-open-source/?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Bluesky Social: A Decentralized Twitter Alternative Takes an Open-Source Approach</div><div class="kg-bookmark-description">A Twitter replacement in the works with better fundamentals and approach in place?</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"><span class="kg-bookmark-author">It&apos;s FOSS News</span><span class="kg-bookmark-publisher">Sourav Rudra</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://news.itsfoss.com/content/images/2023/05/bluesky-open-source-twitter-alternative.jpg" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"></div></a></figure><hr><h2 id="%F0%9F%A7%A0-what-we%E2%80%99re-thinking-about">&#x1F9E0; What we&#x2019;re thinking about</h2><p>This is going to resonate with many long-time Ubuntu users.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://hackaday.com/2023/05/22/dear-ubuntu/?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Dear Ubuntu&#x2026;</div><div class="kg-bookmark-description">Dear Ubuntu, I hope this letter finds you well. I want to start by saying that our time together has been one of creativity and entertainment, a time in which you gave me the tools to develop a new&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://hackaday.com/wp-content/themes/hackaday-2/img/hackaday-logo_1024x1024.png?v=3" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"><span class="kg-bookmark-author">Hackaday</span><span class="kg-bookmark-publisher">Jenny List</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://hackaday.com/wp-content/uploads/2023/05/dear-ubuntu-featured-e1684772890716.jpg" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"></div></a></figure><hr><h2 id="%F0%9F%A7%AE-tutorials">&#x1F9EE; Tutorials</h2><p>You cannot use Pip for installing Python packages in Ubuntu 23.10. At least not directly. Here&apos;s why and what you can do about it.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/externally-managed-environment/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Externally Managed Environment Error With Pip in Ubuntu 23.10</div><div class="kg-bookmark-description">Seeing an &#x201C;externally managed environment&#x201D; error while using Pip in Ubuntu 23.10? Here&#x2019;s what you can do about this error.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Abhishek Prakash</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/05/handling-externally-managed-env-pip.png" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"></div></a></figure><p>When building a new system, stress testing the CPU is a way to check your processor&apos;s performance capabilities under heavy load.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/stress-test-cpu-linux/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How to Stress Test CPU in Linux</div><div class="kg-bookmark-description">Want to stress test your CPU in Linux? Here&#x2019;s how you can do it effortlessly.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Sagar Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/05/cpu-stress-test.png" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"></div></a></figure><p>Brave has the picture-in-picture mode. It&apos;s just not obvious like Firefox. Here&apos;s how to use it.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/picture-in-picture-brave/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How to Use Picture in Picture Mode in Brave Browser</div><div class="kg-bookmark-description">Brave has picture-in-picture mode but it&#x2019;s so hidden that you feel like there is no PIP support at all. Here&#x2019;s how to enable and use it.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Abhishek Prakash</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2022/09/enable-pip-mode-in-brave.png" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"></div></a></figure><h2 id="%F0%9F%93%B9-what-we-are-watching">&#x1F4F9; What we are watching</h2><p>2 videos in 2 weeks... now we are rolling &#x26F9;&#xFE0F;</p><figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/lZ_0NSJHa0k?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen title="10 ASCII Games You Can Play in Linux Terminal [For Retro Arcade Game Lovers]"></iframe></figure><hr><h2 id="%E2%9C%A8-application-highlights">&#x2728; Application highlights</h2><p>VidCutter is a nifty tool for trimming and merging videos on Linux. That&apos;s it. No fancy video editing features here.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/vidcutter-video-editor-linux/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Easily Trim Videos With VidCutter in Linux</div><div class="kg-bookmark-description">Learn how to install and use VidCutter, a simple open source tool for trimming and merging videos in Linux.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Abhishek Prakash</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/05/vidcutter-video-trimmer-linux-app.png" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"></div></a></figure><hr><h2 id="%F0%9F%92%A1quick-linux-tip">&#x1F4A1;Quick Linux tip</h2><p>The usual way of hiding files from normal view is to add dot (.) before the filenames.</p><p>In Nautilus and perhaps some other file managers, you can <a href="https://itsfoss.com/hide-files-folders-linux/">hide multiple files and folders without renaming them</a>.</p><p>All you have to do is to create a text file named <code>.hidden</code> and add the names of the folders and files you want to hide to this file.</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/image-13.png" class="kg-image" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff" loading="lazy" width="795" height="417" srcset="https://itsfoss.com/content/images/size/w600/2023/05/image-13.png 600w, https://itsfoss.com/content/images/2023/05/image-13.png 795w" sizes="(min-width: 720px) 720px"></figure><p>Now, <strong>close your file explorer and start it again</strong>. The files and directories mentioned in the <code>.hidden</code> file will be hidden and can only be viewed with Ctrl+H keys.</p><hr><h2 id="%F0%9F%A7%A9-puzzle-for-pro-members-only">&#x1F9E9; Puzzle (for Pro members only)</h2><p>This week you have scrambled e&#x336;g&#x336;g&#x336;s&#x336; words. The puzzle is composed of various Linux-related terms and applications.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/puzzle/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Puzzle of The Week: Scrambled Words Puzzle #1</div><div class="kg-bookmark-description">Exercise those &#x2018;little gray cells&#x2019; of yours and solve this puzzle.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Abhishek Prakash</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/05/puzzle-of-the-week.png" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"></div></a></figure><hr><h2 id="%F0%9F%9B%8D%EF%B8%8F-interesting-offer">&#x1F6CD;&#xFE0F; Interesting offer</h2><p>Unleash the creative power of Blender, the free and open-source software tool for 3D artists, with this bundle of books from Packt.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.humblebundle.com/books/blender-animation-and-games-packt-books?partner=itsfoss&amp;ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Humble Tech Book Bundle: Blender Animation and Games by Packt</div><div class="kg-bookmark-description">We&#x2019;ve teamed up with Packt for our newest bundle. Get books like Game Development with Blender and Godot. Plus, pay what you want &amp; support charity!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://cdn.humblebundle.com/static/hashed/03df0490a53d595fd930f9fff52038366d60a05d.png" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"><span class="kg-bookmark-author">Humble Bundle</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://hb.imgix.net/7f272b3fc868b9d190ad8e9da7031f7c69b960d3.jpg?auto=compress,format&amp;h=630&amp;w=1200&amp;s=1ea5184912b92c0fa0ffd93b722adbea" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"></div></a></figure><hr><h2 id="%F0%9F%A4%A3-meme-of-the-week">&#x1F923; Meme of the week</h2><p>Linux can be very welcoming to new users!</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/wholesomm.png" class="kg-image" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff" loading="lazy" width="1080" height="1080" srcset="https://itsfoss.com/content/images/size/w600/2023/05/wholesomm.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/wholesomm.png 1000w, https://itsfoss.com/content/images/2023/05/wholesomm.png 1080w" sizes="(min-width: 720px) 720px"></figure><hr><h2 id="%F0%9F%97%93%EF%B8%8F-tech-trivia">&#x1F5D3;&#xFE0F; Tech Trivia</h2><p>On May 24, 1844, Samuel Morse sent the first telegraph over a line from Washington, D.C. to Baltimore. He sent &apos;What hath God wrought&apos; to his partner Alfred Vail, who retransmitted the same message back to Morse. </p><p>The famous Morse code is named after Samuel Morse.</p><hr><h2 id="%F0%9F%86%95-fossverse-updates">&#x1F195; FOSSverse updates</h2><p>Now the Pro members get honor badges displayed with their names in both Community and the Comments sections.</p><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://itsfoss.com/content/images/2023/05/itsfoss-pro-member-badge.png" width="515" height="117" loading="lazy" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"></div><div class="kg-gallery-image"><img src="https://itsfoss.com/content/images/2023/05/itsfoss-pro-member-badges.png" width="421" height="114" loading="lazy" alt="FOSS Weekly #23.21: Pip Issue, CPU Stress Testing and More Linux Stuff"></div></div></div><figcaption>Pro members get special badges in comments and community</figcaption></figure><p>I guess that gives you one more reason to <a href="https://itsfoss.com/signup/">upgrade to It&apos;s FOSS Pro membership</a> &#x1F609; </p><hr><h2 id="%E2%9D%A4%EF%B8%8F-enjoying-foss-weekly">&#x2764;&#xFE0F; Enjoying FOSS Weekly?</h2><p><strong>Forward it to Linux-using friends</strong> and encourage them to subscribe (hint: <a href="https://itsfoss.com/signup/">it&apos;s here</a>).</p><p><a href="https://itsfoss.com/#/portal/signup">Become a Pro member</a> and show your support &#x1F64F;</p><p><strong>Something else?</strong> Share it with me by pressing the reply button.</p><p>Keep on Linux-ing with It&apos;s FOSS :)</p>


id: https://itsfoss.com/stress-test-cpu-linux/
feed_url: https://itsfoss.com/rss/
read: False
title: How to Stress Test CPU in Linux
description: Want to stress test your CPU in Linux? Here's how you can do it effortlessly.
link: https://itsfoss.com/stress-test-cpu-linux/
categories: Tutorial
content:
<img src="https://itsfoss.com/content/images/2023/05/cpu-stress-test.png" alt="How to Stress Test CPU in Linux"><p>Stress testing your CPU is one of the best ways to check your processor&apos;s performance capabilities under heavy load and the system&apos;s temperature when that happens.</p><p>When you stress test the CPU, you can monitor the system&apos;s resources to see how they behave with the CPU at its peak workload. While the performance will not change compared to what the processor is capable of, the temperature may affect its operation if it is not well-equipped.</p><p><strong>Stress testing is essential for enthusiasts when building a new system</strong>, especially if you plan to overclock the CPU later.</p><p>For instance, if your CPU gets too hot too quickly during the stress test. You need a better cooling solution by changing the CPU cooler, using a better airflow cabinet, etc.</p><p>Now that you have an idea about the benefits, I will walk you through the following ways to stress test the CPU in Linux:</p><ul><li><strong>Using GtkStressTesting (GUI method)</strong></li><li><strong>Using stress and s-tui utility (CLI method)</strong></li></ul><p>So let&apos;s start with the first one.</p><h2 id="stress-test-linux-cpu-using-gui-method-%F0%9F%96%A5%EF%B8%8F">Stress test Linux CPU using GUI method &#x1F5A5;&#xFE0F;</h2><p>If you prefer using a GUI solution over the terminal, I have just the easiest method for you to stress-test your system. &#xA0; </p><p>There is a GUI utility <strong>GtkStressTesting, </strong>which helps you stress test and monitor temperature simultaneously. It provides various presets to stress-test the system and provides an ability to choose how many cores you want to work with during the test.</p><div class="kg-card kg-callout-card kg-callout-card-red"><div class="kg-callout-emoji">&#x1F6A7;</div><div class="kg-callout-text">This tool is no more actively maintained on <a href="https://gitlab.com/leinardi/gst?ref=itsfoss.com">GitLab</a>. But it works as expected.</div></div><p>GtkStressTesting is available as a Flatpak, so if you haven&apos;t already enabled Flatpak support, refer to our <a href="https://itsfoss.com/flatpak-guide/">Flatpak setup guide</a>.</p><p>Once you have enabled Flatpak support, the GtkStressTesting utility can be installed using the following via the terminal (if not software center)</p><pre><code>flatpak install flathub com.leinardi.gst</code></pre><p>After the installation, you can start the GtkStressTesting utility from the system menu. </p><p>Here, I would recommend you click on the <code>Read all</code> button and enter the sudo password so the utility can fetch all the information of your system:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/Allow-read-all-premissions-for-GtkStressTesting.png" class="kg-image" alt="How to Stress Test CPU in Linux" loading="lazy" width="1423" height="815" srcset="https://itsfoss.com/content/images/size/w600/2023/05/Allow-read-all-premissions-for-GtkStressTesting.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/Allow-read-all-premissions-for-GtkStressTesting.png 1000w, https://itsfoss.com/content/images/2023/05/Allow-read-all-premissions-for-GtkStressTesting.png 1423w" sizes="(min-width: 720px) 720px"></figure><p>From here, you can choose how long you want to stress test your system (you can always stop the process if the temp gets too high) and choose the max number available in the <code>Workers: Auto</code>.</p><p>I went for <strong>12 cores and 5 mins of stress testing</strong>:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/05/choose-time-and-cores-to-stress-test-the-CPU-in-linux.png" class="kg-image" alt="How to Stress Test CPU in Linux" loading="lazy" width="1173" height="670" srcset="https://itsfoss.com/content/images/size/w600/2023/05/choose-time-and-cores-to-stress-test-the-CPU-in-linux.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/choose-time-and-cores-to-stress-test-the-CPU-in-linux.png 1000w, https://itsfoss.com/content/images/2023/05/choose-time-and-cores-to-stress-test-the-CPU-in-linux.png 1173w" sizes="(min-width: 720px) 720px"><figcaption>(Click to enlarge image)</figcaption></figure><p>Once you are done, click on the start button and monitor the temperatures, and if they reach beyond 90, stop the stress testing.</p><p>My system went to 85 max during stress testing:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/stress-test-Linux-CPU-usng-GUI-1.png" class="kg-image" alt="How to Stress Test CPU in Linux" loading="lazy" width="1308" height="1052" srcset="https://itsfoss.com/content/images/size/w600/2023/05/stress-test-Linux-CPU-usng-GUI-1.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/stress-test-Linux-CPU-usng-GUI-1.png 1000w, https://itsfoss.com/content/images/2023/05/stress-test-Linux-CPU-usng-GUI-1.png 1308w" sizes="(min-width: 720px) 720px"></figure><p>Pretty easy way to stress test the CPU. Isn&apos;t it? &#x1F609;</p><h2 id="stress-test-linux-cpu-using-the-terminal">Stress test Linux CPU using the Terminal </h2><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/stress-test.gif" class="kg-image" alt="How to Stress Test CPU in Linux" loading="lazy" width="1042" height="642" srcset="https://itsfoss.com/content/images/size/w600/2023/05/stress-test.gif 600w, https://itsfoss.com/content/images/size/w1000/2023/05/stress-test.gif 1000w, https://itsfoss.com/content/images/2023/05/stress-test.gif 1042w" sizes="(min-width: 720px) 720px"></figure><p>You&apos;d need two utilities to stress test using a terminal: <strong><a href="https://itsfoss.com/stress-terminal-ui/">s-tui</a></strong> and <strong>stress</strong>. </p><p>You can get these tools installed from the default repositories or <a href="https://itsfoss.com/install-pip-ubuntu/">using pip</a>. It is easier with default repositories if you are okay with using an older version of the tool (a tad bit).</p><p>Here are the commands that will help you install them on popular Linux distros:</p><p><strong>For Ubuntu/Debian base:</strong></p><pre><code>sudo apt install s-tui stress </code></pre><p><strong>For Arch Linux:</strong></p><pre><code>sudo pacman -S s-tui stress</code></pre><p><strong>For Fedora/RHEL:</strong></p><pre><code>sudo dnf install s-tui stress</code></pre><p><strong>If you want to use pip </strong>for the latest version, here is the command:</p><pre><code>pip install s-tui --user</code></pre><p>Once you are done with the installation, launch the s-tui utility in the terminal:</p><pre><code>s-tui</code></pre><p>And you would be met with the following:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/monitor-clock-speed--load-and-CPU-utilization-in-Linux.png" class="kg-image" alt="How to Stress Test CPU in Linux" loading="lazy" width="1803" height="1006" srcset="https://itsfoss.com/content/images/size/w600/2023/05/monitor-clock-speed--load-and-CPU-utilization-in-Linux.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/monitor-clock-speed--load-and-CPU-utilization-in-Linux.png 1000w, https://itsfoss.com/content/images/size/w1600/2023/05/monitor-clock-speed--load-and-CPU-utilization-in-Linux.png 1600w, https://itsfoss.com/content/images/2023/05/monitor-clock-speed--load-and-CPU-utilization-in-Linux.png 1803w" sizes="(min-width: 720px) 720px"></figure><p>You can use the mouse or keyboard arrow keys to navigate through the menu, so click on the <code>Stres options</code> and choose how long you want to stress test the system<strong> (in seconds):</strong></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/05/set-time-for-how-long-to-stress-test-CPU-in-Linux.png" class="kg-image" alt="How to Stress Test CPU in Linux" loading="lazy" width="1683" height="886" srcset="https://itsfoss.com/content/images/size/w600/2023/05/set-time-for-how-long-to-stress-test-CPU-in-Linux.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/set-time-for-how-long-to-stress-test-CPU-in-Linux.png 1000w, https://itsfoss.com/content/images/size/w1600/2023/05/set-time-for-how-long-to-stress-test-CPU-in-Linux.png 1600w, https://itsfoss.com/content/images/2023/05/set-time-for-how-long-to-stress-test-CPU-in-Linux.png 1683w" sizes="(min-width: 720px) 720px"><figcaption>(Click to enlarge image)</figcaption></figure><p>And finally, select the <code>Stress</code> option, and it will start the stress testing for a specified period:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/05/stress-test-Linux-CPU-using-terminal.png" class="kg-image" alt="How to Stress Test CPU in Linux" loading="lazy" width="1578" height="983" srcset="https://itsfoss.com/content/images/size/w600/2023/05/stress-test-Linux-CPU-using-terminal.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/stress-test-Linux-CPU-using-terminal.png 1000w, https://itsfoss.com/content/images/2023/05/stress-test-Linux-CPU-using-terminal.png 1578w" sizes="(min-width: 720px) 720px"><figcaption>(Click to enlarge image)</figcaption></figure><p>And if the temperature gets out of control, you can click on the <code>Quit</code> button to stop the stress test manually. Additionally, if you want to store the data in the <code>.csv</code> format, the tool gives you the feature.</p><p>To store the data, all you have to do is append the <code>-c</code> flag while starting the s-tui utility as shown:</p><pre><code>s-tui -c</code></pre><p>And if you want to save the file with a name to your liking, you&apos;d have to use the <code>--csv-file</code> flag as shown:</p><pre><code>s-tui --csv-file &lt;name of file&gt;.csv</code></pre><p>For example, here, I named the file <code>Hello.scv</code>:</p><pre><code>s-tui --csv-file Hello.scv</code></pre><p>You can explore more about the tool on its <a href="https://github.com/amanusk/s-tui?ref=itsfoss.com">GitHub page</a>.</p><p><strong>Suggested Read &#x1F4D6;</strong></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/linux-system-monitoring-tools/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">7 System Monitoring Tools for Linux That are Better Than Top</div><div class="kg-bookmark-description">Top command is good but there are better alternatives. Take a look at these system monitoring tools that are similar to top, but better than it.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="How to Stress Test CPU in Linux"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2020/08/system-monitoring-tools-linux.jpg" alt="How to Stress Test CPU in Linux"></div></a></figure><h2 id="happy-system-happy-life-%F0%9F%98%81">Happy System, Happy Life &#x1F601;</h2><p>Not every user realizes the benefits of a stress test. Sometimes it scares them off with the idea of their system reaching its limits for no reason.</p><p>However, the test will help you quickly evaluate and monitor your system&apos;s condition. Things like <strong>abnormal temperature spikes</strong> and CPU being unable to handle what it is should help you identify hardware issues early on.</p><p>In either case, you can refer to our temperature monitoring resource if you want to <a href="https://itsfoss.com/check-laptop-cpu-temperature-ubuntu/">keep your CPU monitor in check</a> without performing stress tests.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/check-laptop-cpu-temperature-ubuntu/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How To Check CPU Temperature in Ubuntu Linux</div><div class="kg-bookmark-description">This quick tutorial shows you how to check the CPU temperature on Ubuntu and other Linux distributions with a help of a tool called Psensor. Overheating of laptops is a common issue one faces these days. Monitoring hardware temperature&#xA0;may help you diagnose why your laptop is getting overh&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="How to Stress Test CPU in Linux"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Abhishek Prakash</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2015/05/check-cpu-temp.jpeg" alt="How to Stress Test CPU in Linux"></div></a></figure><p>You can also check out some of the <a href="https://itsfoss.com/linux-system-monitoring-tools/">system monitoring tools</a> or <a href="https://itsfoss.com/htop-alternatives/">htop alternatives</a> for Linux to keep an eye on your system resources.</p><p>&#x1F4AC; <em>What do you think about stress testing your CPU in Linux? Do you think we should do it? Share your thoughts on it in the comments below.</em></p>


id: https://itsfoss.com/externally-managed-environment/
feed_url: https://itsfoss.com/rss/
read: False
title: Handling Externally Managed Environment Error With Pip in Ubuntu 23.04
link: https://itsfoss.com/externally-managed-environment/
categories: Troubleshoot
description:
Seeing an "externally managed environment" error while using Pip in Ubuntu 23.04? Here's what you can do about this error.

content:
<img src="https://itsfoss.com/content/images/2023/05/handling-externally-managed-env-pip.png" alt="Handling Externally Managed Environment Error With Pip in Ubuntu 23.04"><p>I recently upgraded to Ubuntu 23.04. Things are mostly smooth. However, recently I encountered an issue that was not present in the previous version.</p><p>I was trying to install a package using Pip, a command line based Python package manager. It works great usually but it threw an error this time:</p><p><strong>error: externally-managed-environment</strong></p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/externally-managed-environment.png" class="kg-image" alt="Handling Externally Managed Environment Error With Pip in Ubuntu 23.04" loading="lazy" width="928" height="679" srcset="https://itsfoss.com/content/images/size/w600/2023/05/externally-managed-environment.png 600w, https://itsfoss.com/content/images/2023/05/externally-managed-environment.png 928w" sizes="(min-width: 720px) 720px"></figure><p>Here&apos;s the complete error message if you want to read it:</p><pre><code>&#xD7; This environment is externally managed
&#x2570;&#x2500;&gt; To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.
    
    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.
    
    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.
    
    See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
</code></pre><p>And if you read the details, you&apos;ll understand why you see this error.</p><h2 id="reason-behind-the-externally-managed-environment-error">Reason behind the &apos;Externally Managed Environment&apos; Error</h2><p>Ubuntu 23.04, Fedora 38 and probably other recent distribution versions are implementing this enhancement on the use of Python packages.</p><p>The change has been done to avoid the &quot;conflict between OS package managers and Python-specific package management tools like pip. These conflicts include both Python-level API incompatibilities and conflicts over file ownership.&quot;</p><p>More details can be find on <a href="https://peps.python.org/pep-0668?ref=itsfoss.com">this page</a>. </p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://peps.python.org/pep-0668?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">PEP 668 &#x2013; Marking Python base environments as &#x201C;externally managed&#x201D; | peps.python.org</div><div class="kg-bookmark-description">Python Enhancement Proposals (PEPs)</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://peps.python.org/_static/py.png" alt="Handling Externally Managed Environment Error With Pip in Ubuntu 23.04"><span class="kg-bookmark-author">peps.python.org</span></div></div></a></figure><h2 id="what-are-your-options">What are your options?</h2><p>You can do three things when you try to install a Python package and see this error. </p><ol><li>Install the native package</li><li>Create virtual environments in Python</li><li><a href="https://itsfoss.com/install-pipx-ubuntu/">Use Pipx</a> (recommended)</li></ol><p>Before you see those methods, let me share a quick and dirty hack shared by an It&apos;s FOSS reader.</p><div class="kg-card kg-callout-card kg-callout-card-red"><div class="kg-callout-emoji">&#x270B;</div><div class="kg-callout-text">You could also just delete the element responsible for this warning. If you are comfortable with the command line, just delete the file <code>/usr/lib/python3.x/EXTERNALLY-MANAGED</code>. You have to replace x with the python version(s), of course.&#xA0;</div></div><h3 id="option-1-go-for-native-package">Option 1: Go for native package</h3><p>I understand that Pip gives a comfortable way of installing Python packages. However, some Python applications are also packaged as APT or other native packages. Search for it in your distribution&apos;s repositories and install it from there if it is available.</p><p>For example, I was trying to install WoeUSB-ng. If I was using Arch Linux, the same package is available from AUR.</p><h3 id="option-2-use-python-virtual-environment">Option 2: Use Python virtual environment</h3><p>If you must use a Python package, you have to isolate it in <a href="https://itsfoss.com/python-setup-linux/">Python virtual environment</a>.</p><p>With the help of virtual environments, you can use different versions of package dependencies and Python. This way, you avoid any conflicts between the packages.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4CB;</div><div class="kg-callout-text">This method is suitable for software developers and programmers working on Python projects.</div></div><p>Let&apos;s quickly see how you do it. Usually, Python should already have the tool for creating virtual environments.</p><p>Use the command below to create a virtual environment for your project. Replace <code>project_name</code> with your project&apos;s name, of course.</p><pre><code>python3 -m venv .venv/project_name</code></pre><p><strong>If you see venv errors related</strong>, you may have to install it.</p><pre><code>sudo apt install python3-venv
</code></pre><p>Now, you&apos;ll see a directory named <code>.env</code> in your home directory and inside the .env, you&apos;ll have the project directory. &#xA0;</p><p>Here&apos;s the exciting part. Each project directory will have its own copy of Python and Pip in it. </p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/python-virtual-env-example.png" class="kg-image" alt="Handling Externally Managed Environment Error With Pip in Ubuntu 23.04" loading="lazy" width="872" height="366" srcset="https://itsfoss.com/content/images/size/w600/2023/05/python-virtual-env-example.png 600w, https://itsfoss.com/content/images/2023/05/python-virtual-env-example.png 872w" sizes="(min-width: 720px) 720px"></figure><p>That&apos;s your virtual Python environment. You can use this &apos;local binary&apos; for installing Python packages using Pip inside this virtual environment like this:</p><pre><code>.venv/project_name/bin/pip install package_name</code></pre><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/use-pip-in-python-virtual-environment.png" class="kg-image" alt="Handling Externally Managed Environment Error With Pip in Ubuntu 23.04" loading="lazy" width="872" height="462" srcset="https://itsfoss.com/content/images/size/w600/2023/05/use-pip-in-python-virtual-environment.png 600w, https://itsfoss.com/content/images/2023/05/use-pip-in-python-virtual-environment.png 872w" sizes="(min-width: 720px) 720px"></figure><p>Remember that the installed Python package won&apos;t be available system wide. </p><p>This was only a brief example of virtual environments in Python. Here&apos;s a detailed guide if you want to learn more on it.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://realpython.com/python-virtual-environments-a-primer/?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Python Virtual Environments: A Primer &#x2013; Real Python</div><div class="kg-bookmark-description">In this tutorial, you&#x2019;ll learn how to use a Python virtual environment to manage your Python projects. You&#x2019;ll also dive deep into the structure of virtual environments built using the venv module, as well as the reasoning behind using virtual environments.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://realpython.com/static/favicon.68cbf4197b0c.png" alt="Handling Externally Managed Environment Error With Pip in Ubuntu 23.04"><span class="kg-bookmark-author">Real Python</span><span class="kg-bookmark-publisher">Real Python</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://files.realpython.com/media/Python-Virtual-Environments_Watermarked.4c787192d42f.jpg" alt="Handling Externally Managed Environment Error With Pip in Ubuntu 23.04"></div></a></figure><h3 id="3-use-pipx-tool-recommended">3. Use Pipx tool (recommended)</h3><p>What you saw above involves manual work. Pipx automates it. </p><p>It automatically creates a new virtual environment for each app you install. Not only that. It also creates a link to it in <code>.local/bin</code>. This way, the user who installed the package can run it from anywhere in the command line.</p><p>I guess that&apos;s what most desktop Linux users want here.</p><p>Install pipx on Ubuntu using this command:</p><pre><code>sudo apt install pipx</code></pre><p>It will probably install a huge number of dependencies:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/install-pipx.png" class="kg-image" alt="Handling Externally Managed Environment Error With Pip in Ubuntu 23.04" loading="lazy" width="1198" height="763" srcset="https://itsfoss.com/content/images/size/w600/2023/05/install-pipx.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/install-pipx.png 1000w, https://itsfoss.com/content/images/2023/05/install-pipx.png 1198w" sizes="(min-width: 720px) 720px"></figure><p>Now <a href="https://itsfoss.com/add-directory-to-path-linux/">add it to the PATH</a> so that you can run from anywhere.</p><pre><code>pipx ensurepath
</code></pre><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/pipx-ensurepath.png" class="kg-image" alt="Handling Externally Managed Environment Error With Pip in Ubuntu 23.04" loading="lazy" width="996" height="409" srcset="https://itsfoss.com/content/images/size/w600/2023/05/pipx-ensurepath.png 600w, https://itsfoss.com/content/images/2023/05/pipx-ensurepath.png 996w" sizes="(min-width: 720px) 720px"></figure><div class="kg-card kg-callout-card kg-callout-card-red"><div class="kg-callout-emoji">&#x270B;</div><div class="kg-callout-text">You must close the terminal and log back in for the changes to occur.</div></div><p>Great! Now you can install Python packages using Pipx instead of Pip:</p><pre><code>pipx install package_name</code></pre><p>Here&apos;s an example.</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/pipx-install-example.png" class="kg-image" alt="Handling Externally Managed Environment Error With Pip in Ubuntu 23.04" loading="lazy" width="858" height="330" srcset="https://itsfoss.com/content/images/size/w600/2023/05/pipx-install-example.png 600w, https://itsfoss.com/content/images/2023/05/pipx-install-example.png 858w" sizes="(min-width: 720px) 720px"></figure><div class="kg-card kg-callout-card kg-callout-card-green"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">To remove a package installed with pipx, use <code>pipx uninstall package_name</code> command.</div></div><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/install-pipx-ubuntu/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Install and Use pipx in Ubuntu &amp; Other Linux</div><div class="kg-bookmark-description">Pipx addresses the shortcomings of the popular pip tool. Learn to install and use Pipx in Linux.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="Handling Externally Managed Environment Error With Pip in Ubuntu 23.04"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Sagar Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/05/install-pipx-ubuntu.png" alt="Handling Externally Managed Environment Error With Pip in Ubuntu 23.04"></div></a></figure><h2 id="conclusion">Conclusion</h2><p>Pip is a good tool for getting Python packages on the system. I think it was always meant for Python programmers, not for the end users. Clearly, it cannot be used as a replacement for the native distribution packages and the Python devs have made it clear.</p><p>The good thing is that alternatives exist for both programmers and end users.</p><p>I hope this tutorial helped you understand and overcome the externally-managed-environment error with Pip in Linux.</p><p>Please let me know if you have questions or suggestions.</p>


id: https://itsfoss.com/newsletter/foss-weekly-23-20/
feed_url: https://itsfoss.com/rss/
read: False
title: FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More
link: https://itsfoss.com/newsletter/foss-weekly-23-20/
categories: Newsletter
description:
Introducing FOSSverse, concluding Rust Basics series and looking at the upcoming KDE Plasma 6 features.

content:
<img src="https://itsfoss.com/content/images/2023/05/foss-weekly-23-20.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"><p>FOSSverse? What&apos;s that?</p><p>It&apos;s basically the idea of unifying all things It&apos;s FOSS with a single member account. When logged in to It&apos;s FOSS, you can automatically log in to the comment section with the same profile. That was the first part.</p><p>The same member account is now valid on the <a href="https://itsfoss.community/?ref=itsfoss.com">It&apos;s FOSS Community</a>. You don&apos;t have to manage a separate account for the Community anymore. Pro members also get &apos;Pro&apos; badge on their profile in the Community.</p><p>Still not part of the It&apos;s FOSS Community? That&apos;s the place where you can ask your questions and clear your doubts. <a href="https://itsfoss.community/?ref=itsfoss.com">Do join</a>.</p><p>In the last step towards FOSSverse, the same member account will also be valid on It&apos;s FOSS News. Pro member accounts are already synced between the portals.</p><p>Eventually, you will have the same identity across the FOSSverse (all It&apos;s FOSS web portals). I am super excited about it &#x1F929; and I welcome your feedback on this idea.</p><p><strong>&#x1F4AC; Let&apos;s see what you have in this edition of FOSS Weekly:</strong></p><ul><li>First look at Fedora-based risiOS Linux distro</li><li>Concluding the Rust series</li><li>Linux Mint update guide</li><li>And other Linux news, videos, puzzles and, of course, memes!</li></ul><hr><h2 id="%F0%9F%93%B0-linux-news">&#x1F4F0; Linux News</h2><ul><li>GNOME is <a href="https://news.itsfoss.com/gnome-terminal-console/?ref=itsfoss.com">considering to bring back the old Terminal application</a> to replace the new Console.</li><li>At the same time, GNOME is all <a href="https://news.itsfoss.com/loupe-image-viewer/?ref=itsfoss.com">set to replace the default image viewer</a> with the new Loupe app.</li><li><a href="https://news.itsfoss.com/ubuntu-riscv-visionfive-2/?ref=itsfoss.com">Ubuntu is now available on StarFive VisionFive 2</a>, a high-performance RISC-V single-board computer.</li><li>Ubuntu 23.10 is bringing the <a href="https://news.itsfoss.com/ubuntu-23-10-ppa/?ref=itsfoss.com">much-required change in the PPA mechanism</a>.</li></ul><p>The upcoming KDE Plasma 6 has some interesting features in the bag.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://news.itsfoss.com/kde-plasma-6-dev/?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">KDE Plasma 6 Plans Revealed: Includes 5 New Exciting Default Settings</div><div class="kg-bookmark-description">KDE Plasma 6 sounds impressive. Learn what&#x2019;s in store for you.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"><span class="kg-bookmark-author">It&apos;s FOSS News</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://news.itsfoss.com/content/images/2023/05/kde-plasma-6-defaults.jpg" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"></div></a></figure><hr><h2 id="%F0%9F%A7%A0-what-we%E2%80%99re-thinking-about">&#x1F9E0; What we&#x2019;re thinking about</h2><p>Modern problems require modern solutions (not in the meme sense).</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.phoronix.com/news/Asahi-Linux-Stop-X.Org?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Asahi Linux To Users: Please Stop Using X.Org</div><div class="kg-bookmark-description">Asahi Linux lead developer Hector Martin issued a lengthy post encouraging users of this Apple Silicon focused Linux distribution to stop using X.Org as Wayland is the future.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.phoronix.com/android-chrome-192x192.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"><span class="kg-bookmark-author">Phoronix</span><span class="kg-bookmark-publisher">Michael Larabel</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.phoronix.net/image.php?id=apple-m2-december&amp;image=m2_december_1" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"></div></a></figure><hr><h2 id="%F0%9F%9B%8D%EF%B8%8F-interesting-offers-for-linux-users">&#x1F6CD;&#xFE0F; Interesting offers for Linux users</h2><p>Linux Foundation is running a limited-time offer which should be helpful for people looking to make a career in Linux and DevOps. Check the <a href="https://shareasale.com/r.cfm?b=2339200&amp;u=747593&amp;m=59485&amp;urllink=&amp;afftrack=&amp;ref=itsfoss.com">details here</a>.</p><figure class="kg-card kg-image-card kg-card-hascaption"><a href="https://shareasale.com/r.cfm?b=2339200&amp;u=747593&amp;m=59485&amp;urllink=&amp;afftrack=&amp;ref=itsfoss.com"><img src="https://itsfoss.com/content/images/2023/05/Training_Promo-Graphics_May23_1200x62_01.png" class="kg-image" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More" loading="lazy" width="1200" height="628" srcset="https://itsfoss.com/content/images/size/w600/2023/05/Training_Promo-Graphics_May23_1200x62_01.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/Training_Promo-Graphics_May23_1200x62_01.png 1000w, https://itsfoss.com/content/images/2023/05/Training_Promo-Graphics_May23_1200x62_01.png 1200w" sizes="(min-width: 720px) 720px"></a><figcaption>Affiliate Link</figcaption></figure><p>The folks over at No Starch Press have yet another useful bundle, this time for learning Python programming. Be sure to check it out; a portion of the proceeds go to the <a href="https://www.python.org/psf-landing/?ref=itsfoss.com">Python Software Foundation</a>.</p><figure class="kg-card kg-bookmark-card kg-card-hascaption"><a class="kg-bookmark-container" href="https://www.humblebundle.com/books/python-no-starch-books?partner=itsfoss&amp;ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Humble Tech Book Bundle: Python by No Starch</div><div class="kg-bookmark-description">We&#x2019;ve teamed up with No Starch Press for our newest bundle. Get books like Python for Kids and Beyond the Basic Stuff with Python. Plus, pay what you want &amp; support charity!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://cdn.humblebundle.com/static/hashed/03df0490a53d595fd930f9fff52038366d60a05d.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"><span class="kg-bookmark-author">Humble Bundle</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://hb.imgix.net/75e1c3e16619e8c9f5ef6ddb93f3bbc0c3b098e1.png?auto=compress,format&amp;h=630&amp;w=1200&amp;s=d4c213287d9081c0d63c17f1eef0f4a8" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"></div></a><figcaption>Last 4 days to get it</figcaption></figure><hr><h2 id="%F0%9F%A7%AE-tutorials">&#x1F9EE; Tutorials</h2><p>The Rust Basics Series comes to an end. The last chapter consists of a relatively complex program that covers most of the concepts you learned in the earlier chapters of the series.</p><p>A new Rust series for intermediate users will be published after a pause. Stay Rusty.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/milestone-rust-program/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Rust Basics Series #8: Write the Milestone Rust Program</div><div class="kg-bookmark-description">In the final chapter of the Rust Basics Series, recall the concepts you learned and write a somewhat complex Rust program.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Pratham Patel</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/05/sample-program-in-rust.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"></div></a></figure><p>While the Updater tool is straightforward, it may still seem overwhelming to absolutely new Linux Mint users. And hence this guide.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/linux-mint-update/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Beginner&#x2019;s Guide to System Updates in Linux Mint</div><div class="kg-bookmark-description">New to Linux Mint? It has an excellent system updater tool. Learn about this tool and the best practices you should follow.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Sagar Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/05/system-updates-in-linux-mint.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"></div></a></figure><p>On a distrohopping spree? Be good and avoid these &apos;sins&apos;.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/distrohopping-issues/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">7 Deadly Sins of Linux Distrohopping</div><div class="kg-bookmark-description">What are you doing wrong with distro-hopping? Can you do it better? Yes, you can. Here, we tell you how.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/05/7-deadly-sins-of-distrohopping.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"></div></a></figure><h2 id="%F0%9F%93%B9-what-we-are-watching">&#x1F4F9; What we are watching</h2><p>Or more like what we are showing because we have a new video on our YouTube channel after a long time :)</p><figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/DpFU4MRBCm4?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen title="Rhino Linux review"></iframe></figure><hr><h2 id="%E2%9C%A8-project-highlights">&#x2728; Project highlights</h2><p>New week, new Linux distro. It&apos;s not that I try to introduce you to a new distro each week. It just happens involuntarily. Trust me &#x1F609;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://news.itsfoss.com/risi-os/?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">risiOS: An Easy-to-Use Fedora-based Linux Distribution</div><div class="kg-bookmark-description">Are you a fan of Fedora? You might like risiOS for its tweaks and out-of-the-box utilities.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"><span class="kg-bookmark-author">It&apos;s FOSS News</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://news.itsfoss.com/content/images/2023/05/risiOS-first-look.jpg" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"></div></a></figure><p>Just a reminder that a new reminder app is in works &#x1F638;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://news.itsfoss.com/reminders/?ref=itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Reminders: A Nifty Open-Source Linux App To Help You Get Things Done</div><div class="kg-bookmark-description">You&#x2019;re doing the best you can, but reminders can still help!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"><span class="kg-bookmark-author">It&apos;s FOSS News</span><span class="kg-bookmark-publisher">Sourav Rudra</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://news.itsfoss.com/content/images/2023/05/reminders-first-look.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"></div></a></figure><hr><h2 id="%F0%9F%A4%A3-meme-of-the-week">&#x1F923; Meme of the week</h2><p>The meme complements the Distrohopping article :)</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/memes-2.png" class="kg-image" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More" loading="lazy" width="1080" height="1080" srcset="https://itsfoss.com/content/images/size/w600/2023/05/memes-2.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/memes-2.png 1000w, https://itsfoss.com/content/images/2023/05/memes-2.png 1080w" sizes="(min-width: 720px) 720px"></figure><hr><h2 id="%F0%9F%97%93%EF%B8%8F-tech-trivia">&#x1F5D3;&#xFE0F; Tech Trivia</h2><p>On May 13, 1980, Digital Equipment Corporation, Intel, and Xerox jointly announced the Ethernet network specification. Ethernet is still the predominant networking standard.</p><hr><h2 id="%F0%9F%A7%A9-puzzle-for-pro-members-only">&#x1F9E9; Puzzle (for Pro members only)</h2><p>A new crossword that challenges you to identify computing legends.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/puzzle/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Puzzle of The Week</div><div class="kg-bookmark-description">Exercise those &#x2018;little gray cells&#x2019; of yours and solve this puzzle.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Abhishek Prakash</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/05/puzzle-of-the-week.png" alt="FOSS Weekly #23.20: risiOS Distro, Plasma 6, Distrohopping, FOSSverse and More"></div></a></figure><hr><h2 id="%E2%9D%A4%EF%B8%8F-enjoying-foss-weekly">&#x2764;&#xFE0F; Enjoying FOSS Weekly?</h2><p><strong>Forward it to Linux-using friends</strong> and encourage them to subscribe (hint: <a href="https://itsfoss.com/signup/">it&apos;s here</a>).</p><p>Become a Pro member and show your support &#x1F64F;</p><p>Share the newsletter and the articles in Linux communities on Reddit and other platforms.</p><p><strong>Something else?</strong> Share it with me by pressing the reply button.</p><p>Enjoy FOSSverse :)</p>


id: https://itsfoss.com/linux-mint-update/
feed_url: https://itsfoss.com/rss/
read: False
title: Beginner's Guide to System Updates in Linux Mint
link: https://itsfoss.com/linux-mint-update/
categories: Linux Mint
description:
New to Linux Mint? It has an excellent system updater tool. Learn about this tool and the best practices you should follow.

content:
<img src="https://itsfoss.com/content/images/2023/05/system-updates-in-linux-mint.png" alt="Beginner&apos;s Guide to System Updates in Linux Mint"><p>Keeping your system updated is essential for any operating system. Linux Mint is no different.</p><p>Linux Mint has a robust update system. It provides timely security patches for the kernel and other software packages. That&apos;s not it. You also get updates on the applications you installed using the Software Manager tool.</p><p>Basically, apart from security patches, your system receives new features, bug fixes, improved hardware support, performance enhancement, and a lot more.</p><p>While the Updater tool is straightforward, it may still seem overwhelming if you are new to Linux Mint. </p><p>This is why we at It&apos;s FOSS came up with this beginner&apos;s guide idea. It will give you some ideas about using this tool and the best practices you should follow.</p><p>So in this guide, I will explain how you can perform the system updates in Linux Mint and will walk you through the following:</p><ul><li>Create backups using Timeshift <strong>(optional yet recommended)</strong></li><li>Prioritizing and installing updates (know the different types of updates)</li><li>Restore from the Timeshift backup (if the update messed up the system)</li><li>Adding the fastest mirrors<strong> (</strong>optional but good to know<strong>)</strong></li></ul><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4CB;</div><div class="kg-callout-text">While you can use the apt command, the focus of this tutorial is on the GUI tool.</div></div><h2 id="linux-mint-update-manager">Linux Mint Update Manager</h2><p>When there are updates available for your system, you&apos;ll notice a &apos;secure&apos; symbol with red dot on it in the bottom right corner of the screen (notification area).</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/05/linux-mint-update-notification.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="658" height="246" srcset="https://itsfoss.com/content/images/size/w600/2023/05/linux-mint-update-notification.png 600w, https://itsfoss.com/content/images/2023/05/linux-mint-update-notification.png 658w"><figcaption>Linux Mint system update notification</figcaption></figure><p>If you click on it, you&apos;ll see the available system updates. By default, all updates are selected to be installed. You can deselect some (if you know what you are doing).</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/05/linux-mint-update-manager.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="812" height="610" srcset="https://itsfoss.com/content/images/size/w600/2023/05/linux-mint-update-manager.png 600w, https://itsfoss.com/content/images/2023/05/linux-mint-update-manager.png 812w" sizes="(min-width: 720px) 720px"><figcaption>Linux Mint Update Manager</figcaption></figure><p>Before you learn more about the types of updates and their installation, I would like to talk about backups.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4CB;</div><div class="kg-callout-text">This article is about updating the Linux Mint system. It is not about <a href="https://itsfoss.com/upgrade-linux-mint-version/">upgrading Mint to a newer version</a>. That is a different topic.</div></div><h2 id="create-timeshift-backup-optional-yet-recommended">Create Timeshift backup (optional yet recommended)</h2><p>Linux Mint is a stable distro as it is based on the long-term support version of Ubuntu. Updates you install will rarely create problems.</p><p>Rarely but possible. Say you forced power off the system while it was installing package updates. It is possible that it may mess up the perfectly working system. </p><p>Precaution is better than cure. So I recommend making regular backups. If nothing else, make a backup before applying updates.</p><p>Linux Mint comes preinstalled with <a href="https://itsfoss.com/backup-restore-linux-timeshift/">Timeshift backup application</a>. It is a third-party tool but is highly recommended by Mint developers. </p><p>To create a backup, start the Timeshift from the system menu:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/open-timeshift-in-Linux-Mint.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="847" height="591" srcset="https://itsfoss.com/content/images/size/w600/2023/05/open-timeshift-in-Linux-Mint.png 600w, https://itsfoss.com/content/images/2023/05/open-timeshift-in-Linux-Mint.png 847w" sizes="(min-width: 720px) 720px"></figure><p>If you haven&apos;t used it before, it will ask you several questions before allowing you to create a backup.</p><p>First, it will ask you which type of backup you want to create. There are two options: RSYNC and BTRFS.</p><p>RSYNC is based upon hard links and can work on any filesystem, whereas BTRFS is only used for the <a href="https://itsfoss.com/btrfs/">BTRFS filesystem</a>.</p><p>If you don&apos;t know what to choose, <strong>select RSYNC</strong> as it would work just fine:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/Choose-type-of-snapshot-in-timeshift.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="1111" height="674" srcset="https://itsfoss.com/content/images/size/w600/2023/05/Choose-type-of-snapshot-in-timeshift.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/Choose-type-of-snapshot-in-timeshift.png 1000w, https://itsfoss.com/content/images/2023/05/Choose-type-of-snapshot-in-timeshift.png 1111w" sizes="(min-width: 720px) 720px"></figure><p>Next, it will ask you where you want to store the snapshots. </p><p>If you have multiple drives, it would show multiple options but for most users, there will be a single option. In my case, it was vda3:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/select-location-to-store-snapshots.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="1111" height="674" srcset="https://itsfoss.com/content/images/size/w600/2023/05/select-location-to-store-snapshots.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/select-location-to-store-snapshots.png 1000w, https://itsfoss.com/content/images/2023/05/select-location-to-store-snapshots.png 1111w" sizes="(min-width: 720px) 720px"></figure><p>Now, it will ask you to choose the directories that need backing up. </p><p>By default, it will exclude all the files inside the home directory and I recommend you do the same.</p><div class="kg-card kg-callout-card kg-callout-card-red"><div class="kg-callout-emoji">&#x1F6A7;</div><div class="kg-callout-text">Timeshift is primarily used for backing up system settings. Using it to backup personal files in home directory will take up a huge amount of disk space and is impractical. Use DejaDup for personal file backups on an external disk.</div></div><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://itsfoss.com/content/images/2023/05/select-directories-that-needs-to-be-included-in-the-backup-1.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="876" height="662" srcset="https://itsfoss.com/content/images/size/w600/2023/05/select-directories-that-needs-to-be-included-in-the-backup-1.png 600w, https://itsfoss.com/content/images/2023/05/select-directories-that-needs-to-be-included-in-the-backup-1.png 876w" sizes="(min-width: 720px) 720px"><figcaption>Exclude home directories</figcaption></figure><p>Once done, it will show you a page informing the setup is complete.</p><p>Now, you can create a backup by clicking on the <code>Create</code> button:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/click-on-create-snapshot.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="968" height="542" srcset="https://itsfoss.com/content/images/size/w600/2023/05/click-on-create-snapshot.png 600w, https://itsfoss.com/content/images/2023/05/click-on-create-snapshot.png 968w" sizes="(min-width: 720px) 720px"></figure><p>It may take a while, based on your choices during the setup.</p><p>Once done, the snapshot will reflect in the Timeshift:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/Listing-created-backup-in-Timeshift.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="968" height="542" srcset="https://itsfoss.com/content/images/size/w600/2023/05/Listing-created-backup-in-Timeshift.png 600w, https://itsfoss.com/content/images/2023/05/Listing-created-backup-in-Timeshift.png 968w" sizes="(min-width: 720px) 720px"></figure><p>Great! So now you have created the backup. Let&apos;s go back to the system updater.</p><h2 id="installing-updates">Installing updates </h2><p>First, open the update manager from the system menu:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/open-update-manager-in-Linux-Mint.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="847" height="593" srcset="https://itsfoss.com/content/images/size/w600/2023/05/open-update-manager-in-Linux-Mint.png 600w, https://itsfoss.com/content/images/2023/05/open-update-manager-in-Linux-Mint.png 847w" sizes="(min-width: 720px) 720px"></figure><p>Here, you will find a list of packages that need to be updated and all of them will be selected by default (I would recommend you go with the same).</p><p>But if you want, you can uncheck software updates or kernel updates if you want to stick to that specific version only.</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/List-outdated-packages-in-Linux-Mint.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="937" height="612" srcset="https://itsfoss.com/content/images/size/w600/2023/05/List-outdated-packages-in-Linux-Mint.png 600w, https://itsfoss.com/content/images/2023/05/List-outdated-packages-in-Linux-Mint.png 937w" sizes="(min-width: 720px) 720px"></figure><p>To make things simple, in Linux Mint, the updates are divided into three categories:</p><ul><li>Security patches <strong>(Highest priority and indicated by</strong> <code><strong>&#x1F6E1;</strong></code><strong> ): </strong>You are supposed to install the security patches immediately as it is supposed to save you from your system&apos;s current vulnerability.</li><li>Kernel updates <strong>(Medium priority and indicated by </strong><code>&#x1F5F2;</code><strong>):</strong> New kernel brings hardware support for new hardware, bug fixes for your current kernel, and may also have performance improvement.</li><li>Software updates <strong>(Lowest priority and indicated by </strong><code>&#x2B06;</code><strong>): </strong>These updates are meant to roll out new features and bug fixes in your software.</li></ul><p><strong>Again, I will advise you to go with the defaults!</strong></p><p>Once you are done selecting, click on the <code>Install Updates</code> button, enter the password and it will start the installation of new packages:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/Update-Linux-Mint-using-Update-Manager.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="1458" height="814" srcset="https://itsfoss.com/content/images/size/w600/2023/05/Update-Linux-Mint-using-Update-Manager.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/Update-Linux-Mint-using-Update-Manager.png 1000w, https://itsfoss.com/content/images/2023/05/Update-Linux-Mint-using-Update-Manager.png 1458w" sizes="(min-width: 720px) 720px"></figure><p>That&apos;s it! The system is updated!</p><h2 id="rollback-if-the-system-crashed-after-the-update-backup-required">Rollback if the system crashed after the update (Backup required)</h2><p>If you can access the GUI, you can easily roll back to the previous state using the Timeshift backup you had created earlier.</p><p>First, open the Timeshift from the system menu and it will show the created snapshots backup you took in the past:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/List-available-snapshots-in-timeshift.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="980" height="604" srcset="https://itsfoss.com/content/images/size/w600/2023/05/List-available-snapshots-in-timeshift.png 600w, https://itsfoss.com/content/images/2023/05/List-available-snapshots-in-timeshift.png 980w" sizes="(min-width: 720px) 720px"></figure><p>To restore to the previous state, select the snapshot and click on the <code>Restore</code> button:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/select-and-restore-the-snapshot.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="980" height="617" srcset="https://itsfoss.com/content/images/size/w600/2023/05/select-and-restore-the-snapshot.png 600w, https://itsfoss.com/content/images/2023/05/select-and-restore-the-snapshot.png 980w" sizes="(min-width: 720px) 720px"></figure><p>Next, it will ask you to select the targeted devices. I would recommend going with the selected options:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/select-target-device-to-restore-to.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="903" height="572" srcset="https://itsfoss.com/content/images/size/w600/2023/05/select-target-device-to-restore-to.png 600w, https://itsfoss.com/content/images/2023/05/select-target-device-to-restore-to.png 903w" sizes="(min-width: 720px) 720px"></figure><p>Click on the next button and it will start the restoration process!</p><div class="kg-card kg-callout-card kg-callout-card-green"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">If your system does not boot, you can use a live Linux Mint USB, boot from it and install Timeshift in the live environment. Run Timeshift and it should detect the Timeshift backups present on the hard disk. You can restore it from here.</div></div><h2 id="add-the-fastest-mirrors-to-speed-up-the-download-optional">Add the fastest mirrors to speed up the download (optional)</h2><p>Selecting the fastest mirror is nothing but choosing the closest server to you, which will eventually reduce the latency and get you a faster experience.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4CB;</div><div class="kg-callout-text">That&apos;s how it should work in theory. But sometimes, sticking to the main server is more reliable because the closest server may not always perform the best continuously. This is why this is an optional step.</div></div><p>To add the fastest mirror, first, open the software sources from the system menu and enter the password when asked:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/Open-software-sources-in-Linux-Mint-1.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="1329" height="798" srcset="https://itsfoss.com/content/images/size/w600/2023/05/Open-software-sources-in-Linux-Mint-1.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/Open-software-sources-in-Linux-Mint-1.png 1000w, https://itsfoss.com/content/images/2023/05/Open-software-sources-in-Linux-Mint-1.png 1329w" sizes="(min-width: 720px) 720px"></figure><p>Once you do that, you&apos;d have to do the following:</p><ol><li>Select the first mirror (labeled as Main)</li><li>Wait for some seconds and choose the fastest mirror</li><li>Click on apply </li><li>Now, choose the second mirror (labeled as Base)</li><li>Choose the fastest mirror and click on the apply button</li></ol><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/Select-fastest-mirrors-to-download-packages-faster-in-Linux-Mint.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="1739" height="1155" srcset="https://itsfoss.com/content/images/size/w600/2023/05/Select-fastest-mirrors-to-download-packages-faster-in-Linux-Mint.png 600w, https://itsfoss.com/content/images/size/w1000/2023/05/Select-fastest-mirrors-to-download-packages-faster-in-Linux-Mint.png 1000w, https://itsfoss.com/content/images/size/w1600/2023/05/Select-fastest-mirrors-to-download-packages-faster-in-Linux-Mint.png 1600w, https://itsfoss.com/content/images/2023/05/Select-fastest-mirrors-to-download-packages-faster-in-Linux-Mint.png 1739w" sizes="(min-width: 720px) 720px"></figure><p>Once done, it will show the message saying, &quot;Your configuration changed, click OK to update your APT cache.&quot; </p><p>Click on the OK button and it will start updating the cache and will activate the fastest mirrors you chose recently:</p><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/Enable-the-fastest-mirrors-for-Linux-Mint.png" class="kg-image" alt="Beginner&apos;s Guide to System Updates in Linux Mint" loading="lazy" width="822" height="567" srcset="https://itsfoss.com/content/images/size/w600/2023/05/Enable-the-fastest-mirrors-for-Linux-Mint.png 600w, https://itsfoss.com/content/images/2023/05/Enable-the-fastest-mirrors-for-Linux-Mint.png 822w" sizes="(min-width: 720px) 720px"></figure><p>That&apos;s it! </p><h2 id="update-everything-at-once-for-intermediate-to-advanced-users">Update everything at once (for intermediate to advanced users)</h2><p>The Update Manager works on the deb packages through the apt command line utility.</p><p>But Linux packages are also fragmented. There are Snap, Flatpaks and AppImages. Using multiple package managers means updating each type of package manually.</p><p>This is where you can use a terminal utility called Topgrade which will update everything at once. Sounds interesting? Here&apos;s the detailed guide:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/topgrade/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Upgrade Various Kinds of Packages in Linux at Once With Topgrade</div><div class="kg-bookmark-description">Here&#x2019;s how you can upgrade various packages in Linux at once, using a nifty tool i.e topgrade.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="Beginner&apos;s Guide to System Updates in Linux Mint"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Sagar Sharma</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2022/09/topgrade-cli-tool-ubuntu.png" alt="Beginner&apos;s Guide to System Updates in Linux Mint"></div></a></figure><p>Now, you should have a good idea about the system update process in Linux Mint.</p><p><em>&#x1F5E8; Please let me know if you learned something new in this tutorial. Also, if I missed something you think I should have mentioned, please mention it in the comments.</em></p>


id: https://itsfoss.com/milestone-rust-program/
feed_url: https://itsfoss.com/rss/
read: False
title: Rust Basics Series #8: Write the Milestone Rust Program
link: https://itsfoss.com/milestone-rust-program/
categories: Rust
description:
In the final chapter of the Rust Basics Series, recall the concepts you learned and write a somewhat complex Rust program.

content:
<img src="https://itsfoss.com/content/images/2023/05/sample-program-in-rust.png" alt="Rust Basics Series #8: Write the Milestone Rust Program"><p>So long, we have covered a handful of fundamental topics about programming in Rust. Some of these topics are <a href="https://itsfoss.com/rust-variables">variables, mutability, constants</a>, <a href="https://itsfoss.com/rust-data-types-01">data types</a>, <a href="https://itsfoss.com/rust-functions">functions</a>, <a href="https://itsfoss.com/rust-conditional-statements">if-else statements</a> and <a href="https://itsfoss.com/rust-loops">loops</a>.</p><p>In the final chapter of the Rust Basics series, let us now write a program in Rust that uses these topics so their real-world use can be better understood. Let&apos;s work on a <em>relatively simple</em> program to order fruits from a fruit mart.</p><h2 id="the-basic-structure-of-our-program">The basic structure of our program</h2><p>Let us first start by greeting the user and informing them about how to interact with the program.</p><!--kg-card-begin: html--><section class="line-numbers"><pre class="language-rust"><code>fn main() {
    println!(&quot;Welcome to the fruit mart!&quot;);
    println!(&quot;Please select a fruit to buy.\n&quot;);
    
    println!(&quot;\nAvailable fruits to buy: Apple, Banana, Orange, Mango, Grapes&quot;);
    println!(&quot;Once you are done purchasing, type in &apos;quit&apos; or &apos;q&apos;.\n&quot;);
}
</code></pre></section><!--kg-card-end: html--><h2 id="getting-user-input">Getting user input</h2><p>The above code is very simple. At the moment, you do not know what to do next because you do not know what the user wants to do next. </p><p>So let&apos;s add code that accepts the user input and stores it somewhere to parse it later, and take the appropriate action based on the user input.</p><!--kg-card-begin: html--><section class="line-numbers"><pre class="language-rust"><code>use std::io;

fn main() {
    println!(&quot;Welcome to the fruit mart!&quot;);
    println!(&quot;Plase select a fruit to buy.\n&quot;);
    
    println!(&quot;Available fruits to buy: Apple, Banana, Orange, Mango, Grapes&quot;);
    println!(&quot;Once you are done purchasing, type in &apos;quit&apos; or &apos;q&apos;.\n&quot;);
    
    // get user input
    let mut user_input = String::new();
    io::stdin()
        .read_line(&amp;mut user_input)
        .expect(&quot;Unable to read user input.&quot;);
}</code></pre></section><!--kg-card-end: html--><p>There are three new elements that I need to tell you about. So let&apos;s take a shallow dive into each of these new elements.</p><h3 id="1-understanding-the-use-keyword">1. Understanding the &apos;use&apos; keyword</h3><p>On the first line of this program, you might have noticed the use (haha!) of a new keyword called <code>use</code>. The <code>use</code> keyword in Rust is similar to the <code>#include</code> directive in C/C++ and the <code>import</code> keyword in Python. Using the <code>use</code> keyword, we &quot;import&quot; the <code>io</code> (input output) module from the Rust standard library <code>std</code>.</p><p>You might be wondering why importing the <em>io</em> module was necessary when you could use the <code>println</code> macro to <em>output</em> something to STDOUT. Rust&apos;s standard library has a module called <code>prelude</code> that gets automatically included. The prelude module contains all the commonly used functions that a Rust programmer might need to use, like the <code>println</code> macro. (You can read more about <code>std::prelude</code> module <a href="https://doc.rust-lang.org/std/prelude/index.html?ref=itsfoss.com">here</a>.)</p><p>The <code>io</code> module from the Rust standard library <code>std</code> is necessary to accept user input. Hence, a <code>use</code> statement was added to the 1<sup>st</sup> line of this program.</p><h3 id="2-understanding-the-string-type-in-rust">2. Understanding the String type in Rust</h3><p>On line 11, I create a new mutable variable called <code>user_input</code> that, as its name suggests, will be used to store the user input down the road. But on the same line, you might have noticed something new (haha, again!).</p><p>Instead of declaring an empty string using double quotes with nothing between them (<code>&quot;&quot;</code>), I used the <code>String::new()</code> function to create a new, empty string.</p><p>The difference between using <code>&quot;&quot;</code> and <code>String::new()</code> is something that you will learn later in the Rust series. For now, know that, with the use of the <code>String::new()</code> function, you can create a String that is <strong><em>mutable</em></strong> and lives on the <strong><em>heap</em></strong>.</p><p>If I had created a string with <code>&quot;&quot;</code>, I would get something called a &quot;String slice&quot;. The String slice&apos;s contents are on the heap too, but the string itself is <strong>immutable</strong>. So, even if the variable itself is mutable, the actual data stored as a string is immutable and needs to be <em>overwritten</em> instead of modification.</p><h3 id="3-accepting-the-user-input">3. Accepting the user input</h3><p>On line 12, I call the <code>stdin()</code> function that is part of <code>std::io</code>. If I had not included the <code>std::io</code> module in the beginning of this program, this line would be <code>std::io::stdin()</code> instead of <code>io::stdin()</code>.</p><p>The <code>stdin()</code> function returns an input handle of the terminal. The <code>read_line()</code> function grabs onto that input handle and, as its name suggests, reads a line of input. This function takes in a reference to a mutable string. So, I pass in the <code>user_input</code> variable by preceding it with <code>&amp;mut</code>, making it a mutable reference.</p><div class="kg-card kg-callout-card kg-callout-card-red"><div class="kg-callout-emoji">&#x26A0;&#xFE0F;</div><div class="kg-callout-text">The <code>read_line()</code> function has a <em>quirk</em>. This function stops reading the input <strong><em>after</em></strong> the user presses the Enter/Return key. Therefore, this function also records that newline character (<code>\n</code>) and a trailing newline is stored in the mutable string variable that you passed in.<br><br>So please, either account for this trailing newline when dealing with it or remove it.</div></div><h2 id="a-primer-on-error-handling-in-rust">A primer on error handling in Rust</h2><p>Finally, there is an <code>expect()</code> function at the end of this chain. Let&apos;s divert a bit to understand why this function is called.</p><p>The <code>read_line()</code> function returns an Enum called <code>Result</code>. I will get into Enums in Rust later on but know that Enums are very powerful in Rust. This <code>Result</code> Enum returns a value that informs the programmer if an error occurred when the user input was being read.</p><p>The <code>expect()</code> function takes this <code>Result</code> Enum and checks if the result was okay or not. If no error occurs, nothing happens. But if an error did occur, the message that I passed in (<code>&quot;Unable to read user input.&quot;</code>) will be printed to STDERR and <em>the program will exit</em>.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4CB;</div><div class="kg-callout-text"><strong>All the new concepts that I have briefly touched on will be covered in a new Rust series later.</strong></div></div><p>Now that you hopefully understand these newer concepts, let&apos;s add more code to increase the functionality.</p><h2 id="validating-user-input">Validating user input</h2><p>I surely accepted the user&apos;s input but I have not validated it. In the current context, validation means that the user inputs some &quot;command&quot; that <em>we expect to handle</em>. At the moment, the commands are of two &quot;categories&quot;.</p><p>The first category of the command that the user can input is the name of fruit that the user wishes to buy. The second command conveys that the user wants to quit the program.</p><p>So our task now is to make sure that the input from the user does not diverge from the <em>acceptable commands</em>.</p><!--kg-card-begin: html--><section class="line-numbers"><pre class="language-rust"><code>use std::io;

fn main() {
    println!(&quot;Welcome to the fruit mart!&quot;);
    println!(&quot;Plase select a fruit to buy.\n&quot;);
    
    println!(&quot;Available fruits to buy: Apple, Banana, Orange, Mango, Grapes&quot;);
    println!(&quot;Once you are done purchasing, type in &apos;quit&apos; or &apos;q&apos;.\n&quot;);
    
    // get user input
    let mut user_input = String::new();
    io::stdin()
        .read_line(&amp;mut user_input)
        .expect(&quot;Unable to read user input.&quot;);
        
    // validate user input
    let valid_inputs = [&quot;apple&quot;, &quot;banana&quot;, &quot;orange&quot;, &quot;mango&quot;, &quot;grapes&quot;, &quot;quit&quot;, &quot;q&quot;];
    user_input = user_input.trim().to_lowercase();
    let mut input_error = true;
    for input in valid_inputs {
        if input == user_input {
            input_error = false;
            break;
        }
    }
}</code></pre></section><!--kg-card-end: html--><p>To make validation easier, I created an array of string slices called <code>valid_inputs</code> (on line 17). This array contains the names of all the fruits that are available for purchase, along with the string slices <code>q</code> and <code>quit</code> to let the user convey if they wish to quit.</p><p>The user may not know how we expect the input to be. The user may type &quot;Apple&quot; or &quot;apple&quot; or &quot;APPLE&quot; to tell that they intend to purchase Apples. It is our job to handle this correctly. </p><p>On line 18, I trim the trailing newline from the <code>user_input</code> string by calling the <code>trim()</code> function on it. And to handle the previous problem, I convert all the characters to lowercase with the <code>to_lowercase()</code> function so that &quot;Apple&quot;, &quot;apple&quot; and &quot;APPLE&quot; all end up as &quot;apple&quot;.</p><p>Now on line 19, I create a mutable boolean variable called <code>input_error</code> with the initial value of <code>true</code>. Later on line 20, I create a <code>for</code> loop that iterates over all the elements (string slices) of the <code>valid_inputs</code> array and stores the iterated pattern inside the <code>input</code> variable.</p><p>Inside the loop, I check if the user input is equal to one of the valid strings, and if it is, I set the value of <code>input_error</code> boolean to <code>false</code> and break out of the for loop.</p><h2 id="dealing-with-invalid-input">Dealing with invalid input</h2><p>Now is time to deal with an invalid input. This can be done by moving some of the code inside an infinite loop and <em>continuing</em> said infinite loop if the user gives an invalid input.</p><!--kg-card-begin: html--><section class="line-numbers"><pre class="language-rust"><code>use std::io;

fn main() {
    println!(&quot;Welcome to the fruit mart!&quot;);
    println!(&quot;Plase select a fruit to buy.\n&quot;);
    
    let valid_inputs = [&quot;apple&quot;, &quot;banana&quot;, &quot;orange&quot;, &quot;mango&quot;, &quot;grapes&quot;, &quot;quit&quot;, &quot;q&quot;];
    
    &apos;mart: loop {
        let mut user_input = String::new();

        println!(&quot;\nAvailable fruits to buy: Apple, Banana, Orange, Mango, Grapes&quot;);
        println!(&quot;Once you are done purchasing, type in &apos;quit&apos; or &apos;q&apos;.\n&quot;);

        // get user input
        io::stdin()
            .read_line(&amp;mut user_input)
            .expect(&quot;Unable to read user input.&quot;);
        user_input = user_input.trim().to_lowercase();

        // validate user input
        let mut input_error = true;
        for input in valid_inputs {
            if input == user_input {
                input_error = false;
                break;
            }
        }

        // handle invalid input
        if input_error {
            println!(&quot;ERROR: please enter a valid input&quot;);
            continue &apos;mart;
        }
    }
}</code></pre></section><!--kg-card-end: html--><p>Here, I moved some of the code inside the loop and re-structured the code a bit to better deal with this introduction of the loop. Inside the loop, on line 31, I <code>continue</code> the <code>mart</code> loop if the user entered an invalid string.</p><h2 id="reacting-to-users-input">Reacting to user&apos;s input</h2><p>Now that everything else is handled, time to actually write code about purchasing fruits from the fruit market and quit when the user wishes.</p><p>Since you also know which fruit the user chose, let&apos;s ask how much they intend to purchase and inform them about the format of entering the quantity.</p><!--kg-card-begin: html--><section class="line-numbers"><pre class="language-rust"><code>use std::io;

fn main() {
    println!(&quot;Welcome to the fruit mart!&quot;);
    println!(&quot;Plase select a fruit to buy.\n&quot;);
    
    let valid_inputs = [&quot;apple&quot;, &quot;banana&quot;, &quot;orange&quot;, &quot;mango&quot;, &quot;grapes&quot;, &quot;quit&quot;, &quot;q&quot;];
    
    &apos;mart: loop {
        let mut user_input = String::new();
        let mut quantity = String::new();

        println!(&quot;\nAvailable fruits to buy: Apple, Banana, Orange, Mango, Grapes&quot;);
        println!(&quot;Once you are done purchasing, type in &apos;quit&apos; or &apos;q&apos;.\n&quot;);

        // get user input
        io::stdin()
            .read_line(&amp;mut user_input)
            .expect(&quot;Unable to read user input.&quot;);
        user_input = user_input.trim().to_lowercase();

        // validate user input
        let mut input_error = true;
        for input in valid_inputs {
            if input == user_input {
                input_error = false;
                break;
            }
        }

        // handle invalid input
        if input_error {
            println!(&quot;ERROR: please enter a valid input&quot;);
            continue &apos;mart;
        }
        
        // quit if user wants to
        if user_input == &quot;q&quot; || user_input == &quot;quit&quot; {
            break &apos;mart;
        }

        // get quantity
        println!(
            &quot;\nYou choose to buy \&quot;{}\&quot;. Please enter the quantity in Kilograms.
(Quantity of 1Kg 500g should be entered as &apos;1.5&apos;.)&quot;,
            user_input
        );
        io::stdin()
            .read_line(&amp;mut quantity)
            .expect(&quot;Unable to read user input.&quot;);
    }
}</code></pre></section><!--kg-card-end: html--><p>On line 11, I declare another mutable variable with an empty string and on line 48, I accept input from the user, but this time the quantity of said fruit that the user intends to buy.</p><h3 id="parsing-the-quantity">Parsing the quantity</h3><p>I just added code that takes in quantity in a known format, but that data is stored as a string. I need to extract the float out of that. Lucky for us, it can be done with the <code>parse()</code> method.</p><p>Just like the <code>read_line()</code> method, the <code>parse()</code> method returns the <code>Result</code> Enum. The reason why the <code>parse()</code> method returns the <code>Result</code> Enum can be easily understood with what we are trying to achieve.</p><p>I am accepting a string from users and trying to convert it to a float. A float has two possible values in it. One is the floating point itself and the second is a decimal number.</p><p>While a String can have alphabets, a float does not. So, if the user entered something <em>other</em> than the [optional] floating point and the decimal number(s), the <code>parse()</code> function will return an error.</p><p>Hence, this error needs to be handled too. We will use the <code>expect()</code> function to deal with this.</p><!--kg-card-begin: html--><section class="line-numbers"><pre class="language-rust"><code>use std::io;

fn main() {
    println!(&quot;Welcome to the fruit mart!&quot;);
    println!(&quot;Plase select a fruit to buy.\n&quot;);
    
    let valid_inputs = [&quot;apple&quot;, &quot;banana&quot;, &quot;orange&quot;, &quot;mango&quot;, &quot;grapes&quot;, &quot;quit&quot;, &quot;q&quot;];
    
    &apos;mart: loop {
        let mut user_input = String::new();
        let mut quantity = String::new();

        println!(&quot;\nAvailable fruits to buy: Apple, Banana, Orange, Mango, Grapes&quot;);
        println!(&quot;Once you are done purchasing, type in &apos;quit&apos; or &apos;q&apos;.\n&quot;);

        // get user input
        io::stdin()
            .read_line(&amp;mut user_input)
            .expect(&quot;Unable to read user input.&quot;);
        user_input = user_input.trim().to_lowercase();

        // validate user input
        let mut input_error = true;
        for input in valid_inputs {
            if input == user_input {
                input_error = false;
                break;
            }
        }

        // handle invalid input
        if input_error {
            println!(&quot;ERROR: please enter a valid input&quot;);
            continue &apos;mart;
        }
        
        // quit if user wants to
        if user_input == &quot;q&quot; || user_input == &quot;quit&quot; {
            break &apos;mart;
        }

        // get quantity
        println!(
            &quot;\nYou choose to buy \&quot;{}\&quot;. Please enter the quantity in Kilograms.
(Quantity of 1Kg 500g should be entered as &apos;1.5&apos;.)&quot;,
            user_input
        );
        io::stdin()
            .read_line(&amp;mut quantity)
            .expect(&quot;Unable to read user input.&quot;);

        let quantity: f64 = quantity
            .trim()
            .parse()
            .expect(&quot;Please enter a valid quantity.&quot;);

    }
}</code></pre></section><!--kg-card-end: html--><p>As you can see, I store the parsed float in the variable <code>quantity</code> by making use of variable shadowing. To inform the <code>parse()</code> function that the intention is to parse the string into <code>f64</code>, I manually annotate the type of the variable <code>quantity</code> as <code>f64</code>.</p><p>Now, the <code>parse()</code> function will parse the String and return a <code>f64</code> or an error, that the <code>expect()</code> function will deal with.</p><h2 id="calculating-the-price-final-touch-ups">Calculating the price + final touch ups</h2><p>Now that we know which fruit the user wants to buy and its quantity, it is time to perform those calculations now and let the user know about the results/total.</p><p>For the sake of realness, I will have two prices for each fruit. The first price is the retail price, which we pay to fruit vendors when we buy in small quantities. The second price for fruit will be the wholesale price, when someone buys fruits in bulk.</p><p>The wholesale price will be determined if the order is greater than the minimum order quantity to be considered as a wholesale purchase. This minimum order quantity varies for every fruit. The prices for each fruit will be in Rupees per Kilogram.</p><p>With that logic in mind, down below is the program in its final form.</p><!--kg-card-begin: html--><section class="line-numbers"><pre class="language-rust"><code>use std::io;

const APPLE_RETAIL_PER_KG: f64 = 60.0;
const APPLE_WHOLESALE_PER_KG: f64 = 45.0;

const BANANA_RETAIL_PER_KG: f64 = 20.0;
const BANANA_WHOLESALE_PER_KG: f64 = 15.0;

const ORANGE_RETAIL_PER_KG: f64 = 100.0;
const ORANGE_WHOLESALE_PER_KG: f64 = 80.0;

const MANGO_RETAIL_PER_KG: f64 = 60.0;
const MANGO_WHOLESALE_PER_KG: f64 = 55.0;

const GRAPES_RETAIL_PER_KG: f64 = 120.0;
const GRAPES_WHOLESALE_PER_KG: f64 = 100.0;

fn main() {
    println!(&quot;Welcome to the fruit mart!&quot;);
    println!(&quot;Please select a fruit to buy.\n&quot;);

    let mut total: f64 = 0.0;
    let valid_inputs = [&quot;apple&quot;, &quot;banana&quot;, &quot;orange&quot;, &quot;mango&quot;, &quot;grapes&quot;, &quot;quit&quot;, &quot;q&quot;];

    &apos;mart: loop {
        let mut user_input = String::new();
        let mut quantity = String::new();

        println!(&quot;\nAvailable fruits to buy: Apple, Banana, Orange, Mango, Grapes&quot;);
        println!(&quot;Once you are done purchasing, type in &apos;quit&apos; or &apos;q&apos;.\n&quot;);

        // get user input
        io::stdin()
            .read_line(&amp;mut user_input)
            .expect(&quot;Unable to read user input.&quot;);
        user_input = user_input.trim().to_lowercase();

        // validate user input
        let mut input_error = true;
        for input in valid_inputs {
            if input == user_input {
                input_error = false;
                break;
            }
        }

        // handle invalid input
        if input_error {
            println!(&quot;ERROR: please enter a valid input&quot;);
            continue &apos;mart;
        }

        // quit if user wants to
        if user_input == &quot;q&quot; || user_input == &quot;quit&quot; {
            break &apos;mart;
        }

        // get quantity
        println!(
            &quot;\nYou choose to buy \&quot;{}\&quot;. Please enter the quantity in Kilograms.
(Quantity of 1Kg 500g should be entered as &apos;1.5&apos;.)&quot;,
            user_input
        );
        io::stdin()
            .read_line(&amp;mut quantity)
            .expect(&quot;Unable to read user input.&quot;);
        let quantity: f64 = quantity
            .trim()
            .parse()
            .expect(&quot;Please enter a valid quantity.&quot;);

        total += calc_price(quantity, user_input);
    }

    println!(&quot;\n\nYour total is {} Rupees.&quot;, total);
}

fn calc_price(quantity: f64, fruit: String) -&gt; f64 {
    if fruit == &quot;apple&quot; {
        price_apple(quantity)
    } else if fruit == &quot;banana&quot; {
        price_banana(quantity)
    } else if fruit == &quot;orange&quot; {
        price_orange(quantity)
    } else if fruit == &quot;mango&quot; {
        price_mango(quantity)
    } else {
        price_grapes(quantity)
    }
}

fn price_apple(quantity: f64) -&gt; f64 {
    if quantity &gt; 7.0 {
        quantity * APPLE_WHOLESALE_PER_KG
    } else {
        quantity * APPLE_RETAIL_PER_KG
    }
}

fn price_banana(quantity: f64) -&gt; f64 {
    if quantity &gt; 4.0 {
        quantity * BANANA_WHOLESALE_PER_KG
    } else {
        quantity * BANANA_RETAIL_PER_KG
    }
}

fn price_orange(quantity: f64) -&gt; f64 {
    if quantity &gt; 3.5 {
        quantity * ORANGE_WHOLESALE_PER_KG
    } else {
        quantity * ORANGE_RETAIL_PER_KG
    }
}

fn price_mango(quantity: f64) -&gt; f64 {
    if quantity &gt; 5.0 {
        quantity * MANGO_WHOLESALE_PER_KG
    } else {
        quantity * MANGO_RETAIL_PER_KG
    }
}

fn price_grapes(quantity: f64) -&gt; f64 {
    if quantity &gt; 2.0 {
        quantity * GRAPES_WHOLESALE_PER_KG
    } else {
        quantity * GRAPES_RETAIL_PER_KG
    }
}
</code></pre></section><!--kg-card-end: html--><p>Compared to the previous iteration, I made some changes...</p><p>The fruit prices may fluctuate, but for the lifecycle of our program, these prices will not fluctuate. So I store the retail and wholesale prices of each fruit in constants. I define these constants outside the <code>main()</code> functions (i.e. globally) because I will not calculate the prices for each fruit inside the <code>main()</code> function. These constants are declared as <code>f64</code> because they will be multiplied with <code>quantity</code> which is <code>f64</code>. Recall, Rust doesn&apos;t have implicit type casting ;)</p><p>After storing the fruit name and the quantity that the user wants to purchase, the <code>calc_price()</code> function is called to calculate the price of said fruit in the user provided quantity. This function takes in the fruit name and the quantity as its parameters and returns the price as <code>f64</code>.</p><p>Looking inside the <code>calc_price()</code> function, it is what many people call a wrapper function. It is called a wrapper function because it calls other functions to do its dirty laundry.</p><p>Since each fruit has a different minimum order quantity to be considered as a wholesale purchase, to ensure that the code can be maintained easily in the future, the actual price calculation for each fruit is split in separate functions for each individual fruit.</p><p>So, all that the <code>calc_price()</code> function does is to determine which fruit was chosen and call the respective function for chosen fruit. These fruit-specific functions accept only one argument: quantity. And these fruit-specific functions return the price as <code>f64</code>.</p><p>Now, <code>price_*()</code> functions do only one thing. They check if the order quantity is greater than the minimum order quantity to be considered as a wholesale purchase for said fruit. If it is such, <code>quantity</code> is multiplied by the fruit&apos;s wholesale price per Kilogram. Otherwise, <code>quantity</code> is multiplied by the fruit&apos;s retail price per Kilogram.</p><p>Since the line with multiplication does not have a semi-colon at the end, the function returns the resulting product.</p><p>If you look closely at the function calls of the fruit-specific functions in the <code>calc_price()</code> function, these function calls do not have a semi-colon at the end. Meaning, the value returned by the <code>price_*()</code> functions will be returned by the <code>calc_price()</code> function to its caller.</p><p>And there is only one caller for <code>calc_price()</code> function. This is at the end of the <code>mart</code> loop where the returned value from this function is what is used to increment the value of <code>total</code>.</p><p>Finally, when the <code>mart</code> loop ends (when the user inputs <code>q</code> or <code>quit</code>), the value stored inside the variable <code>total</code> gets printed to the screen and the user is informed about the price he/she has to pay.</p><h2 id="conclusion">Conclusion</h2><p>With this post, I have used all the previously explained topics about the Rust programming language to create a simple program that still somewhat demonstrates a real-world problem.</p><p>Now, the code that I wrote can definitely be written in a more idiomatic way that best uses Rust&apos;s loved features but I haven&apos;t covered them yet! </p><p>So stay tuned for follow-up <strong>Take Rust to The Next Level series</strong> and learn more of the Rust programming language!</p><p>The Rust Basics series concludes here. I welcome your feedback.</p>


id: https://itsfoss.com/distrohopping-issues/
feed_url: https://itsfoss.com/rss/
read: False
title: 7 Deadly Sins of Distrohopping
link: https://itsfoss.com/distrohopping-issues/
categories: List
description:
What are you doing wrong with distro-hopping? Can you do it better? Yes, you can. Here, we tell you how.

content:
<img src="https://itsfoss.com/content/images/2023/05/7-deadly-sins-of-distrohopping.png" alt="7 Deadly Sins of Distrohopping"><p>Distro hopping is the habit of regularly trying new Linux distributions to explore for fun or to find the perfect distro for you. </p><p>After all, there are <a href="https://itsfoss.com/what-is-linux/">hundreds of Linux distributions</a> and new ones are released regularly. Your FOMO (fear of missing out) kicks in and you go on to try the latest buzz of the Linux town.</p><p>No matter why you do it, whether you hate it or like it, people make a few mistakes, which makes the experience of distro hopping hellish.</p><p>What can those be? Let me take you through it:</p><h2 id="1-not-taking-backups">1. Not Taking Backups</h2><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/backup-distro.png" class="kg-image" alt="7 Deadly Sins of Distrohopping" loading="lazy" width="800" height="450" srcset="https://itsfoss.com/content/images/size/w600/2023/05/backup-distro.png 600w, https://itsfoss.com/content/images/2023/05/backup-distro.png 800w" sizes="(min-width: 720px) 720px"></figure><p>Well, you thought of changing the distro, and because of the excitement, you did it.</p><p>But, if you do not have a backup of your important/frequently accessible stuff, you might have to configure things and organize the data you need on your system.</p><p>So, if you have a backup, no matter what you do, the data you need always stays accessible and helps you quickly hop from one distro to another.</p><h2 id="2-not-checking-graphics-driver-support">2. Not Checking Graphics Driver Support</h2><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/graphics-card-distro.png" class="kg-image" alt="7 Deadly Sins of Distrohopping" loading="lazy" width="800" height="450" srcset="https://itsfoss.com/content/images/size/w600/2023/05/graphics-card-distro.png 600w, https://itsfoss.com/content/images/2023/05/graphics-card-distro.png 800w" sizes="(min-width: 720px) 720px"></figure><p>Users often forget about the compatibility of a distro with the GPU on their system and end up complaining about the distro.</p><p>You must ensure that your distro has out-of-the-box support for your graphics card. </p><p>If you have an Nvidia graphics card like me, you should only prefer distributions that offer an ISO with Nvidia support or have the support built-in and available in the boot menu.</p><p>For instance, you need to <a href="https://itsfoss.com/nvidia-linux-mint/">install Nvidia drivers on Linux Mint</a>. While it is an easy and hassle-free process for the most part, not everyone would want to make an effort. You could go with <a href="https://pop.system76.com/?ref=itsfoss.com">Pop!_OS</a> or <a href="https://itsfoss.com/getting-started-with-ubuntu/">Ubuntu</a>, which works well with Nvidia graphics cards by default.</p><h2 id="3-hoping-things-to-be-better">3. Hoping Things to be Better </h2><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/hoping-distro.png" class="kg-image" alt="7 Deadly Sins of Distrohopping" loading="lazy" width="800" height="450" srcset="https://itsfoss.com/content/images/size/w600/2023/05/hoping-distro.png 600w, https://itsfoss.com/content/images/2023/05/hoping-distro.png 800w" sizes="(min-width: 720px) 720px"></figure><p>Nobody else can perfectly pick what you need and what you might like.</p><p>So, do not go with anyone&apos;s suggestion. Do your research, and pick the distro you want to try next.</p><p>Even though you know what you want, do not expect the experience to be better than your current distro. The distributions differ in many aspects. </p><p><strong>Your next distribution can solve a problem you had and add issues you did not. </strong>It is better to assume that you might have troubles you did not anticipate. </p><p>So, fasten your seatbelt if you distro hop.</p><h2 id="4-installing-distros-on-bare-metal">4. Installing Distros on Bare Metal</h2><p><strong>Do not install the distro</strong> and <strong>replace your current distro.</strong></p><p>If you directly change the distro on your workstation, things might break, and you might spend time fixing them first, even before learning or experiencing the best parts of the Linux distribution.</p><p>Instead, you should try the distro using the <strong>live environment </strong>or <strong>a virtual machine</strong>.</p><p>Usually, you get a live environment from the boot menu or a &quot;Try&quot; option to test things before installing a Linux distribution.</p><p>Also, you can try <a href="https://itsfoss.com/why-linux-virtual-machine/">Linux distros using a virtual machine</a>. With a VM, you can learn about the distro and test things without hassle.</p><p>With that option, you do not need to change your host. You can test all the essentials like <strong>network connectivity, app availability, pre-installed utilities</strong>, and more without needing to ditch the current distro.</p><p><strong>Suggested Read &#x1F4D6;</strong></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/why-linux-virtual-machine/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">10 Reasons to Run Linux in Virtual Machines</div><div class="kg-bookmark-description">You can run any operating system as a virtual machine to test things out or for a particular use case. When it comes to Linux, it is usually a better performer as a virtual machine when compared to other operating systems. Even if you hesitate to install Linux on bare</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="7 Deadly Sins of Distrohopping"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2022/04/reasons-to-install-linux-in-virtualmachines.jpg" alt="7 Deadly Sins of Distrohopping"></div></a></figure><h2 id="5-ignoring-your-use-case">5. Ignoring Your Use-Case</h2><p>The choices of distros available can make things confusing.</p><p>One part or feature of a distro could have had your attention, leading you to think that the rest suits you.</p><p>Any distribution you want to try next should perfectly suit your requirements. If it offers something more or different, it may not necessarily be a bonus for you.</p><p>For instance, a distro could offer more customizability, which is always good. But if you do not need that control, the options included could be overwhelming or seem like bloatware to you soon enough.</p><p>You can explore the <a href="https://itsfoss.com/best-linux-distributions/">best Linux distros</a> and analyze them based on their specialties mentioned in the article.</p><p>One example is a specific use case of looking for a <a href="https://itsfoss.com/lightweight-linux-beginners/">lightweight distro</a> that runs well on old computers:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/lightweight-linux-beginners/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">16 Best Lightweight Linux Distributions for Older Computers</div><div class="kg-bookmark-description">Don&#x2019;t throw your old computer just yet. Use a lightweight Linux distro and revive that decades-old system.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="7 Deadly Sins of Distrohopping"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2015/08/light-linux-distros.jpg" alt="7 Deadly Sins of Distrohopping"></div></a></figure><p>Or are you looking for something secure, reliable, and future-proof?</p><p><a href="https://itsfoss.com/immutable-linux-distros/">Immutable Linux distributions</a> should serve you well.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/immutable-linux-distros/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">11 Future-Proof Immutable Linux Distributions</div><div class="kg-bookmark-description">Immutability is a concept in trend. Take a look at what are the options you have for an immutable Linux distribution.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="7 Deadly Sins of Distrohopping"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/2023/03/list-of-immutable-linux-distros--1-.png" alt="7 Deadly Sins of Distrohopping"></div></a></figure><p>Or...</p><p>Do you want to play games? There are options for that too!</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/linux-gaming-distributions/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Best Distributions for Gaming on Linux</div><div class="kg-bookmark-description">If you are a hardcore PC gamer, Linux might not be your first choice. That&#x2019;s fair because Linux isn&#x2019;t treated as a first-class citizen when it comes to gaming. You won&#x2019;t find the most awaited games of the year available on Linux natively. Not to forget that</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="7 Deadly Sins of Distrohopping"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2022/10/best-linux-gaming-distributions.png" alt="7 Deadly Sins of Distrohopping"></div></a></figure><p>In a nutshell, do not pick a distro that does not suit to your use cases.</p><h2 id="6-changing-your-daily-driving-tools">6. Changing Your Daily Driving Tools</h2><figure class="kg-card kg-image-card"><img src="https://itsfoss.com/content/images/2023/05/daily-drivers-distro.png" class="kg-image" alt="7 Deadly Sins of Distrohopping" loading="lazy" width="800" height="450" srcset="https://itsfoss.com/content/images/size/w600/2023/05/daily-drivers-distro.png 600w, https://itsfoss.com/content/images/2023/05/daily-drivers-distro.png 800w" sizes="(min-width: 720px) 720px"></figure><p>Along with the distro, some users change the tools they use to get work daily.</p><p>Considering the tools affect your user experience significantly, it will eventually change your workflow. You may have done it to experiment with new things. But you should stick to the tools that always work for you.</p><p>Maybe you are already using the <a href="https://itsfoss.com/essential-linux-applications/">best essential apps</a> available, why change?</p><p>If the tool does not work as intended with the new distro, only then you should look for alternatives.</p><h2 id="7-not-picking-a-desktop-environment">7. Not Picking a Desktop Environment</h2><p>There are a couple of things that can help you narrow down the choices you have for installing Linux distros on your system.</p><p>And the <a href="https://itsfoss.com/what-is-desktop-environment/">desktop environment</a> is a big one.</p><p>Of course, you should explore the <a href="https://itsfoss.com/best-linux-desktop-environments/">best desktop environments</a> available before making a favorite. Once you select one, you do not have to distro hop much compared to when you wanted to try distro with any desktop environment.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://itsfoss.com/best-linux-desktop-environments/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">8 Best Desktop Environments For Linux</div><div class="kg-bookmark-description">A list of the best Linux Desktop Environments with their pros and cons. Have a look and see which desktop environment you should use.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png" alt="7 Deadly Sins of Distrohopping"><span class="kg-bookmark-author">It&apos;s FOSS</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://itsfoss.com/content/images/wordpress/2016/04/best-linux-desktop-environments.jpg" alt="7 Deadly Sins of Distrohopping"></div></a></figure><h2 id="should-you-stop-distrohopping">Should You Stop Distrohopping?</h2><p>It is not bad that you want to explore options and see what fits you best.</p><p>However, how you hop from one distro to another could make the process troublesome, and you may end up complaining.</p><p>You should <strong>follow the above pointers</strong> mentioned in this article and try distros using a <strong>virtual machine</strong> before you want to switch.</p><p>Now, you should have a seamless experience with the distro hopping journey. </p><p><em>&#x1F4AC; Share your distro-hopping adventures in the comments below. Do you do it or not?</em></p>


feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: Reddingsbrigade en ANWB hebben handen vol door hitte, festivals verlopen goed
categories: Algemeen,Binnenland,Binnen- en buitenland
id:
https://www.nu.nl/binnenland/6267488/reddingsbrigade-en-anwb-hebben-handen-vol-door-hitte-festivals-verlopen-goed.html

description:
De reddingsbrigade heeft zaterdag een drukke dag gehad, doordat veel mensen vanwege de hitte verkoeling zochten bij stranden of recreatieplassen. Ook de ANWB had het drukker door de tropische temperaturen. Festivals die zaterdag plaatsvonden zijn goed verlopen.

link:
https://www.nu.nl/binnenland/6267488/reddingsbrigade-en-anwb-hebben-handen-vol-door-hitte-festivals-verlopen-goed.html


feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: Dertienjarig meisje verdronken in recreatieplas Alblasserdam
categories: Algemeen,Binnenland,Binnen- en buitenland
id:
https://www.nu.nl/binnenland/6267470/dertienjarig-meisje-verdronken-in-recreatieplas-alblasserdam.html

description:
Een dertienjarig meisje is zaterdagmiddag verdronken in recreatieplas Lammetjeswiel in Alblasserdam. Om nog onbekende redenen verdween het meisje onder water, waarna ze na iets minder dan een half uur werd gevonden.

link:
https://www.nu.nl/binnenland/6267470/dertienjarig-meisje-verdronken-in-recreatieplas-alblasserdam.html


feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: Brand in Ter Aar kon zo groot worden door twee brandhaarden
categories: Algemeen,Binnenland,Binnen- en buitenland
id:
https://www.nu.nl/binnenland/6267490/brand-in-ter-aar-kon-zo-groot-worden-door-twee-brandhaarden.html

description:
De brand die vrijdagavond uitbrak in het Zuid-Hollandse Ter Aar kon zo groot worden door twee verschillende brandhaarden. De brand ontstond bij TN Plastics, een producent van kunststofproducten, maar al snel woedde er ook een andere brand in een nabijgelegen bedrijfspand.

link:
https://www.nu.nl/binnenland/6267490/brand-in-ter-aar-kon-zo-groot-worden-door-twee-brandhaarden.html


feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: Swiatek klopt Muchová in spannend duel en wint voor derde keer Roland Garros
categories: Algemeen,Sport,Sport Overig
id:
https://www.nu.nl/sport-overig/6267475/swiatek-klopt-muchova-in-spannend-duel-en-wint-voor-derde-keer-roland-garros.html

description:
Iga Swiatek heeft zaterdag voor de derde keer Roland Garros gewonnen. De nummer één van de wereld was in een spannende finale in drie sets te sterk voor Karolína Muchová. Het werd 6-2, 5-7 en 6-4

link:
https://www.nu.nl/sport-overig/6267475/swiatek-klopt-muchova-in-spannend-duel-en-wint-voor-derde-keer-roland-garros.html


feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: Hoe vier kinderen na miraculeuze overleving in gevaarlijke jungle werden gered
categories: Algemeen,Buitenland,Goed nieuws,NUverder
id:
https://www.nu.nl/buitenland/6267433/hoe-vier-kinderen-na-miraculeuze-overleving-in-gevaarlijke-jungle-werden-gered.html

description:
Vier kinderen dwaalden veertig dagen door een van de meest onbewoonbare delen van de Colombiaanse jungle. Wekenlang lag het gevaar van dodelijke dieren, uithongering en gewapende rebellen op de loer, maar vrijdag werden ze in goede gezondheid aangetroffen. Wat weten we over hun wonderbaarlijke verhaal?

link:
https://www.nu.nl/buitenland/6267433/hoe-vier-kinderen-na-miraculeuze-overleving-in-gevaarlijke-jungle-werden-gered.html


feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: Verkenners zagen Omtzigt als probleem, oppositie wil debat over hun acties
categories: Algemeen,Binnenland,Politiek
id:
https://www.nu.nl/politiek/6267454/verkenners-zagen-omtzigt-als-probleem-oppositie-wil-debat-over-hun-acties.html

description:
Verkenners Annemarie Jorritsma en Kajsa Ollongren zagen Pieter Omtzigt vanaf het begin van de formatie in 2021 als een risico voor de stabiliteit van een toekomstig kabinet, meldt <em><a href="https://nos.nl/nieuwsuur/artikel/2478376-verkenners-zagen-omtzigt-als-probleem-en-risico-voor-de-formatie" target="_blank">Nieuwsuur</a>. </em>Oppositiepartijen willen een debat over de acties van Jorritsma en Ollongren.

link:
https://www.nu.nl/politiek/6267454/verkenners-zagen-omtzigt-als-probleem-oppositie-wil-debat-over-hun-acties.html


feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: NU+ | Wat is nou eigenlijk de rol van Ridouan Taghi's nieuwe advocaat?
categories: Algemeen,Marengo-proces,login-vereist,Binnen- en buitenland
id:
https://www.nu.nl/marengo-proces/6265317/wat-is-nou-eigenlijk-de-rol-van-ridouan-taghis-nieuwe-advocaat.html

description:
Michael Ruperti is de nieuwe advocaat van Ridouan Taghi. Maar voor hoelang eigenlijk? Ook zijn precieze rol in de verdediging van de vermeend topcrimineel roept de nodige vragen op.

link:
https://www.nu.nl/marengo-proces/6265317/wat-is-nou-eigenlijk-de-rol-van-ridouan-taghis-nieuwe-advocaat.html


feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: Vrouw overleden in Schaijk, aed was onbruikbaar doordat accu was gestolen
categories: Algemeen,Binnenland,Veel bekeken,Binnen- en buitenland
id:
https://www.nu.nl/binnenland/6267460/vrouw-overleden-in-schaijk-aed-was-onbruikbaar-doordat-accu-was-gestolen.html

description:
In Schaijk is donderdag een vrouw overleden na een reanimatiemelding. Een aed in de buurt bleek niet te werken. De accu van het apparaat ontbrak en is vermoedelijk gestolen. Of de vrouw het anders had overleefd is niet te zeggen.

link:
https://www.nu.nl/binnenland/6267460/vrouw-overleden-in-schaijk-aed-was-onbruikbaar-doordat-accu-was-gestolen.html


feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: Zonnepaneleneigenaar moet zich niet blindstaren op energietarief
categories: Economie,Algemeen
id:
https://www.nu.nl/economie/6267318/zonnepaneleneigenaar-moet-zich-niet-blindstaren-op-energietarief.html

description:
Energieprijzen dalen weer en vaste contracten zijn terug: tijd om energieleveranciers met elkaar te vergelijken. Maar als je veel zonnestroom opwekt, zijn niet alleen de tarieven belangrijk. Je kunt ook besparen via de terugleververgoeding.

link:
https://www.nu.nl/economie/6267318/zonnepaneleneigenaar-moet-zich-niet-blindstaren-op-energietarief.html


id: https://www.nu.nl/algemeen/6266308/zo-zijn-smokkelaars-van-russische-olie-de-radar-te-slim-af.html
feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: Explainer | Zo zijn smokkelaars van Russische olie de radar te slim af
link: https://www.nu.nl/algemeen/6266308/zo-zijn-smokkelaars-van-russische-olie-de-radar-te-slim-af.html
categories: Algemeen,Buitenland,Video's,Het nieuws uitgelegd,Oorlog in Oekraïne
description:
Schepen met Russische olie verdwijnen van de radar om van hun olie af te komen. Hoe doen ze dat? En waarom zal Rusland hier waarschijnlijk niets tegen doen?


feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: Paus herstelt goed, maar moet nog een week in ziekenhuis blijven
categories: Algemeen,Buitenland,Binnen- en buitenland
id:
https://www.nu.nl/buitenland/6267477/paus-herstelt-goed-maar-moet-nog-een-week-in-ziekenhuis-blijven.html

description:
Het herstel van paus Franciscus verloopt voorspoedig, melden zijn dokters zaterdag. Wel heeft hij op aanraden van zijn artsen ermee ingestemd om nog een week in het ziekenhuis te blijven. Woensdag onderging Fransiscus een buikoperatie.

link:
https://www.nu.nl/buitenland/6267477/paus-herstelt-goed-maar-moet-nog-een-week-in-ziekenhuis-blijven.html


feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: Oekraïense opmars tot nu wisselend succesvol, net als Russische tegenaanvallen
categories: Algemeen,Buitenland,Veel bekeken,Oorlog in Oekraïne
id:
https://www.nu.nl/buitenland/6267446/oekraiense-opmars-tot-nu-wisselend-succesvol-net-als-russische-tegenaanvallen.html

description:
Waar het Oekraïense leger op sommige plekken in het zuidoosten van het land verder opstoomt, kan het Russische leger die opmars op andere plekken beter afwenden.

link:
https://www.nu.nl/buitenland/6267446/oekraiense-opmars-tot-nu-wisselend-succesvol-net-als-russische-tegenaanvallen.html


feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: Koeman hekelt afzeggen Frimpong bij Jong Oranje: 'Ik vind dat niet oké'
categories: Algemeen,Sport,Voetbal
id:
https://www.nu.nl/voetbal/6267468/koeman-hekelt-afzeggen-frimpong-bij-jong-oranje-ik-vind-dat-niet-oke.html

description:
Ronald Koeman heeft geen goed woord over voor de afzegging van Jeremie Frimpong voor het EK met Jong Oranje. De bondscoach weet nog niet of het besluit van de 22-jarige rechtervleugelverdediger van Bayer Leverkusen gevolgen heeft.

link:
https://www.nu.nl/voetbal/6267468/koeman-hekelt-afzeggen-frimpong-bij-jong-oranje-ik-vind-dat-niet-oke.html


feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: Liveblog | Reacties na zwaarbevochten zege Swiatek in Roland Garros-finale
categories: Algemeen,Sport,Tennis,Sport Overig
id:
https://www.nu.nl/tennis/6267463/reacties-na-zwaarbevochten-zege-swiatek-in-roland-garros-finale.html

link:
https://www.nu.nl/tennis/6267463/reacties-na-zwaarbevochten-zege-swiatek-in-roland-garros-finale.html


feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: Gepasseerde Cillessen mag volgens Koeman nog hopen op terugkeer bij Oranje
categories: Algemeen,Sport,Voetbal
id:
https://www.nu.nl/voetbal/6267467/gepasseerde-cillessen-mag-volgens-koeman-nog-hopen-op-terugkeer-bij-oranje.html

description:
Ronald Koeman sluit niet uit dat hij Jasper Cillessen in september terughaalt bij Oranje. Volgens de bondscoach hangt het van de vorm van de 34-jarige keeper af of hij op korte termijn zijn rentree maakt bij het Nederlands elftal.

link:
https://www.nu.nl/voetbal/6267467/gepasseerde-cillessen-mag-volgens-koeman-nog-hopen-op-terugkeer-bij-oranje.html


feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: Livestream | Bondscoach Koeman blikt vooruit op halve finale Nations League
categories: Algemeen
id:
https://www.nu.nl/algemeen/6267462/bondscoach-koeman-blikt-vooruit-op-halve-finale-nations-league.html

description:
Bondscoach Ronald Koeman blikt zaterdag op een persconferentie vooruit op de wedstrijd van het Nederlands elftal tegen Kroatië in de halve finales van de Nations League.

link:
https://www.nu.nl/algemeen/6267462/bondscoach-koeman-blikt-vooruit-op-halve-finale-nations-league.html


id: https://www.nu.nl/nujij/6267408/deed-jij-dit-jaar-eindexamen-dan-zoeken-we-jou.html
feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: Oproep | Deed jij dit jaar eindexamen? Dan zoeken we jou
link: https://www.nu.nl/nujij/6267408/deed-jij-dit-jaar-eindexamen-dan-zoeken-we-jou.html
categories: Algemeen,Binnenland,Uitgelicht,Praat mee op NUjij
description:
Bijna alle eindexamenleerlingen van middelbare scholen krijgen woensdag 14 juni hun uitslag. Wij zijn benieuwd hoe leerlingen deze uitslag te horen krijgen en wat ze van deze manier vinden. Wacht je in spanning een telefoontje af, of krijg je een bericht?


feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: Man die kinderen in Annecy aanviel met mes vervolgd wegens poging tot moord
categories: Algemeen,Buitenland,Binnen- en buitenland
id:
https://www.nu.nl/buitenland/6267458/man-die-kinderen-in-annecy-aanviel-met-mes-vervolgd-wegens-poging-tot-moord.html

description:
De 31-jarige man die donderdag met een mes mensen aanviel op een kinderspeelplaats in het Franse Annecy wordt beschuldigd van poging tot moord. De toestand van de zes gewonden, onder wie een eenjarig kind uit Nederland, is stabiel.

link:
https://www.nu.nl/buitenland/6267458/man-die-kinderen-in-annecy-aanviel-met-mes-vervolgd-wegens-poging-tot-moord.html


id: https://www.nu.nl/film/6267450/meerdere-crewleden-gewond-geraakt-op-set-gladiator-2.html
feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: Meerdere crewleden gewond geraakt op set Gladiator 2
link: https://www.nu.nl/film/6267450/meerdere-crewleden-gewond-geraakt-op-set-gladiator-2.html
categories: Algemeen,Films & Series,Media en Cultuur
description:
Tijdens de opnames van een reeks stuntscènes voor de film <em>Gladiator 2</em> zijn woensdag meerdere crewleden gewond geraakt. Onder de gewonden zijn geen acteurs.


feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: Drukte in treinen door stralend weer, Den Haag roept op niet met auto te komen
categories: Algemeen,Binnenland,Binnen- en buitenland
id:
https://www.nu.nl/binnenland/6267449/drukte-in-treinen-door-stralend-weer-den-haag-roept-op-niet-met-auto-te-komen.html

description:
Van de extra treinen tussen Haarlem en de badplaats Zandvoort wordt zaterdag veel gebruikgemaakt, zegt de NS tegen NU.nl. Ook op de wegen naar het strand was het vanmorgen druk. Gemeente Den Haag roept op om niet meer met de auto naar Scheveningen en Kijkduin te komen.

link:
https://www.nu.nl/binnenland/6267449/drukte-in-treinen-door-stralend-weer-den-haag-roept-op-niet-met-auto-te-komen.html


feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: Rolstoeltennisster De Groot breidt heerschappij uit met vierde Roland Garros-titel
categories: Algemeen,Sport,Tennis,Sport Overig
id:
https://www.nu.nl/tennis/6267445/rolstoeltennisster-de-groot-breidt-heerschappij-uit-met-vierde-roland-garros-titel.html

description:
Rolstoeltennisster Diede de Groot heeft zaterdag voor de vierde keer Roland Garros op haar naam geschreven. De Nederlandse had in de finale geen kind aan de Japanse Yui Kamiji, waardoor ze voor de elfde keer op rij een Grand Slam-toernooi won.

link:
https://www.nu.nl/tennis/6267445/rolstoeltennisster-de-groot-breidt-heerschappij-uit-met-vierde-roland-garros-titel.html


feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: NU+ | Werken als mascotte in de hitte: met ijspakken, watervestjes en schaduw
categories: Algemeen,Binnenland,Praat mee op NUjij,login-vereist,Stelling,Binnen- en buitenland
id:
https://www.nu.nl/nujij/6267156/werken-als-mascotte-in-de-hitte-met-ijspakken-watervestjes-en-schaduw.html

description:
Terwijl bijna heel Nederland komend weekend in een korte broek rondloopt, zijn er ook mensen die zich in een loodzwaar en loeiheet dierenpak moeten hijsen. Want mascotte ben je ook als de mussen van het dak vallen. Hoe is dat? NU.nl vroeg het de mascottes van Duinrell, Avonturenpark Hellendoorn en voetbalclub FC Emmen.

link:
https://www.nu.nl/nujij/6267156/werken-als-mascotte-in-de-hitte-met-ijspakken-watervestjes-en-schaduw.html


feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: Man overleden na arrestatie met stroomstootwapen, doodsoorzaak onderzocht
categories: Algemeen,Binnenland,Binnen- en buitenland
id:
https://www.nu.nl/binnenland/6267438/man-overleden-na-arrestatie-met-stroomstootwapen-doodsoorzaak-onderzocht.html

description:
Een 32-jarige man die vrijdagavond werd gearresteerd in Rotterdam is overleden. De arrestant werd kort nadat hij onder controle was gebracht met een stroomstootwapen onwel.

link:
https://www.nu.nl/binnenland/6267438/man-overleden-na-arrestatie-met-stroomstootwapen-doodsoorzaak-onderzocht.html


feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: Rijkswaterstaat activeert zondag hitteprotocol: auto's met pech direct geholpen
categories: Algemeen,Binnenland,Binnen- en buitenland
id:
https://www.nu.nl/binnenland/6267432/rijkswaterstaat-activeert-zondag-hitteprotocol-autos-met-pech-direct-geholpen.html

description:
Rijkswaterstaat stelt zondag een hitteprotocol in voor heel Nederland. Dat houdt in dat weggebruikers die met pech langs de weg komen te staan direct worden geholpen. Zaterdag is het protocol al van kracht in een aantal provincies.

link:
https://www.nu.nl/binnenland/6267432/rijkswaterstaat-activeert-zondag-hitteprotocol-autos-met-pech-direct-geholpen.html


feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: Frankrijk spoort 120.000 zwembaden van belastingontduikers op met luchtfoto's
categories: Algemeen,Buitenland,Veel bekeken
id:
https://www.nu.nl/buitenland/6267414/frankrijk-spoort-120000-zwembaden-van-belastingontduikers-op-met-luchtfotos.html

description:
De Franse belastingdienst heeft meer dan 120.000 zwembaden opgespoord die niet bij de overheid bekend waren. Ze werden ontdekt dankzij analyse van luchtfoto's.

link:
https://www.nu.nl/buitenland/6267414/frankrijk-spoort-120000-zwembaden-van-belastingontduikers-op-met-luchtfotos.html


feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: Quiz | Met welk product wil Apple de wereld veroveren?’ Test je nieuwskennis
categories: Algemeen,NU.nl,nieuwsquiz
id:
https://www.nu.nl/algemeen/6267324/met-welk-product-wil-apple-de-wereld-veroveren-test-je-nieuwskennis.html

description:
Lees jij non-stop NU.nl? Neem dan nu de proef op de som en check met deze quiz wat jij nog weet van het nieuws van afgelopen week.

link:
https://www.nu.nl/algemeen/6267324/met-welk-product-wil-apple-de-wereld-veroveren-test-je-nieuwskennis.html


feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: Video | Kinderen na veertig dagen levend gevonden in Colombia: 'Historisch'
categories: Algemeen,Buitenland,Video's
id:
https://www.nu.nl/videos/6267405/kinderen-na-veertig-dagen-levend-gevonden-in-colombia-historisch.html

description:
De vier kinderen die op 1 mei crashten met een vliegtuig in Colombia zijn vrijdag levend gevonden. Naar het viertal werd ruim een maand gezocht in het Amazonewoud, na tekenen dat ze nog leefden.

link:
https://www.nu.nl/videos/6267405/kinderen-na-veertig-dagen-levend-gevonden-in-colombia-historisch.html


feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: Brand in bedrijfspanden Ter Aar onder controle, rook neemt af
categories: Algemeen,Binnenland,Veel bekeken,Binnen- en buitenland
id:
https://www.nu.nl/binnenland/6267400/brand-in-bedrijfspanden-ter-aar-onder-controle-rook-neemt-af.html

description:
De brand in meerdere bedrijfspanden in het Zuid-Hollandse Ter Aar is zaterdagochtend onder controle. De rook is inmiddels ook afgenomen. Vanwege de grote brand werd vrijdagavond nog een NL-Alert verstuurd. Voor zover bekend zijn er geen slachtoffers.

link:
https://www.nu.nl/binnenland/6267400/brand-in-bedrijfspanden-ter-aar-onder-controle-rook-neemt-af.html


feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: Weerbericht: Zonnig en warm, mogelijk eerste landelijke tropische dag van het jaar
categories: Algemeen,Binnenland,Binnen- en buitenland
id:
https://www.nu.nl/binnenland/6267399/weerbericht-zonnig-en-warm-mogelijk-eerste-landelijke-tropische-dag-van-het-jaar.html

description:
De zon schijnt vandaag volop. Alleen in het zuiden kan in de middag wat bewolking voorkomen. Met temperaturen die lokaal kunnen oplopen tot 32 graden wordt het misschien wel de eerste landelijke tropische dag van het jaar.

link:
https://www.nu.nl/binnenland/6267399/weerbericht-zonnig-en-warm-mogelijk-eerste-landelijke-tropische-dag-van-het-jaar.html


feed_url: https://www.nu.nl/rss/Algemeen
read: False
title: NU+ | Vet eten en veel zuipen: CL-finalist Manchester City komt van ver
categories: Algemeen,Sport,Voetbal,login-vereist,NU+ Voetbal,NUplus
id:
https://www.nu.nl/voetbal/6267292/vet-eten-en-veel-zuipen-cl-finalist-manchester-city-komt-van-ver.html

description:
Manchester City kan zaterdag voor eerst in de historie de Champions League winnen. Het zou de kroon zijn op de opmars van de club, die in de jaren negentig niet meer was dan een volksclub in de marge. "Vijf uur lang hing er een walm van rook in de spelersbus."

link:
https://www.nu.nl/voetbal/6267292/vet-eten-en-veel-zuipen-cl-finalist-manchester-city-komt-van-ver.html


