Having slow download speeds with Pacman in Arch Linux? Follow our guide to optimize and speed up your package manager for a smoother experience.
You are not alone if you are experiencing slow download speed while using Pacman in Arch Linux. Sometimes, system updates via pacman or any package installation become slower in your Arch system.
This issue can be frustrating, especially when downloading large-size packages.
However, there are a few ways which can fix this problem. Let’s talk about it.
But why slow download speed? There may be multiple reasons for it. Some of them might be related to your system configuration, etc.
- Internet speed or network connection problems
- pacman server issues
- Outdated Arch Linux mirrors
Table of Contents
How to fix slow download speed in Arch Linux using Pacman
Now that we have discussed the causes of slow download speed let’s move on to the solutions. Here are some step-by-step methods to help you fix slow download speed in Arch Linux using Pacman:
Use a different Pacman server
One of the easiest ways to fix slow download speed in Arch Linux is to use a different Pacman server. You can use a Pacman mirror that is closer to your country/location or choose a less busy mirror to improve download speed.
The server names are present in the pacman configuration file
/etc/pacman.d/mirrorlist. Here’s a sample of how it looks.
## United States Server = https://mirrors.kernel.org/archlinux/$repo/os/$arch ## United States Server = https://mirror.lty.me/archlinux/$repo/os/$arch ## United States Server = https://mirror.pit.teraswitch.com/archlinux/$repo/os/$arch ## United States Server = https://mirrors.xtom.com/archlinux/$repo/os/$arch ## United States Server = https://arch.hu.fo/archlinux/$repo/os/$arch ## United States Server = https://dfw.mirror.rackspace.com/archlinux/$repo/os/$arch ## United States Server = https://archmirror1.octyl.net/$repo/os/$arch ## United States Server = https://mirrors.mit.edu/archlinux/$repo/os/$arch ## United States Server = https://mirror.arizona.edu/archlinux/$repo/os/$arch ## United States Server = https://ftp.sudhip.com/archlinux/$repo/os/$arch ## United States Server = https://coresite.mm.fcix.net/archlinux/$repo/os/$arch ## United States Server = https://mirror.sfo12.us.leaseweb.net/archlinux/$repo/os/$arch ## United States
Now, if you know any server name, you can add it to this file. Also, you can comment out the existing server with a ‘#’ sign before the server’s URL. Then save and exit the file. After you change this file, update the database using the below command.
You can also check the Arch Linux official mirror page to verify the server status.
sudo pacman -Syy
But it’s a hassle to check and verify the mirrors which is closer to you. You can use a utility to automatically update the mirrorlist file. See the below tip.
Update mirrorlist automatically using reflector (Recommended)
reflector is a Python script which fetches the best arch mirror based on your location and updates the
/etc/pacman.d/mirrorlist automatically. It’s very handy.
First, you need to install
reflector using the command below.
sudo pacman -S reflector
Then, take a backup of your current mirrorlist.
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bkp
Then run the below command. You can change the country name as you wish.
sudo reflector --country 'India' --latest 5 --age 2 --fastest 5 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
After the above command is complete, you can try to run pacman and you should see a much higher speed.
Here’s a sample screenshot of my test run after updating the mirror list using
reflector. As you can see, the speed is now in Mbps; earlier, it was very low in kbps (see the first image above).
Here are a few more tips on reflector:
You can also add two or more countries in the same command using comma. For example:
sudo reflector --country 'India,France,' --latest 5 --age 2 --fastest 5 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
If you don’t want a specific country and want worldwide mirrors, use an empty string.
sudo reflector --country '' --latest 5 --age 2 --fastest 5 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
Enable parallel downloads
By default, Pacman downloads packages sequentially, which can slow down the download speed. However, you can enable parallel downloads to download multiple packages simultaneously, improving the download speed.
To enable parallel downloads, open the pacman configuration file using nano editor to change a specific switch. Use the below commands:
sudo nano /etc/pacman.conf
Next, find the following line in the file:
#MaxParallelDownloads = 5
Uncomment this line and change the number to the desired number of parallel downloads. Save and exit the file by pressing Ctrl+X, then Y, and finally, Enter.
After that, run the following command to update the Pacman database:
sudo pacman -Syy
Update your system regularly
Outdated packages or system components can also cause slow download speed. Therefore, it is essential to update your system regularly to ensure that you are using the latest packages and system components.
To update your system, open the terminal and run the following command:
sudo pacman -Syu
This command will update all the packages and system components to the latest version.
In my experience, update your Arch Linux system at least once a week for good performance of your Arch installation. If you can do it daily, then it’s the best.
Clean your Pacman cache
Over time, the Pacman cache can accumulate significant data, leading to slow download speed. Therefore, cleaning your Pacman cache regularly is essential to ensure it does not affect download speed.
To clean your Pacman cache, open the terminal and run the following command:
sudo pacman -Sc
$ sudo pacman -Sc [sudo] password for debugpoint: Packages to keep: All locally installed packages Cache directory: /var/cache/pacman/pkg/ :: Do you want to remove all other packages from cache? [Y/n] y removing old packages from cache... error: missing package metadata in /var/cache/pacman/pkg/appstream-0.16.0-1-x86_64.pkg.tar.zst.part error: missing package metadata in /var/cache/pacman/pkg/linux-6.0.1.arch1-1-x86_64.pkg.tar.zst.part Database directory: /var/lib/pacman/ :: Do you want to remove unused repositories? [Y/n] y removing unused sync repositories... $
This command will remove all the cached packages that are no longer required.
Use a download manager
A download manager can split the download into several parts, making it faster and more efficient. You can use any command-line download manager, such as
uget, for a faster download experience. However, this applies only to external downloads. It won’t impact pacman commands, obviously.
To install a download manager, open the terminal and run the following command:
sudo pacman -S uget
sudo pacman -S wget
After installing the download manager, you can use it to download packages or updates by copying the Pacman link and pasting it into the download manager.
Finally, the last option is to check and adopt a faster internet connection if needed. If you are in a low bandwidth Wi-Fi or wired connection via your ISP plan, then you might want to go for higher bandwidth plans.
Slow download speed can be frustrating, but it is a common issue that can be easily fixed. By using the methods explained above, you can significantly improve download speed in Arch Linux using Pacman.
I hope this helps.