Pacman doesn't download anything - Always 404

Solution 1:

Try using curl (it's part of the core, so should be installed) to download the core.db file using the command below. This will help rule out whether your problem is related to pacman and/or its configuration, or whether your problem is related to your Internet connection.

curl -O http://mirror.aarnet.edu.au/pub/archlinux/core/os/x86_64/core.db

If core.db successfully downloads, open it in a text editor (nano core.db or even less core.db). If the contents look similar to this HTML below (specifically saying 404 Not Found somewhere in the contents), then it's probably your pacman configuration. I would download the latest Arch Installation CD and re-install pacman from that.

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /pub/archlinux/core/os/x86_64/core.db was not foun$
<hr>
<address>Apache/2.2.15 (Red Hat) Server at 127.0.0.1 Port 8080</address>
</body></html>

If core.db fails to download, then it's your Internet connection. Post any error messages you receive and we can help you further troubleshoot.

Also, run this command command

cat /etc/pacman.d/mirrorlist | grep aarnet.edu.au

and verify the output matches this

Server = http://mirror.aarnet.edu.au/pub/archlinux/$repo/os/$arch

If it does not, download the latest mirror list and uncomment your mirrors. You can do this quickly using this command (you'll still need to open it in a text editor and uncomment the lines Server = ... lines).

sudo mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist~ && curl -o /etc/pacman.d/mirrorlist https://www.archlinux.org/mirrorlist/?country=AU

If after doing this, pacman -Syy still fails, then it's my opinion your installation of pacman is completely broken. Follow the instructions on the Arch Wiki to re-install pacman.

Solution 2:

Use mirror reflector

sudo pacman -S reflector 

Install it and type:

sudo reflector -l 5 --sort rate --save /etc/pacman.d/mirrorlist

Solution 3:

For the record, if you are not an ARM user, you may have a 32 bit Arch Linux, but the i686 support ended.

$ pacman -Syu --debug

If you see i686 in the repo URLs, then you should switch to Arch Linux 32. Basically you can use its mirrorlist instead of the official one.

Solution 4:

I ran into this issue today with my new Raspberry Pi 4.
In my case, pacman-mirrors generated URLs ending with

.../$arch/$repo

but it should, in fact, be

.../$repo/$arch

hence the 404 error during the download.