{"id":140365,"date":"2024-10-27T14:58:15","date_gmt":"2024-10-27T14:58:15","guid":{"rendered":"https:\/\/linuxiac.com\/?p=140365"},"modified":"2024-10-27T16:15:59","modified_gmt":"2024-10-27T16:15:59","slug":"solus-linux-eopkg-package-manager-guide","status":"publish","type":"post","link":"https:\/\/linuxiac.com\/solus-linux-eopkg-package-manager-guide\/","title":{"rendered":"EOPKG: The Solus User\u2019s Guide to Managing Software"},"content":{"rendered":"\n<p>Solus is a unique, independently developed, <a href=\"https:\/\/linuxiac.com\/what-is-rolling-release-linux-and-what-is-the-real-benefit-of-using-it\/\" data-type=\"post\" data-id=\"1702\">rolling release<\/a> distribution well known for its Budgie desktop, that belongs to the so-called original Linux distros category.<\/p>\n\n\n\n<p>This means that it doesn&#8217;t rely on the codebases of existing Linux systems; instead, it was built from the ground up, which proudly puts it in a rather small group, along with names like RHEL, Debian, Arch, (open)SUSE, Slackware, and Gentoo.<\/p>\n\n\n\n<p>And just like them, <a href=\"https:\/\/getsol.us\/\" target=\"_blank\" rel=\"noreferrer noopener\">Solus<\/a> (previously known as Evolve OS) has its own package manager called <strong>EOPKG (Evolve OS Package)<\/strong>, which allows users to install, remove, update, and manage software packages on their systems.<\/p>\n\n\n\n<p>Derived from the <a href=\"https:\/\/github.com\/pisilinux\/pisi\" target=\"_blank\" rel=\"noreferrer noopener\">PiSi<\/a> (Packages Installed Successfully as Intended) originally developed for <a href=\"https:\/\/pardus.org.tr\/en\/\" target=\"_blank\" rel=\"noreferrer noopener\">Pardus Linux<\/a>, EOPKG provides a range of functionalities, such as searching for available packages, handling dependencies, and performing system upgrades.<\/p>\n\n\n\n<p>This guide provides everything you need, complete with easy-to-follow examples, to help you master EOPKG and confidently manage software on your Solus system. Let&#8217;s get started!<\/p>\n\n\n\n<div class=\"wp-block-ultimate-post-table-of-content ultp-block-9528db\"><div class=\"ultp-block-wrapper\"><div class=\"ultp-block-toc\"><div class=\"ultp-toc-header\"><div class=\"ultp-toc-heading\">Table of Contents<\/div><div class=\"ultp-collapsible-toggle  ultp-collapsible-right\"><a class=\"ultp-collapsible-text ultp-collapsible-open\" href=\"javascript:;\">[Open]<\/a><a class=\"ultp-collapsible-text ultp-collapsible-hide\" href=\"javascript:;\">[Close]<\/a><\/div><\/div><div class=\"ultp-block-toc-style1 ultp-block-toc-body\" style=\"display:block;\"><ul class=\"ultp-toc-lists\"><li><a href=\"#Basic_Package_Management\">Basic Package Management<\/a><ul class=\"ultp-toc-lists\"><li><a href=\"#Updating_the_System\">Updating the System<\/a><\/li><li><a href=\"#List_Pending_Updates\">List Pending Updates<\/a><\/li><li><a href=\"#Upgrade_All_Installed_Packages\">Upgrade All Installed Packages<\/a><\/li><li><a href=\"#Searching_for_Packages\">Searching for Packages<\/a><\/li><li><a href=\"#Searching_for_Already_Installed_Package\">Searching for Already Installed Package<\/a><\/li><li><a href=\"#Installing_Packages\">Installing Packages<\/a><\/li><li><a href=\"#Removing_Packages\">Removing Packages<\/a><\/li><\/ul><\/li><li><a href=\"#Advanced_Package_Management\">Advanced Package Management<\/a><ul class=\"ultp-toc-lists\"><li><a href=\"#Reinstalling_Packages\">Reinstalling Packages<\/a><\/li><li><a href=\"#Get_Information_About_a_Specific_Package\">Get Information About a Specific Package<\/a><\/li><li><a href=\"#Cleaning_the_Cache\">Cleaning the Cache<\/a><\/li><li><a href=\"#Rebuilding_the_Package_Database\">Rebuilding the Package Database<\/a><\/li><li><a href=\"#Remove_Orphaned_Unused_Packages\">Remove Orphaned (Unused) Packages<\/a><\/li><li><a href=\"#Rolling_Back_a_Specific_Change\">Rolling Back a Specific Change<\/a><\/li><\/ul><\/li><li><a href=\"#Managing_Repositories\">Managing Repositories<\/a><ul class=\"ultp-toc-lists\"><li><a href=\"#Listing_Repositories\">Listing Repositories<\/a><\/li><li><a href=\"#Adding_a_Repository\">Adding a Repository<\/a><\/li><li><a href=\"#Removing_a_Repository\">Removing a Repository<\/a><\/li><\/ul><\/li><li><a href=\"#Bonus_Tip:_Use_of_GUI_Application\">Bonus Tip: Use of GUI Application<\/a><\/li><li><a href=\"#Conclusion\">Conclusion<\/a><\/li><\/ul><\/div><\/div><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Basic_Package_Management\">Basic Package Management<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"Updating_the_System\">Updating the System<\/h3>\n\n\n\n<p>Keeping your system updated is crucial for security patches, bug fixes, and new features. One of the most commonly used EOPKG commands is the check for available software package updates.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">sudo eopkg update-repo<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-01.jpg\"><img decoding=\"async\" width=\"998\" height=\"149\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-01.jpg\" alt=\"Updating the system.\" class=\"wp-image-140494\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-01.jpg 998w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-01-380x57.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-01-768x115.jpg 768w\" sizes=\"(max-width: 998px) 100vw, 998px\" \/><\/a><\/figure>\n\n\n\n<p>This command syncs your local package database with the remote repositories.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"List_Pending_Updates\">List Pending Updates<\/h3>\n\n\n\n<p>If you just want to view the list of packages with available updates but do not apply them to your Solus system, run the following command.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">sudo eopkg upgrade -n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-02.jpg\"><img decoding=\"async\" width=\"998\" height=\"241\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-02.jpg\" alt=\"List pending updates.\" class=\"wp-image-140512\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-02.jpg 998w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-02-380x92.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-02-768x185.jpg 768w\" sizes=\"(max-width: 998px) 100vw, 998px\" \/><\/a><\/figure>\n\n\n\n<p>The &#8220;<em>-n<\/em>&#8221; options tell EOPKG not to perform any real upgrade actions; instead, it just shows what would be done.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"Upgrade_All_Installed_Packages\">Upgrade All Installed Packages<\/h3>\n\n\n\n<p>Another most commonly used action is updating operations on currently installed packages. This command updates all installed packages to their latest versions, as initially, the remote repositories will be updated to ensure all metadata is up to date.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">sudo eopkg upgrade<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-03.jpg\"><img decoding=\"async\" width=\"998\" height=\"538\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-03.jpg\" alt=\"Upgrade all installed packages.\" class=\"wp-image-140518\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-03.jpg 998w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-03-380x205.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-03-768x414.jpg 768w\" sizes=\"(max-width: 998px) 100vw, 998px\" \/><\/a><\/figure>\n\n\n\n<p>To upgrade only a specific package (or a few particular ones), just add their names after the <code>sudo eopkg upgrade<\/code> command. For example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">sudo eopkg upgrade thunderbird vim<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\" id=\"Searching_for_Packages\">Searching for Packages<\/h3>\n\n\n\n<p>A common EOPKG functionality that is widely used is packet search. For example, if we want to see whether the &#8220;<em>firefox<\/em>&#8221; package is available in the Solus software repositories, type the following command:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">eopkg search firefox<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-04.jpg\"><img decoding=\"async\" width=\"1024\" height=\"387\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-04-1024x387.jpg\" alt=\"Searching for packages.\" class=\"wp-image-140533\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-04-1024x387.jpg 1024w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-04-380x144.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-04-768x290.jpg 768w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-04.jpg 1034w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>This will display a list of packages matching your search term, including the package name and description.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"Searching_for_Already_Installed_Package\">Searching for Already Installed Package<\/h3>\n\n\n\n<p>Sometimes, you want to check if a specific package is already installed locally. In this case, you can use the &#8220;<em>list-installed<\/em>&#8221; subcommand, which lists all installed packages, piping the output to the <code>grep<\/code> command we use to search for the specific name.<\/p>\n\n\n\n<p>For example, to check if the &#8220;<em>firefox<\/em>&#8221; package is already installed:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">eopkg list-installed | grep firefox<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"959\" height=\"88\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-12.jpg\" alt=\"Searching for already installed package.\" class=\"wp-image-140656\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-12.jpg 959w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-12-380x35.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-12-768x70.jpg 768w\" sizes=\"(max-width: 959px) 100vw, 959px\" \/><\/figure>\n\n\n\n<p>The command will return no result if the package is not found in the installed list.<\/p>\n\n\n\n<p>Alternatively, you can use the <code>eopkg info<\/code> command (explained further below) and look at the first line of its output, which informs you whether the package is locally installed.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">eopkg info firefox<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"454\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-13-1024x454.jpg\" alt=\"Searching for already installed package.\" class=\"wp-image-140659\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-13-1024x454.jpg 1024w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-13-380x169.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-13-768x341.jpg 768w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-13.jpg 1104w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"Installing_Packages\">Installing Packages<\/h3>\n\n\n\n<p>Installation of a new package in Solus using the <code>eopkg<\/code> command is simple. For example,&nbsp;to install &#8220;<em>firefox<\/em>,&#8221; run:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">sudo eopkg install firefox<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-05.jpg\"><img decoding=\"async\" width=\"975\" height=\"414\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-05.jpg\" alt=\"Installing a new package on Solus Linux.\" class=\"wp-image-140542\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-05.jpg 975w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-05-380x161.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-05-768x326.jpg 768w\" sizes=\"(max-width: 975px) 100vw, 975px\" \/><\/a><\/figure>\n\n\n\n<p>To install multiple packages on Solus, you can simply list all the package&#8217;s names one after another you want to install at the end of the command. Here&#8217;s the syntax to install, for example, Firefox, VLC, and Vim in a single run:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">sudo eopkg install firefox vlc vim<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\" id=\"Removing_Packages\">Removing Packages<\/h3>\n\n\n\n<p>Another commonly used functionality of the EOPKG package manager is package removal\/uninstallation. The <code>remove<\/code> parameter is used to uninstall software on Solus.<\/p>\n\n\n\n<p>For example, to remove the &#8220;firefox&#8221; package from your system, you should run the following:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">sudo eopkg remove firefox<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-06.jpg\"><img decoding=\"async\" width=\"955\" height=\"315\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-06.jpg\" alt=\"Removing packages.\" class=\"wp-image-140551\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-06.jpg 955w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-06-380x125.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-06-768x253.jpg 768w\" sizes=\"(max-width: 955px) 100vw, 955px\" \/><\/a><\/figure>\n\n\n\n<p>However, if you want to remove a package along with its configuration files, you can use the &#8220;<em>&#8211;purge<\/em>&#8221; option. Here&#8217;s how you can do it:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">sudo eopkg remove --purge firefox<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"Advanced_Package_Management\">Advanced Package Management<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"Reinstalling_Packages\">Reinstalling Packages<\/h3>\n\n\n\n<p>If an application isn\u2019t functioning correctly, it may be due to corrupted files. Reinstalling the package can replace these files with fresh copies. Furthermore, reinstalling a package can sometimes resolve dependency conflicts or mismatches that may have occurred after a system update.<\/p>\n\n\n\n<p>To reinstall a specific package on Solus, for example, Firefox, you can use the following command:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">sudo eopkg install --reinstall firefox<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-07.jpg\"><img decoding=\"async\" width=\"955\" height=\"390\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-07.jpg\" alt=\"Reinstalling packages.\" class=\"wp-image-140554\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-07.jpg 955w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-07-380x155.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-07-768x314.jpg 768w\" sizes=\"(max-width: 955px) 100vw, 955px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"Get_Information_About_a_Specific_Package\">Get Information About a Specific Package<\/h3>\n\n\n\n<p>You can use the <code>eopkg<\/code> command with the &#8220;<em>info<\/em>&#8221; option to retrieve detailed information about a package (whether installed or available in the repository), including details like the package\u2019s description, version, license, dependencies, and more.<\/p>\n\n\n\n<p>For example, to get information about the &#8220;<em>firefox<\/em>&#8221; package, use:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">eopkg info firefox<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-08.jpg\"><img decoding=\"async\" width=\"1024\" height=\"456\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-08-1024x456.jpg\" alt=\"Get information about a specific package.\" class=\"wp-image-140563\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-08-1024x456.jpg 1024w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-08-380x169.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-08-768x342.jpg 768w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-08.jpg 1103w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>Note that if the package is already installed locally, information will be displayed for both the locally installed package and the package in the remote Solus repository.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"Cleaning_the_Cache\">Cleaning the Cache<\/h3>\n\n\n\n<p>EOPKG stores downloaded packages in a cache to speed up future installations and reinstallation of the same packages. However, this cache can grow large over time and consume disk space. To clear it, you can use:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-14\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">sudo eopkg delete-cache<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-14\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-09.jpg\"><img decoding=\"async\" width=\"959\" height=\"229\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-09.jpg\" alt=\"Cleaning the cache.\" class=\"wp-image-140617\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-09.jpg 959w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-09-380x91.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-09-768x183.jpg 768w\" sizes=\"(max-width: 959px) 100vw, 959px\" \/><\/a><\/figure>\n\n\n\n<p>These are automatically cleared if you using the Software Centre (a GUI app for managing software on Solus). Still, if you only use the CLI approach to software management, you must manually invoke the command.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"Rebuilding_the_Package_Database\">Rebuilding the Package Database<\/h3>\n\n\n\n<p>If you encounter issues with the package database, rebuilding it can help.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-15\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">sudo eopkg rebuild-db<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-15\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-10.jpg\"><img decoding=\"async\" width=\"959\" height=\"79\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-10.jpg\" alt=\"Rebuilding the package database.\" class=\"wp-image-140635\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-10.jpg 959w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-10-380x31.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-10-768x63.jpg 768w\" sizes=\"(max-width: 959px) 100vw, 959px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"Remove_Orphaned_Unused_Packages\">Remove Orphaned (Unused) Packages<\/h3>\n\n\n\n<p>After removing a package in Solus, some remaining orphaned (unused) packages may still depend on the removed package. However, these orphaned packages are no longer required, so we can get rid of them to free up some space.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-16\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">sudo eopkg remove-orphans<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-16\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-11.jpg\"><img decoding=\"async\" width=\"959\" height=\"88\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-11.jpg\" alt=\"Remove orphaned (unused) packages in Solus Linux.\" class=\"wp-image-140647\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-11.jpg 959w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-11-380x35.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-11-768x70.jpg 768w\" sizes=\"(max-width: 959px) 100vw, 959px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"Rolling_Back_a_Specific_Change\">Rolling Back a Specific Change<\/h3>\n\n\n\n<p>The <code>eopkg history<\/code> command on Solus allows you to view a record of all package management actions performed on your system. It can be handy for rolling back specific changes, tracking updates, installations, or removals of software packages over time.<\/p>\n\n\n\n<p>To view the package history, open a terminal and type:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-17\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">eopkg <span class=\"hljs-built_in\">history<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-17\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-15.jpg\"><img decoding=\"async\" width=\"1024\" height=\"610\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-15-1024x610.jpg\" alt=\"Rolling back a specific change.\" class=\"wp-image-140671\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-15-1024x610.jpg 1024w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-15-380x226.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-15-768x458.jpg 768w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-15.jpg 1037w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>The command lists all package actions in reverse chronological order, including the action type (install, update, remove), package&#8217;s name and version, and operation&#8217;s ID.<\/p>\n\n\n\n<p>If a recent package update caused issues, you might want to roll back to a previous state. To do this, locate the transaction ID in the history output and use it by replacing &#8220;<em>[transaction_id]<\/em>&#8221; in the example below with the actual ID <strong>with a number lower<\/strong> than the latest software change for the rollback action:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-18\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">sudo eopkg <span class=\"hljs-built_in\">history<\/span> -t &#91;transaction_id]<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-18\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>For example, if you want to revert the operation with an ID 19, use 18 as the number.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-19\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">sudo eopkg <span class=\"hljs-built_in\">history<\/span> -t 18<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-19\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-16.jpg\"><img decoding=\"async\" width=\"1024\" height=\"143\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-16-1024x143.jpg\" alt=\"Rolling back a specific change.\" class=\"wp-image-140674\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-16-1024x143.jpg 1024w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-16-380x53.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-16-768x107.jpg 768w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-16.jpg 1067w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>Additionally, it is important to remember that reverting software changes works if either the Solus repository has the version of the package you need or you have a local copy of the package.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Managing_Repositories\">Managing Repositories<\/h2>\n\n\n\n<p>Repositories are servers that store software packages, allowing users to install and update applications. Solus uses its own curated repositories by default, ensuring stability and security.<\/p>\n\n\n\n<p>However, there might be times when you need to add additional repositories to access software that is not available in the official ones.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"Listing_Repositories\">Listing Repositories<\/h3>\n\n\n\n<p>Knowing which repositories are currently configured on your system is useful before making changes. The command below displays a list of all repositories currently added to your Solus Linux system.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-20\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">sudo eopkg list-repo<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-20\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-17.jpg\"><img decoding=\"async\" width=\"948\" height=\"121\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-17.jpg\" alt=\"Listing repositories.\" class=\"wp-image-140683\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-17.jpg 948w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-17-380x49.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-17-768x98.jpg 768w\" sizes=\"(max-width: 948px) 100vw, 948px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"Adding_a_Repository\">Adding a Repository<\/h3>\n\n\n\n<p>To install software from a non-official source, you must first add its repository to your system.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-21\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">sudo eopkg add-repo &lt;repository-name&gt; &lt;repository-url&gt;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-21\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In the command above, &#8220;<em>&lt;repository-name&gt;<\/em>&#8221; is a label you assign to the repository. The &#8220;<em>&lt;repository-url&gt;<\/em>&#8221; is the URL where the repository&#8217;s packages are hosted.<\/p>\n\n\n\n<p>Of course, once you add a new repository to your Solus system, be sure to update the package index locally on your system.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-22\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">sudo eopkg update-repo<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-22\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Remember, only add repositories from <strong>trusted sources<\/strong> to maintain system security.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"Removing_a_Repository\">Removing a Repository<\/h3>\n\n\n\n<p>If you no longer need a repository or it&#8217;s causing issues, you can remove it.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-23\" data-shcb-language-name=\"Bash\" data-shcb-language-slug=\"bash\"><span><code class=\"hljs language-bash\">sudo eopkg remove-repo &lt;repository-name&gt;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-23\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Bash<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">bash<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"Bonus_Tip:_Use_of_GUI_Application\">Bonus Tip: Use of GUI Application<\/h2>\n\n\n\n<p>Since Solus is a desktop-focused operating system, it comes with a great graphical tool for managing software called Software Center, where with just a few mouse clicks, you can perform nearly all the tasks we&#8217;ve discussed in this guide.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-18.jpg\"><img decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-18-1024x640.jpg\" alt=\"Software Center\" class=\"wp-image-140737\" srcset=\"https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-18-1024x640.jpg 1024w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-18-380x238.jpg 380w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-18-768x480.jpg 768w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-18-1536x960.jpg 1536w, https:\/\/linuxiac.com\/wp-content\/uploads\/2024\/10\/solus-eopkg-18.jpg 1680w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>However, by mastering the use of the <code>eopkg<\/code> command, you&#8217;ll significantly boost your skills and deepen your understanding of the operating system itself. So, I&#8217;m confident that once you&#8217;re comfortable with the EOPKG package manager, you&#8217;ll often prefer using it for software management in Solus.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Conclusion\">Conclusion<\/h2>\n\n\n\n<p>We&#8217;ve reached the end of this guide. While EOPKG might not offer as much functionality and flexibility as other package managers like <a href=\"https:\/\/linuxiac.com\/apt-command-in-linux\/\">APT<\/a>, <a href=\"https:\/\/linuxiac.com\/dnf-command-linux\/\">DNF<\/a>, or <a href=\"https:\/\/linuxiac.com\/how-to-use-pacman-to-manage-software-on-arch-linux\/\">Pacman<\/a>, it still provides everything you need to fully control the managing software on your Solus system.<\/p>\n\n\n\n<p>With these commands at your fingertips, you can now have all the power to easily install new software, update existing applications, and maintain a clean and optimized environment without even having to touch the GUI app to do so.<\/p>\n\n\n\n<p>Of course, the EOPKG package manager provides even more options. That said, we strongly advise you to familiarize yourself with them from the official <a href=\"https:\/\/help.getsol.us\/docs\/category\/package-management\" target=\"_blank\" rel=\"noreferrer noopener\">Solus documentation<\/a>.<\/p>\n\n\n\n<p>I hope this guide was helpful in your Solus journey. As always, any suggestions and comments are highly welcome in the section below.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This guide shows you all the essential EOPKG commands for installing, updating, and handling packages efficiently on Solus Linux.<\/p>\n","protected":false},"author":10,"featured_media":140368,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,4417],"tags":[6154,2016,4113],"class_list":["post-140365","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tips","category-linux-knowledge","tag-eopkg","tag-package-manager","tag-solus"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/linuxiac.com\/wp-json\/wp\/v2\/posts\/140365","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linuxiac.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linuxiac.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linuxiac.com\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/linuxiac.com\/wp-json\/wp\/v2\/comments?post=140365"}],"version-history":[{"count":0,"href":"https:\/\/linuxiac.com\/wp-json\/wp\/v2\/posts\/140365\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/linuxiac.com\/wp-json\/wp\/v2\/media\/140368"}],"wp:attachment":[{"href":"https:\/\/linuxiac.com\/wp-json\/wp\/v2\/media?parent=140365"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linuxiac.com\/wp-json\/wp\/v2\/categories?post=140365"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linuxiac.com\/wp-json\/wp\/v2\/tags?post=140365"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}