(In reply to Paul Clarke from comment #0) > I'm trying to install a package, which has a dependency on package "A >= > version". The repository has package "A" with several versions, including > "version" and "version+1". I would expect "version+1" to be installed, but > that is not happening. Am I misunderstanding something about the dependency > resolution? I'll try to explain: - A package dependency has 'NAME [op VERSION]' (op: == != < <= > >=). A missing '[op VERSION]' (VERSION_RANGE definition) means 'any VERSION'. ! VERSION is NOT the version of the providing package, it's a property of the dependency - A package has a NAME and a VERSION; by this it implicitly provides the dependency 'NAME == VERSION' Two dependencies match if they refer to the same NAME and define an overlapping VERSION_RANGE (non empty intersection). A dependency matches a package, if it matches one of the packages 'Provides'. Back to your case: - The advance-toolchain-at*-devel packages all 'Provide: advance-toolchain-devel'. I.e. they match 'advance-toolchain-devel' in 'any VERSION'! That's why zypper search --provides 'advance-toolchain-devel >= 8.0-5' matches all 'advance-toolchain-at*-devel' packages. Remember: '8.0-5' is not a package version, but the dependencies version range. As all packages provide 'any VERSION' the '>= 8.0-5' is basically 'useless' Among all available PACKAGES matching the dependency, the resolver usually prefers the PACKAGE with the lex. least name: advance-toolchain-at8.0-devel in the highest available version: 8.0-6.