How to Use the Command 'yay' (with examples)
- Linux
- December 17, 2024
The yay
command, short for Yet Another Yogurt, is a powerful tool used by Arch Linux and its derivatives for interacting with the Arch User Repository (AUR). It facilitates the search, installation, and management of packages from both the official repositories and AUR, enhancing the overall package management experience. Yay
combines the capabilities of both searching and synchronizing packages, offering an intuitive and efficient approach to package handling.
Interactively search and install packages from the repos and AUR
Code:
yay package_name|search_term
Motivation:
Using yay
to search and install packages interactively is incredibly useful when you’re unsure about the exact name of a package or when you want to explore related options. By initiating a search with a partial name or a keyword, yay
provides a list of candidates along with descriptions, helping users make informed decisions.
Explanation:
package_name|search_term
: Replace this with the keyword you want to use.yay
will search both the official repositories and the AUR for any matches to the term you provide.
Example Output:
1 aur/some-package 1.0-1 (+10 0.00)
A description of some package
2 aur/another-package 2.5-2 (+5 0.01)
A description of another package
3 extra/yet-another-package 3.4-3 (+12 0.02)
A description of yet another package
:: Choose a package to install (or type numbers to select multiple):
Synchronize and update all packages from the repos and AUR
Code:
yay
Motivation:
Keeping your system up-to-date is crucial for security, stability, and access to the latest features. The yay
command updates all packages from both the official repositories and the AUR, ensuring your system remains in optimal condition without the need to separately handle AUR updates.
Explanation:
- The lack of additional parameters tells
yay
to perform a full system upgrade by synchronizing and upgrading all the user-installed packages from the official repositories and the AUR.
Example Output:
:: Synchronizing package databases...
core is up to date
extra is up to date
community is up to date
:: Starting full system upgrade...
:: Replace old-package with extra/new-package? [Y/n]
:: Searching AUR for updates...
-> AUR update complete!
Synchronize and update only AUR packages
Code:
yay -Sua
Motivation:
Not all users need or want to update their entire system at once, especially if they are focusing on specific AUR packages. This command is particularly valuable for users who have tested stable installations and want to minimize changes, only updating their AUR packages to ensure they have the latest versions and fixes.
Explanation:
-S
: Synchronize the package databases and update the system.-u
: Refresh all the local package databases.-a
: Explicitly target only the AUR packages for updating.
Example Output:
:: Searching AUR for updates...
-> Checking development packages...
-> Package `custom-package` is outdated - updating...
:: Proceed with installation? [Y/n]
Install a new package from the repos and AUR
Code:
yay -S package
Motivation:
When there’s a specific package you need from either the official repositories or AUR, this command streamlines the process of finding and installing that package. It’s ideal for users who know exactly what they want to add to their system.
Explanation:
-S
: Tellsyay
to synchronize the package and install it.package
: Replace with the exact name of the package you wish to install.
Example Output:
:: Resolving dependencies...
:: Calculating required disk space...
:: Proceed with installation? [Y/n]
Remove an installed package and both its dependencies and configuration files
Code:
yay -Rns package
Motivation:
Over time, you might accumulate packages that are no longer necessary. This command not only removes the selected package but also any dependencies that were installed with it and are no longer needed, as well as its configuration files. This helps in maintaining a clean system.
Explanation:
-R
: Remove a package.-n
: Remove any unnecessary dependencies.-s
: Remove configuration files associated with the package.
Example Output:
checking dependencies...
:: Package to remove: "unwanted-package"
Do you want to remove it and its dependencies? [Y/n]
Search the package database for a keyword from the repos and AUR
Code:
yay -Ss keyword
Motivation:
Searching for a package with specific features or utilities can sometimes feel like finding a needle in a haystack. This command allows for a broad search across the AUR and official repositories to help discover new or alternative software.
Explanation:
-Ss
: Specifies to search for a package in both the official repository and AUR.keyword
: The term you want to search for within the package names and descriptions.
Example Output:
extra/package-one 1.2.3-4
Description of package one
aur/custom-package 2.3.4-2
A custom package from AUR
Remove orphaned packages (installed as dependencies but not required by any package)
Code:
yay -Yc
Motivation:
Orphaned packages can take up unnecessary space on your system, potentially slowing it down or leading to inconsistencies. This command identifies and removes these unused packages, helping to keep your system lean and efficient.
Explanation:
-Y
: Indicates action related to package maintenance.-c
: Cleans up orphaned packages that are no longer required by any installed package.
Example Output:
Packages to remove:
- orphaned-lib (1.0.1)
:: Do you want to remove these packages? [Y/n]
Show statistics for installed packages and system health
Code:
yay -Ps
Motivation:
Getting a snapshot of your system’s health and installed packages can be highly informative, especially when troubleshooting or planning updates. This command provides detailed statistics about the number of packages, their sources, and general system status.
Explanation:
-P
: Refers to the pacman database information.-s
: Provides detailed system statistics.
Example Output:
:: Package Statistics
Total installed packages: 500
Packages explicitly installed: 200
Packages installed as dependencies: 300
Out-of-date packages: 5
Build directory: /home/user/.cache/yay
Conclusion:
The yay
command is an incredibly versatile tool for managing software on Arch Linux-based systems. It simplifies interactions with both official repositories and the AUR, allowing users to easily search for, install, update, and clean packages. Whether you’re ensuring your system is up to date or cleaning up unnecessary files, yay
provides efficient solutions tailored to your specific needs.