conan: conan install says "Missing prebuilt package" even though search shows matching packages

To help us debug your issue please explain:

Conan version: 1.14.5 Compiler: gcc OS: Windows arch: x86_64 Steps: Attached the conanfile.txt used for the project default conan settings: [settings] os=Windows os_build=Windows arch=x86_64 arch_build=x86_64 compiler=gcc compiler.version=7 compiler.libcxx=libstdc++ compiler.exception=seh build_type=Release [options] [build_requires] [env]

conan install .. Gives the following message

boost_package_tools/1.66.0@bincrafters/stable: Already installed!
bzip2/1.0.6@conan/stable: WARN: Can't find a 'bzip2/1.0.6@conan/stable' package for the specified settings, options and dependencies:
- Settings: arch=x86_64, build_type=Release, compiler=gcc, compiler.exception=seh, compiler.version=7, os=Windows
- Options: build_executable=True, shared=False
- Dependencies:
- Package ID: 7bcb26fbb88872c62163dcfad726eb86fc9a5b8e

ERROR: Missing prebuilt package for 'bzip2/1.0.6@conan/stable'
Try to build it from sources with "--build bzip2"
Or read "http://docs.conan.io/en/latest/faq/troubleshooting.html#error-missing-prebuilt-package"

conanfile.txt

I tried searching for the bzip2 packages matching my settings and it showed some matches

$ conan search bzip2/1.0.6@conan/stable -r=all -q "arch=x86_64 AND os=Windows AND compiler=gcc AND build_type=Release AND compiler.exception=seh AND compiler.version=7"
Existing packages for recipe bzip2/1.0.6@conan/stable:

Existing recipe in remote 'conan-center':

    Package_ID: 402bf05ba0cb88a78c59efe7e90ebf2d341edad2
        [options]
            build_executable: True
            shared: False
        [settings]
            arch: x86_64
            build_type: Release
            compiler: gcc
            compiler.exception: seh
            compiler.threads: posix
            compiler.version: 7
            os: Windows
        Outdated from recipe: False

    Package_ID: 6dc82da13f94df549e60f9c1ce4c5d11285a4dff
        [options]
            shared: False
        [settings]
            arch: x86_64
            build_type: Release
            compiler: gcc
            compiler.exception: seh
            compiler.threads: posix
            compiler.version: 7
            os: Windows
        Outdated from recipe: True

    Package_ID: 8796a7e7c2d7bdba7ad775181d8b543980e7b18c
        [options]
            shared: True
        [settings]
            arch: x86_64
            build_type: Release
            compiler: gcc
            compiler.exception: seh
            compiler.threads: posix
            compiler.version: 7
            os: Windows
        Outdated from recipe: True

    Package_ID: e5d344ecc5ab9a803dc6f563bd524a451dc6e6e3
        [options]
            build_executable: True
            shared: True
        [settings]
            arch: x86_64
            build_type: Release
            compiler: gcc
            compiler.exception: seh
            compiler.threads: posix
            compiler.version: 7
            os: Windows
        Outdated from recipe: False

What am I missing here? How can I find out which of my settings/options are not matching the settings of these packages?

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 18 (10 by maintainers)

Most upvoted comments

In general, it would be very helpful if there was a verbose mode to conan install that would actually show the mismatch for each available prebuilt package in the case that no match is found. I am finding it maddening to read that there is no match – and not being able to discern why what appear to be matches are not matches.

Possible workarounds:

  • First, make sure that revisions are enabled, if using multiple servers, this is recommended
  • Use virtual repositories in Artifactory to aggregate, instead of aggregating in the client side
  • Usage of ConanCenter directly in production is not recommended. You should at least use a remote repository, but having a copy of the ConanCenter packages in your own server is recommended.
  • Do not split binaries for the same thing in different repositories. All binaries for the same “recipe” should be in the same server (not using binaries downloaded directly from ConanCenter would help of course)

In one of the repositories the binaries in question did not exist. In the other one it did. But Conan does not seem to search all repositories (probably this is even documented somewhere).

Oh yes, this makes sense. This is known 1.X behavior, in which Conan associates the binaries to the remote it is getting the recipe by default. This is this way because Conan 1.X initially didn’t have revisions, and without revisions you cannot guarantee consistency between the binaries and recipes, so it was this way.

Conan 2.0 will be able to iterate multiple remotes until finding a specific binary, as long as it belongs to the same recipe revision. That should in theory improve and avoid more of these potential issues.

Great, lets close this one now, don’t hesitate to re-open or create a new one if you see further issues. Thanks!

Ok, we found something… We had the same package in the same version with the same user and channel in different repositories, which were all configured as remotes. In one of the repositories the binaries in question did not exist. In the other one it did. But Conan does not seem to search all repositories (probably this is even documented somewhere).

Also I cannot recall how I managed to get the error mentioned here. Maybe I did something wrong. 😦

Not sure whether yesterday I just missed the information about which remote has been used, or whether it is not always shown.

As of now it looks like this is fixed for me. Thanks 😃

We are running Artifactory Enterprise Plus 7.7.3 rev 70703900, manifest is existing at both places. conaninfo.txt is also where it should be. No sure about the other details. But there should not be any filtering in place. I’d be happy about a zoom call, will get in touch we you, thanks.

Hi @planetmarshall

Have you had a look at this feature?

I haven’t yet but thanks - I’ll keep it in mind for future troubleshooting.