Unable to update system: removing lib32-libcap breaks the dependency

The latest system update is interrupted and gives me this message:
Unable to satisfy dependencies:
removing lib32-libcap breaks the dependency ‘lib32-libcap’ requested by lib32-gstreamer

The update of 1.4Gb is the latest one today March 19 2025.

If anyone can help me
Thanks everyone

1 Like

Create a list of alien packages

pacman -Qqm

If needed you can save the package list for later evaluation

pacman -Qqm > alien-pkgs.txt

Remove the packages listed (check if you are alien package for wifi)

sudo pacman -R $(pacman -Qqm)

Update

sudo pacman -Syu

Evaluate the alien package list - rebuild only those you require

1 Like

lib32-gstreamer needs it - it depends on it
You’d have to remove that as well.

Who knows what other software will need it? - perhaps wine
Or nothing else.

Try removing it and see what else comes up.

Thank you, I made the list as you wrote me, what do you think could be the one that causes problems?
I would prefer to avoid removing and then rebuilding everything.

android-studio
balena-etcher
brother-hll2300d
bundletool
c-client
debtap
docker-scan
electron19
google-earth-pro
jdupes
kde-servicemenus-rootactions
kdelibs4support
kemoticons
kfilemetadata5
khotkeys
khtml
kirigami-addons5
kjs
kpeople5
kpeoplevcard
kquickcharts5
krunner5
ksanecore5
lib32-libva-vdpau-driver
libkcddb5
libksane5
libva-vdpau-driver
manjaro-hotfixes
manjaro-settings-manager-kcm
modemmanager-qt5
opera-ffmpeg-codecs
php-imap
plasma-simplemenu
pulseaudio-ctl
pyenv-virtualenv
pyinstaller-hooks-contrib
python-altgraph
python-manjaro-sdk
python-tinyaes
qqc2-desktop-style5
reiserfsprogs
rmlint
rmlint-shredder
spectre-meltdown-checker
spek
systemd-fsck-silent
systemd-kcm
v86d
web-installer-url-handler
yay-git

What you prefer is irrelevant in this context.

You have many unsupported packages - if you want help to update your system - you need to remove them.

1 Like

Post the contents of /etc/pacman.conf here. If you’re not removing orphaned packages it is, likely that you’re not merging pacnew files.

The list is alien packages

  • custom build
  • packages removed from the repo
  • old plasma 5 packages possibly moved to AUR

@cpit
In this case It is mandatory to clean the system otherwise - at least using a pamac update - will trigger compiling a lot of obsolete packages.

I’m on Testing Branch and had the same issues a couple of weeks ago. Sadly, I don’t recall which package(s) were the problem.

However, I do remember the process I went through to resolve the matter.

This does not, BTW, negate the need to look into unsupported packages as others have suggested.

First, reverse the thinking that you track dependencies from the top. It’s not asking which package(s) require X dependency. It’s X dependency is required by which package(s)?

I’m a very poor typist and have an even worse memory for command line switches and whatnot, so I use the pamac gui. I’m certain this can all be done from the command line. Perhaps others can suggest how.

In the pamac gui, I searched installed packages for lib32. Then I found the offenders and checked their dependencies (click on the package name) and what packages depend upon them. I traced each up to the top.

In my case, I discovered they were all used by packages I don’t require, so I removed those applications, and the update went through fine.

Then I repeated the process with everything requiring any lib32. I didn’t need any of them. So I removed them, then removed the multilib repository from my pacman.conf.

Sorry I can’t be more specific, but it’s all I have.

2 Likes

For me it is a problem to remove things that I use for work with the risk of not being operational.
In particular Php-imap, Docker, pyenv-virtualenv, pyinstaller and especially Android studio that with OpenJdk and its sdk I struggled to install it.
Let’s hope I don’t have to do it again.

Here is the content of /etc/pacman.conf
And thanks for your advice.

### Pamac configuration file

## When removing a package, also remove those dependencies
## that are not required by other packages (recurse option):
#RemoveUnrequiredDeps

## How often to check for updates, value in hours (0 to disable):
RefreshPeriod = 24

## When no update is available, hide the tray icon:
#NoUpdateHideIcon

## When applying updates, enable packages downgrade:
#EnableDowngrade

## When installing packages, do not check for updates:
SimpleInstall

## Allow Pamac to search and install packages from AUR:
EnableAUR

## Keep built packages from AUR in cache after installation:
#KeepBuiltPkgs

## When AUR support is enabled check for updates from AUR:
#CheckAURUpdates

## When check updates from AUR support is enabled check for vcs updates:
#CheckAURVCSUpdates

## AUR build directory:
BuildDirectory = /var/tmp

## Number of versions of each package to keep when cleaning the packages cache:
KeepNumPackages = 2

## Remove only the versions of uninstalled packages when cleaning the packages cache:
OnlyRmUninstalled

## Download updates in background:
#DownloadUpdates

## Maximum Parallel Downloads:
MaxParallelDownloads = 4

CheckFlatpakUpdates

EnableSnap

EnableFlatpak


#OfflineUpgrade

That is not your full /etc/pacman.conf

Also, use the button that looks like this </> when pasting plain text files.

1 Like

sorry… :frowning:

#
# /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 manjaro-system
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
#UseDelta    = 0.7
Architecture = auto

#IgnorePkg   =
#IgnorePkg   =
#IgnoreGroup =

#NoUpgrade   =
#NoExtract   =

# Misc options
#UseSyslog
#Color
#NoProgressBar
# We cannot check disk space from within a chroot environment
CheckSpace
#VerbosePkgLists
#ParallelDownloads = 5

# 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 Manjaro Linux
# packagers with `pacman-key --populate archlinux manjaro`.

#
# 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]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

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

[community]
SigLevel = PackageRequired
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]
SigLevel = PackageRequired
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


  1. Your pacman.conf still contains community repository. You need to remove the whole part (3 lines) :
[community]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist
  1. to get a list of packages requiring one specific, run :
    pactree -r <package name>
1 Like

remove these three lines - or comment them out
that repo does not exist anymore

first topic here:

Manjaro Linux Forum



You are not supposed to remove all those packages - just evaluate which one of those you actually need or want and act accordingly.

1 Like

This worked for me (orphan package removal): pacman -Rns $(pacman -Qtdq)

In any case - you will need to rebuild your alien packages.

There is a lot of packages which no longer exist - and can be removed.

Open the list in a text editor and remove applications like android studio.

As a bare minimum - you need to remove the following

docker-scan
electron19
kde-servicemenus-rootactions
kdelibs4support
kemoticons
kfilemetadata5
khotkeys
khtml
kirigami-addons5
kjs
kpeople5
kpeoplevcard
kquickcharts5
krunner5
ksanecore5
lib32-libva-vdpau-driver
libkcddb5
libksane5
libva-vdpau-driver
manjaro-hotfixes
manjaro-settings-manager-kcm
modemmanager-qt5
plasma-simplemenu
pulseaudio-ctl
python-manjaro-sdk
qqc2-desktop-style5
reiserfsprogs
rmlint
rmlint-shredder
spectre-meltdown-checker
systemd-fsck-silent
systemd-kcm
v86d
web-installer-url-handler
yay-git

When you have removed the select few - save the list - feed it to pacman

sudo pacman -Rns - < <pkgfile.txt>

Then remove orphans

pamac remove --orphans

As for the ramaining aliens

android-studio
brother-hll2300d
bundletool
c-client
google-earth-pro
jdupes
opera-ffmpeg-codecs
php-imap
pyenv-virtualenv
pyinstaller-hooks-contrib
python-altgraph
python-tinyaes
spek

You may need to rebuild them when you encounter issues.

2 Likes

Finally I thought to look for the package that uses lib32-gstreamer and remove only it as suggested by brucew.

pactree -r lib32-gstreamer
lib32-gstreamer
└─lib32-gst-plugins-base-libs

but lib32-gst-plugins-base-libs was not present in the alien package list.

So following the trail indicated by linux-aarhus I gradually removed the aliens present.
When I was left with only the ones I cared about (android-studio,brother-hll2300d,c-client,php-imap,pyenv-virtualenv) I tried rebooting and it worked.
However, since I did not reboot after the previous removals, I was left with the doubt that perhaps I could have removed less but the important thing is that I did not have to remove important packages.

I thank everyone for the precious advice you have given me.
Greetings from Italy to everyone.

Ps
However, it is strange to me that pactree did not give me the root of one of the packages present since then after the removal it worked.
If anyone knows why I’m really interested in understanding it.

Hi,
I have the exact same problem, so I did:

sudo pacman -R $(pacman -Qqm)

and then:

sudo pacman -Syu

however, this didn’t work, because of lib32-gstreamer, so I removed that app in the add/remove software program. However, this gave a new error, so I added the lib32-gstreamer back (I am a noob, yes). I still get the following error message when I update in the add/remove software program:

Preparing...
Synchronizing package databases...
Error: failed retrieving file 'community.db' from mirrors2.manjaro.org : The requested URL returned error: 404
Error: failed retrieving file 'community.db' from mirrors.cicku.me : The requested URL returned error: 404
Error: failed retrieving file 'community.db' from mirrors.manjaro.org : The requested URL returned error: 404
failed to retrieve some files
Failed to synchronize databases
Warning: installing libcap (2.75-1) breaks dependency 'libcap=2.71' required by lib32-libcap
Add lib32-libcap to remove
Failed to prepare transaction:
could not satisfy dependencies:
- removing lib32-libcap breaks dependency 'lib32-libcap' required by lib32-gstreamer
Resolving dependencies...
Checking inter-conflicts...
Failed to prepare transaction:
could not satisfy dependencies:
- removing lib32-libcap breaks dependency 'lib32-libcap' required by lib32-gstreamer

So now I am posting here, to find out for sure what exactly I need to do…
Help please?

have a look here:

Manjaro Linux Forum

first topic - the first pinned one

You need to remove the community repository from /etc/pacman.conf

It was also mentioned in this here thread - did you not even read through it?

… but kudos for providing the well formatted output, so that this could be spotted easily …

2 Likes

I read it through to the 3rd post (which was yours btw) and then felt rather stupid, so decided to post my own problem here to have more assurance.
I put hashtags infront of the following lines:

[community]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

and the system seems to be updating properly now. Thank you very much for the support and my apologies for making you repeat yourself again, I understand it is frustrating.
Have a wonderful weekend everyone! :sweat_smile:

1 Like

Hello, I have the same problem with ‘lib32-system’. Here the complete message in german:

could not satisfy dependencies:

  • das Entfernen von lib32-libcap verletzt Abhängigkeit ‘lib32-libcap’ benötigt von lib32-systemd

can I remove it without problems? lib32-systemd sounds important.

Thank you and kind regards
Andreas