Pacman has become slow (on plain arch linux)

I have tried cleaning cache, changing mirrors, merging the new and old pacman.conf files and I have no foreign packages.

Also, I have good download speeds and there are no issues with downloading packages, I use only this mirror

Server = https://mirror.csclub.uwaterloo.ca/archlinux/$repo/os/$arch

To give you an idea of how slow things are, I have the screengrab package already installed and if I do # pacman -S screengrab to reinstall it, 12 solid seconds pass before I can press y.

I have cleaned cache before trying to perform the reinstall.

~> paccache -rk1
==> no candidate packages found for pruning

My /etc/pacman.conf

#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives

#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir     = /
#DBPath      = /var/lib/pacman/
#CacheDir    = /var/cache/pacman/pkg/
#LogFile     = /var/log/pacman.log
#GPGDir      = /etc/pacman.d/gnupg/
#HookDir     = /etc/pacman.d/hooks/
HoldPkg     = pacman glibc
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
Architecture = auto

# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg   =
#IgnoreGroup =

#NoUpgrade   =
#NoExtract   =

# Misc options
#UseSyslog
Color
#NoProgressBar
CheckSpace
#VerbosePkgLists
ParallelDownloads = 10
DownloadUser = alpm
#DisableSandboxFilesystem
#DisableSandboxSyscalls

# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel    = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required

# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Arch Linux
# packagers with `pacman-key --populate archlinux`.

#
# REPOSITORIES
#   - can be defined here or included from another file
#   - pacman will search repositories in the order defined here
#   - local/custom mirrors can be added here or in separate files
#   - repositories listed first will take precedence when packages
#     have identical names, regardless of version number
#   - URLs will have $repo replaced by the name of the current repo
#   - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
#       [repo-name]
#       Server = ServerName
#       Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#

# The testing repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.

#[core-testing]
#Include = /etc/pacman.d/mirrorlist

[core]
Include = /etc/pacman.d/mirrorlist

# [extra-testing]
# Include = /etc/pacman.d/mirrorlist

[extra]
Include = /etc/pacman.d/mirrorlist

# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.

#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist

#[multilib]
#Include = /etc/pacman.d/mirrorlist

# An example of a custom package repository.  See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs

Parts of inxi output

CPU:
  Info: dual core model: Intel Core i3-7100U bits: 64 type: MT MCP cache:
    L2: 512 KiB
  Speed (MHz): avg: 1100 min/max: 400/2400 cores: 1: 1100 2: 1100 3: 1100
    4: 1100
Drives:
  Local Storage: total: 931.51 GiB used: 299.07 GiB (32.1%)
  ID-1: /dev/sda vendor: Seagate model: ST1000LM035-1RK172 size: 931.51 GiB
Partition:
  ID-1: / size: 58.19 GiB used: 40.17 GiB (69.0%) fs: ext4 dev: /dev/sda8
  ID-2: /boot size: 4.87 GiB used: 278.6 MiB (5.6%) fs: vfat dev: /dev/sda1

EDIT: After so much of back and forth, it was concluded that it’s just my hard-drive that is very slow which causes pacman to take some time in resolving dependencies and this is normal.

Are you using EOS or Arch?

If the former, there is no repository for EOS configured in your pacman.conf.

Also, I would add some more mirrors to my mirrorlist and rate them.

Hey, thanks for chiming in, I am using plain arch, and as I replied to the Why are you using endeavouros instead of arch this is like the reason I want to go ahead and install EOS.

I have no problems with download speeds at all.. It’s just Resolving dependencies that takes a lot of time.

Plain Arch is fine.

As mentioned earlier, I would use a few more mirrors and rate them.

And perhaps force download a fresh pacman database and update:

sudo pacman -Syyu

I just use multiple mirrors and reflector. Have you tried using multiple mirrors and automatically refreshing your mirror(s) every now then can’t hurt.

Well I noticed that you don’t have the multilib repo enabled, if you have 32 bit packages you will need that one I think.

I don’t think I have 32 bit packages, I am not entirely sure though.

I have done # pacman -Syyu , reflector is running with

# reflector --latest 200 --protocol http,https --sort rate --save /etc/pacman.d/mirrorlist

From 1 to 200 is a big jump. But alright, if it is that many mirrors you want now :grinning_face_with_smiling_eyes:

Just enabling the multlib repo would give you the certainty,

It was in the examples so.. going ahead lol.
(https://man.archlinux.org/man/reflector.1#EXAMPLES)

Check

grep lib32 /var/log/pacma.log

This should give you some idea though there are other lib32 packages without lib32 in their name.

There was a small typo it’s pacman.log but I got it.

~> grep lib32 /var/log/pacman.log
[PACMAN] Running 'pacman -S ncurses lib32-ncurses motif'

But I don’t have it installed at the moment,

~> pacman -Qi lib32-ncurses
error: package 'lib32-ncurses' was not found

Hmm.. 200 is taking too long :frowning:
Going with 10,

~> sudo reflector --country Canada --latest 10 --protocol http,https --sort rate --save /etc/pacman.d/mirrorlist

EDIT: It’s done :smiley:

Performing # pacman -Syyu

~> sudo pacman -Syyu
:: Synchronizing package databases...
 core                                                          126.6 KiB  83.8 KiB/s 00:02 [#####################################################] 100%
 extra                                                           8.3 MiB  2.49 MiB/s 00:03 [#####################################################] 100%
:: Starting full system upgrade...
 there is nothing to do

Oh.. now it’s instantaneous,

Thanks @cactux , @keescase and @Cphusion for your help :smiley:

But I don’t understand how adding more mirrors helped this :red_question_mark:

You can configure reflector in this file.

/etc/xdg/reflector/reflector.conf

Then enable the timer.

sudo systemctl reflector.timer --now

Edit/Correction:

sudo systemctl enable reflector.timer --now

Thanks, I did that, there is a tiny typo,
shouldn’t sudo systemctl reflector.timer --now
be sudo systemctl enable reflector.timer --now

You are correct. I’ll edit it.

Could be a multiple of things but since refreshing your mirrors and using multiple mirrors it seems to have been related to that specific mirror or else you would have still gotten the same result as before.