Manual intervention catch-22

Hi all

I’m a relatively new Manjaro user, I last used my laptop in May 2023, and I’ve now re-opened it in Feb 2024 and and trying to update my system. I see in the ‘Known issues and solutions’ post that manual intervention is required for the kpeoplevcard and glibc-locales updates. However, when I try run the intervention for one, the other one fails.

e.g. if I start with ‘sudo pacman -Syu kpeoplevcard’ then towards the end of the installation I get the glibc-locales error ‘Errors occurred, no packages were upgraded.’

However if I start with ‘sudo pacman -Syu glibc-locales --overwrite /usr/lib/locale/*/*’ then I get:
‘error: failed to prepare transaction (could not satisfy dependencies)
:: removing kpeople breaks dependency ‘kpeople’ required by kpeoplevcard
:: removing kcontacts breaks dependency ‘kcontacts’ required by kpeoplevcard’

Appreciate all help.

Moderator edit: useless image removed.

Welcome to the forum! :vulcan_salute:

Try this command below… :point_down:

sudo pacman-mirrors -f && sudo pacman -Syuu --overwrite="/usr/lib/locale/*/*"

Please do take note that if you cannot keep your system up to date for whatever reason, then perhaps you would be better off using a fixed point-release distribution such as Debian, Ubuntu, Mint, Mageia, AlmaLinux, Rocky Linux, et al.

As an Arch derivative, Manjaro requires being kept up to date, and it also requires periodic maintenance, such as tending to .pacnew files.

1 Like

Roger that - this isn’t my primary system so I’m not able to tend to it regularly. I’ll look into those other options for future.

For this update, I attempted the command, but still received
‘Errors occurred, no packages were upgraded.’
which occurred after a long list of lines all very similar to
‘glibc-locales: /usr/lib/locale/zu_ZA.utf8/LC_TIME exists in filesystem’

The --overwrite should have taken care of that. Okay, then try this… :point_down:

sudo pacman -Rdd glibc-locales && sudo pacman -Syuu glibc-locales
1 Like
sudo pacman -Rdd glibc-locales && sudo pacman -Syuu glibc-locales~                1 ✘  8m 50s  
[sudo] password for allegorian: 

Packages (1) glibc-locales-2.36-1

Total Removed Size:  188.41 MiB

:: Do you want to remove these packages? [Y/n] 
:: Processing package changes...
(1/1) removing glibc-locales                                       [####################################] 100%
:: Running post-transaction hooks...
(1/2) Arming ConditionNeedsUpdate...
(2/2) Refreshing PackageKit...
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 multilib is up to date
error: target not found: glibc-locales~

PEBKAC. :stuck_out_tongue:


It’s glibc-locales, not glibc-locales~. :grin:

Also, please tend to your .pacnew files. :point_down:

The community repo was dropped 8 months ago already. Check how many .pacnew files you have with… :point_down:

pacdiff -o

… and merge them in. Do not blindly copy them over your existing configuration files, because that is bound to cause problems. The .pacnew files are templates, which contain changes to the default settings. Use common sense to adapt these changes to your existing configuration files.

1 Like

sudo pacman -Syu kpeoplevcard glibc-locales --overwrite ‘/usr/lib/locale/*’

You’re too late. :stuck_out_tongue:

why is that so?

Because… :point_down:


ah, then all that is needed is the

sudo pacman -Syu kpeoplevcard

I think OP already dealt with that. And it should have been -Syuu, not -Syu, because the kpeoplevcard package needed to be downgraded. :stuck_out_tongue:

This is from the update topic when this was discussed, is it wrong?:

A “newer” version of kpeoplevcard accidently existed, so to install the current version, either update with sudo pacman -Syu kpeoplevcard or sudo pacman -Syuu.

I think trying to update the package without using -Syuu would fail because of the lower version number in the repo versus the installed version. But among the advice given was the option to remove it first and then reinstall it, and in that case, -Syu would have sufficed. :wink:

i think uu is only needed to update&downgrade packages, not when specifying one explicitly?

No, the uu is necessary for allowing a downgrade. A single u does not allow for that.

From the man page… :point_down:



 -u, --sysupgrade
           Upgrades all packages that are out-of-date. Each currently-installed package will be examined and upgraded if a newer package exists. A report of all packages to upgrade will be presented, and the
           operation will not proceed without user confirmation. Dependencies are automatically resolved at this level and will be installed/upgraded if necessary.

           Pass this option twice to enable package downgrades; in this case, pacman will select sync packages whose versions do not match with the local versions. This can be useful when the user switches
           from a testing repository to a stable one.

           Additional targets can also be specified manually, so that -Su foo will do a system upgrade and install/upgrade the "foo" package in the same operation.

then the stable update guide is wrong :smiley: the quote is all that is said, nothing about removing it first.

That is always possible. I myself (and others) have had to edit those posts before because they contained typos. :man_shrugging:

note that you quoted -u, this is not directly related to -S package. -S package && -Syu is equivalent to -Syu package.

You can also use pacman -Su to upgrade all packages that are out-of-date. See Sync Options below. When upgrading, pacman performs version comparison to determine which packages need upgrading. This behavior operates as follows:

and -S does not have version checking afaik, only -u has

Doing that without the sync — i.e. y — is dangerous because it can lead to a partial update.

Anyway, OP has disappeared into the mists, and given that their last failure to execute the command was simply due to a typo on their part, I am marking the thread as solved. :wink: