That seems easy enough but how would you get the exact version number? Which old versions are supported? You can get that detail with:
sudo apt-cache policy package_name
Let me explain all this with a real-life example.
Downgrading apt package
Recently, I was updating the Ubuntu server that hosts It's FOSS Community forum.
I did the usual apt update && apt upgrade and things went bonkers by the time updates were installed.
Apparently, the latest version of Docker didn't support the aufs storage driver. To reduce the downtime, I opted to downgrade to the previous Docker version.
Check the currently installed package version
Installed Docker version
Then check for the available versions that could be installed:
sudo apt-cache policy package_name
It may throw a huge list or just a small one:
All installable versions of an apt package
If it shows at least one older version than the current one, you are in luck.
Now, you may think that the version number of a package would be composed of just the numbers. But that may not always be the case.
Basically, you copy the entire stuff before 500 (the priority number).
For years, the focus of It's FOSS has been on desktop Linux. This is the reason why we mostly go for GUI solutions and tools.
Though this is not changing, knowing the basic Linux commands gives you an edge while troubleshooting.
And hence I am starting a new series this week. It's called 'Terminal Basics'. I aim to give you a base for doing some of the common things in the Linux command line.
The tutorials are written in an interactive 'do it while you read it' manner. I have also added simple exercises to practice what you learn. You can further discuss your solutions and doubts in the community forum.
Here's the first part of the series. Even if you are experienced with the commands, please give it a read and provide feedback by replying to this mail or leaving a comment.
On 15th February 1999, hundreds of computer owners (dominated by Linux users) marched on Microsoft’s offices demanding refunds for the copies of Windows that came pre-installed on their computers. This day came to be known as Windows Refund Day.
๐️Markdown guides
Markdown is everywhere. You can write technical documents or take personal notes. It can be rendered beautifully on the web so you can write blogs in Markdown. Many applications like Discord also support Markdown syntax for formatting the content.
Here's a beginner's guide to help you learn Markdown.
๐ซ Event Alert: Open Source Summit North America
Open Source Summit is the premier event for open source developers, technologists, and community leaders to collaborate, share information, solve problems, and gain knowledge, furthering open source innovation and ensuring a sustainable open source ecosystem. It is the gathering place for open-source code and community contributors.
The event will be taking place in May in Vancouver, Canada.
It's FOSS is a media partner of this event. If you are willing to attend the event, you can get a 20% discount on the tickets using coupon code OSSNA23FOSS20.
๐คฃ Linux Humor
Can any of the current-gen proprietary OSes do that? :P
❤️ Enjoying FOSS Weekly?
Forward it to Linux-using friends and encourage them to subscribe (hint: it's here).
You probably already know about the lightweight Markdown markup language. Refer to our Markdown guide, if you're new to the concept. Overall, it is a simple and effective language for creating plain-text documents.
However, Markdown may not be enough to make detailed reports or technical documents.
Hence, R Markdown as an interactive file format came into existence back in 2014 thanks to packages like knitr and Pandoc. It combines plain text with in-line R code, helping you make a dynamic document.
To create R Markdown documents, you can use various IDEs and extensions to make it possible. However, the official IDE that helps you do it is RStudio. So, in this article, we will focus on learning R Markdown syntax using RStudio.
๐ก
If you did not know, R programming language is used for statistical computing, graphics representation, and reporting.
RStudio makes it easy to work with R Markdown by its setup process. You just need to install a package, and you are done for the most part!
Once you have RStudio installed, head to the Tools menu and select the Install Packages option.
Select Install Packages option under Tools menu (click to enlarge image)
On the new dialog box, search for rmarkdown and install it.
Install RMarkdown Package (click to enlarge image)
๐ก
To use code chunks like python, you need to install additional packages. RStudio will prompt you to install the required packages when you try to include them in your document.
Once installed, you can start a new rmarkdown document by selecting File > New > RMarkdown.
Create a new RMarkdown Document (click to enlarge image)
This will prompt you to add some information regarding the document (metadata for the file). Fill those up.
New document in rmarkdown (click to enlarge image)
Or you can create an empty document to start fresh.
RMarkdown Syntax
Since it is just "enhanced Markdown," most syntax remains the same.
There would be some differences when you add things not usually supported with Markdown, like tables, math equations, code chunks, etc.
Here's a quick summary of what we will be covering:
Name of the RMarkdown Block
Proper Syntax
Heading
# Level 1
## Level 2
### Level 3
Level 1
=======
Level 2
-------
Emphasis
*Italics*
_Italics_
**Bold**
__Bold__
List
Unordered List
* Item
* Item
+ Sub
+ Sub
Ordered List
1. Item
2. Item
+ Sub
+ Sub
Code Chunk
Normal Code Block
```
Code Goes Here
```
R Code Block
```{r}
R CODE
```
You can use other languages also.
Inline `code`
Links
Plain Link: Paste the URL
Link with Caption: [Text](URL_Address)
Link to a section: [Text](#Name-of-section)
With Caption : 
Block Quotes
> Type your Block Quotes
Misc
Super Script : Text^Superscript^
Horizontal rule or Page Break:
========= or ----------
For Manual Line break, end line with 2+ spaces
The YAML Header
At the top of a Rmarkdown document, there is a YAML header enclosed within two ---. This block usually contains a title, author, date, and the file type you want to output, defining the final look of the document.

OR

Block Quotes
RMarkdown allows you to add block quotes. To use this, use the > (greater than) symbol in front of the line/paragraph you want to quote.
This is a normal text
> This is a Block Quote
If you want to explore more use cases of blockquote, head to our Markdown quotes guide.
Equations
Using RMarkdown, you can add either equations or display complex LaTex equations.
For example:
In line Pythagorean Theorem: $Equation$
Display Equation: $$Equation$$
Adding equations (click to enlarge image)
Horizontal Rule / Page Break
Use three or more asterisks or dashes to add a horizontal rule /page break.
************
------------
If you want to add a manual line break, end that line with two or more spaces.
Summary
R Markdown is Useful (Cheat Sheet)
Whether you are working with scientific reports or want to create any other type of dynamic document, R Markdown is your best bet to make the most out of Markdown.
Here's a cheat sheet to help you summarize it all:
By default, Ubuntu disables the root account. You must use the sudo command for any tasks requiring root privileges.
This is for your own security, of course. Using the system as root all the time is like running around with a sword in your hand. It increases the chances of messing up things.
Logging in as root is still common in the servers. On the desktop side, it's quite rare to log in as root. Even Kali Linux has changed it.
And yet, a few desktop users want to log in as root. This is not something advisable but surely doable.
in this guide, I will show you how to log in as a root in your GNOME desktop using Ubuntu.
How to login as a root in the GNOME desktop
๐ง
I won't advise login as root on the desktop. You have sudo mechanism for all your root needs. Do it only if you have a good enough reason. This tutorial is for demo purposes only. You have been cautioned.
Step 1: Enable root account
You want to log in as root. But the root account is disabled by default. The first step is to enable it.
Change the root account password that will eventually enable the root account for you:
sudo passwd root
It goes without saying that you should not forget the root password.