Fixing Slow Download Speed while Using pacman in Arch Linux

5 min


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.

Example of a slow download speed situation using pacman
Example of a slow download speed situation using pacman

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

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)

The 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
Running the reflector command to update mirrorlist
Running the reflector command to update 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).

After change in mirrorlist - the speed is increased
After change in mirrorlist – the speed is increased

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 wget or 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.

Conclusion

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.

Cheers.


Arindam

Creator and author of debugpoint.com. Connect with me via Telegram, 𝕏 (Twitter), or send us an email.
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

5 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments