Skip to main content
Topic: [solved] Update error: failed to prepare transaction (could not satisfy depen... (Read 1738 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

[solved] Update error: failed to prepare transaction (could not satisfy depen...

Hello

I'm getting this error when trying to update:

Code: [Select]
$ sudo pacman -Syu 
:: Synchronizing package databases...
 system is up to date
 world                                                                                                                                    2,0 MiB  3,96 MiB/s 00:01 [#####################################################################################################] 100%
 galaxy                                                                                                                                   2,7 MiB  14,7 MiB/s 00:00 [#####################################################################################################] 100%
 sublime-text is up to date
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing ncurses (6.4-1) breaks dependency 'ncurses=6.3' required by lib32-ncurses

Some info on lib32-ncurses:

Code: [Select]
$ pacman -Qii lib32-ncurses
Name            : lib32-ncurses
Version         : 6.3-1
Description     : System V Release 4.0 curses emulation library (32-bit)
Architecture    : x86_64
URL             : https://invisible-island.net/ncurses/ncurses.html
Licenses        : MIT
Groups          : None
Provides        : libncurses++w.so=6-32  libformw.so=6-32  libmenuw.so=6-32  libpanelw.so=6-32  libncursesw.so=6-32
Depends On      : lib32-gcc-libs  lib32-glibc  ncurses=6.3
Optional Deps   : None
Required By     : lib32-llvm-libs
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 628,14 KiB
Packager        : Artix Build Bot <[email protected]>
Build Date      : Jo 04 nov 2021 02:32:25 +0200
Install Date    : Lu 26 dec 2022 05:54:46 +0200
Install Reason  : Installed as a dependency for another package
Install Script  : No
Validated By    : Signature
Backup Files    :
(none)

I thought about holding the package back, but I'm not sure what effect that might have in the long run.

Re: Update error: failed to prepare transaction (could not satisfy dependencies)

Reply #1
Maybe try another mirror or simply try again.
Mine is newer
Code: [Select]
pacman -Qi lib32-ncurses 
Name            : lib32-ncurses
Version         : 6.4-1
Description     : System V Release 4.0 curses emulation library (32-bit)
Architecture    : x86_64
URL             : https://invisible-island.net/ncurses/ncurses.html
Licenses        : MIT
Groups          : None
Provides        : libncurses++w.so=6-32  libformw.so=6-32  libmenuw.so=6-32  libpanelw.so=6-32
                  libncursesw.so=6-32
Depends On      : lib32-gcc-libs  lib32-glibc  ncurses=6.4
Optional Deps   : None
Required By     : lib32-gpm  lib32-llvm-libs  lib32-readline
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 599.79 KiB
Packager        : Artix Build Bot <[email protected]>
Build Date      : Tue 03 Jan 2023 09:38:21 GMT
Install Date    : Mon 09 Jan 2023 22:06:02 GMT
Install Reason  : Installed as a dependency for another package
Install Script  : No
Validated By    : Signature

Edit: also try specifically just updating lib32-ncurses. Not that that should make any difference but cant hurt.

Re: Update error: failed to prepare transaction (could not satisfy dependencies)

Reply #2
Maybe try another mirror or simply try again.
Mine is newer
Code: [Select]
pacman -Qi lib32-ncurses 
Name            : lib32-ncurses
Version         : 6.4-1
Description     : System V Release 4.0 curses emulation library (32-bit)
Architecture    : x86_64
URL             : https://invisible-island.net/ncurses/ncurses.html
Licenses        : MIT
Groups          : None
Provides        : libncurses++w.so=6-32  libformw.so=6-32  libmenuw.so=6-32  libpanelw.so=6-32
                  libncursesw.so=6-32
Depends On      : lib32-gcc-libs  lib32-glibc  ncurses=6.4
Optional Deps   : None
Required By     : lib32-gpm  lib32-llvm-libs  lib32-readline
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 599.79 KiB
Packager        : Artix Build Bot <[email protected]>
Build Date      : Tue 03 Jan 2023 09:38:21 GMT
Install Date    : Mon 09 Jan 2023 22:06:02 GMT
Install Reason  : Installed as a dependency for another package
Install Script  : No
Validated By    : Signature

Edit: also try specifically just updating lib32-ncurses. Not that that should make any difference but cant hurt.


I don't know how to try a new mirror and simply trying to update again yields the same result since I've been getting this error for almost a week.

I have tried updating lib32-ncurses and it says:
Code: [Select]
$ sudo pacman -S lib32-ncurses
error: target not found: lib32-ncurses

I then used
Code: [Select]
$ LC_ALL=C pacman -Qi | awk '/^Name/{name=$3} /^Installed Size/{print $4$5, name}' | sort -h
to list installed packages and I did find it in that list though.

Re: Update error: failed to prepare transaction (could not satisfy dependencies)

Reply #3
The Artix mirror you use is normally taken from the file /etc/pacman.d/mirrorlist

I say 'normally' as it is possible to use a different file. The mirror file is set in /etc/pacman.conf
If you open /etc/pacman.conf in a text editor, amongst other things, you'll see
[system]
Code: [Select]
[system]
Include = /etc/pacman.d/mirrorlist

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

#[galaxy-gremlins]
#Include = /etc/pacman.d/mirrorlist

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

Showing the mirrorlist location for each repo.
As I say normally all /etc/pacman.d/mirrorlist for the standard Artix repos

Open /etc/pacman.d/mirrorlist and you'll see a list of the mirrors which hold the Artix packages
Code: [Select]
##
## Artix Linux repository mirrorlist
## Generated on 2022-12-09
##

# Artix mirrors
# Use rankmirrors(1) to get a list of the fastest mirrors for your location,
# e.g.: rankmirrors -v -n 5 /etc/pacman.d/mirrorlist
# Then put the resulting list on top of this file.

# Default mirrors
Server = https://mirrors.dotsrc.org/artix-linux/repos/$repo/os/$arch
Server = https://mirror.clarkson.edu/artix-linux/repos/$repo/os/$arch
Server = http://ftp.ntua.gr/pub/linux/artix-linux/$repo/os/$arch

## Europe
# Czech Republic
Server = https://ftp.sh.cvut.cz/artix-linux/$repo/os/$arch
# Denmark
Server = https://mirrors.dotsrc.org/artix-linux/repos/$repo/os/$arch
Server = https://mirror.one.com/artix/$repo/os/$arch
# France
Server = https://artix.cccp.io/$repo/os/$arch
...
...
and so on
The first Server line which is not commented will be the mirror you are using.
My file is just left as the default (I'm lazy and it works) if yours is still the default as well you'd have the same mirror as me
Code: [Select]
Server = https://mirrors.dotsrc.org/artix-linux/repos/$repo/os/$arch
And then I'd be confused as to why you are not getting the update ?

Post your /etc/pacman.d/mirrorlist and /etc/pacman.conf if none of this makes sense and I'll have a look.

Edit: My bad habit of skim reading again!
Code: [Select]
$ sudo pacman -S lib32-ncurses
error: target not found: lib32-ncurses
That's not good.
Post the files I mentioned for sure.

Re: Update error: failed to prepare transaction (could not satisfy dependencies)

Reply #4

I found it and it's the same as yours. Posting mirrorlist and pacman.conf below. Just a head's up, this will be my last post for the night since it's getting late where I'm at and I won't be replying for a while. Thank you for trying to help.

Code: [Select]
##
## Artix Linux repository mirrorlist
## Generated on 2022-12-09
##

# Artix mirrors
# Use rankmirrors(1) to get a list of the fastest mirrors for your location,
# e.g.: rankmirrors -v -n 5 /etc/pacman.d/mirrorlist
# Then put the resulting list on top of this file.

# Default mirrors
Server = https://mirrors.dotsrc.org/artix-linux/repos/$repo/os/$arch
Server = https://mirror.clarkson.edu/artix-linux/repos/$repo/os/$arch
Server = http://ftp.ntua.gr/pub/linux/artix-linux/$repo/os/$arch

## Europe
# Czech Republic
Server = https://ftp.sh.cvut.cz/artix-linux/$repo/os/$arch
# Denmark
Server = https://mirrors.dotsrc.org/artix-linux/repos/$repo/os/$arch
Server = https://mirror.one.com/artix/$repo/os/$arch
# France
Server = https://artix.cccp.io/$repo/os/$arch
Server = https://ftp.crifo.org/artix/repos/$repo/os/$arch
# Hungary
Server = https://quantum-mirror.hu/mirrors/pub/artix-linux/$repo/os/$arch
# Germany
Server = https://mirror.netcologne.de/artix-linux/$repo/os/$arch
Server = http://mirrors.redcorelinux.org/artixlinux/$repo/os/$arch
Server = https://mirror.pascalpuffke.de/artix-linux/$repo/os/$arch
Server = https://ftp.uni-bayreuth.de/linux/artix-linux/$repo/os/$arch
Server = https://ftp.halifax.rwth-aachen.de/artixlinux/$repo/os/$arch
Server = https://artix.unixpeople.org/repos/$repo/os/$arch
Server = https://mirror1.artixlinux.org/repos/$repo/os/$arch
Server = https://eu-mirror.artixlinux.org/repos/$repo/os/$arch
# Greece
Server = https://ftp.cc.uoc.gr/mirrors/linux/artixlinux/$repo/os/$arch
Server = http://ftp.ntua.gr/pub/linux/artix-linux/$repo/os/$arch
# Monaco
Server = https://artixlinux.qontinuum.space/artixlinux/$repo/os/$arch
# Poland
Server = https://artix.sakamoto.pl/$repo/os/$arch
# Sweden
Server = https://ftp.ludd.ltu.se/mirrors/artix/$repo/os/$arch
Server = https://mirror.linux.pizza/artix-linux/$repo/os/$arch
# United Kingdom
Server = http://artist.artixlinux.org/repos/$repo/os/$arch

## North America
# United States
Server = https://artix.wheaton.edu/repos/$repo/os/$arch
Server = https://mirror.clarkson.edu/artix-linux/repos/$repo/os/$arch
Server = https://mirrors.rit.edu/artixlinux/$repo/os/$arch
Server = https://mirrors.ocf.berkeley.edu/artix-linux/$repo/os/$arch
Server = http://www.nylxs.com/mirror/repos/$repo/os/$arch
Server = https://mirrors.nettek.us/artix-linux/$repo/os/$arch
Server = https://us-mirror.artixlinux.org/$repo/os/$arch
# Canada
Server = https://mirror.csclub.uwaterloo.ca/artixlinux/$repo/os/$arch

## South America
# Brazil
Server = https://notindiegames.tk/pub/artix-linux/$repo/os/$arch
# Chile
Server = https://mirror1.cl.netactuate.com/artix/repos/$repo/os/$arch

## Asia
# China
Server = https://mirrors.tuna.tsinghua.edu.cn/artixlinux/$repo/os/$arch
Server = https://mirrors.aliyun.com/artixlinux/$repo/os/$arch
Server = https://mirror.nju.edu.cn/artixlinux/$repo/os/$arch
# Korea, Republic of
Server = https://mirror.funami.tech/artix/$repo/os/$arch
# Singapore
Server = https://mirror.freedif.org/Artix/$repo/os/$arch
# Taiwan
Server = https://mirrors.cloud.tencent.com/artixlinux/$repo/os/$arch
# Vietnam
Server = https://mirrors.42tm.tech/artix-linux/$repo/os/$arch

## Oceania
# Australia
Server = https://mirror.aarnet.edu.au/pub/artix/$repo/os/$arch

Code: [Select]
#
# /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 = 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 Artix Linux
# packagers with `pacman-key --populate artix`.

#
# 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 gremlins 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.

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

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

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

#[galaxy-gremlins]
#Include = /etc/pacman.d/mirrorlist

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

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

#[lib32-gremlins]
#Include = /etc/pacman.d/mirrorlist

#[lib32]
#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

[sublime-text]
Server = https://download.sublimetext.com/arch/stable/x86_64

Re: Update error: failed to prepare transaction (could not satisfy dependencies)

Reply #5
Uncomment these lines
Code: [Select]
#[lib32]
#Include = /etc/pacman.d/mirrorlist
Then
Code: [Select]
 sudo pacman -Syu 
again.

I'm not sure how you got lib32-ncurses in the first place but it's in the lib32 repo which you don't have enabled!
Maybe it was enabled and got disabled when you added the [sublime-text] repo ? My best guess ?

Re: Update error: failed to prepare transaction (could not satisfy dependencies)

Reply #6
Uncomment these lines
Code: [Select]
#[lib32]
#Include = /etc/pacman.d/mirrorlist
Then
Code: [Select]
 sudo pacman -Syu 
again.

I'm not sure how you got lib32-ncurses in the first place but it's in the lib32 repo which you don't have enabled!
Maybe it was enabled and got disabled when you added the [sublime-text] repo ? My best guess ?

It worked, Many thanks.

As for how it got commented out, I don't know, probably was sublime like you said, since it's the only thing I installed outside of the Artix repos.