Skip to content
This repository has been archived by the owner on Jan 19, 2019. It is now read-only.

Error: a virtual package provided by multiple packages, you must explicitly select one #137

Open
dmigous opened this issue Jun 1, 2018 · 2 comments

Comments

@dmigous
Copy link

dmigous commented Jun 1, 2018

Cookbook version

8.1.1

Chef-client version

13.9.1

Platform Details

debian::jessie docker image

Scenario:

Actually I'm trying to install install redisio cookbook https://github.com/brianbianco/redisio which depends on build-essentials, and there during installation process I have this issue. So I tried to play just with build-essentials to make sure that error still the same.

Steps to Reproduce:

here is my docker-redis.json

{
  "run_list": [
    "recipe[build-essential::default]"
  ],
  "automatic": {
    "ipaddress": "localhost"
  }
}

and then I run chef-solo -c /chef/solo.rb -j /chef/nodes/docker-redis.json

Expected Result:

installed build-essential package

Actual Result:

Fails with error: ["autoconf", "binutils-doc", "bison", "build-essential", "flex", "gettext", "ncurses-dev"] is a virtual package provided by multiple packages, you must explicitly select one

here is full log

Starting Chef Client, version 13.9.1
resolving cookbooks for run list: ["build-essential::default"]
Synchronizing Cookbooks:
  - build-essential (8.0.4)
  - seven_zip (3.0.0)
  - mingw (2.0.2)
  - windows (4.2.5)
Installing Cookbook Gems:
Compiling Cookbooks...
Converging 1 resources
Recipe: build-essential::default
  * build_essential[install_packages] action install
    * apt_package[autoconf, binutils-doc, bison, build-essential, flex, gettext, ncurses-dev] action install
      
      ================================================================================
      Error executing action `install` on resource 'apt_package[autoconf, binutils-doc, bison, build-essential, flex, gettext, ncurses-dev]'
      ================================================================================
      
      Chef::Exceptions::Package
      -------------------------
      ["autoconf", "binutils-doc", "bison", "build-essential", "flex", "gettext", "ncurses-dev"] is a virtual package provided by multiple packages, you must explicitly select one
      
      Resource Declaration:
      ---------------------
      # In /chef/local-mode-cache/cache/cookbooks/build-essential/resources/build_essential.rb
      
       28:     package %w( autoconf binutils-doc bison build-essential flex gettext ncurses-dev )
       29:   when 'amazon', 'fedora', 'rhel'
      
      Compiled Resource:
      ------------------
      # Declared in /chef/local-mode-cache/cache/cookbooks/build-essential/resources/build_essential.rb:28:in `block in class_from_file'
      
      apt_package("autoconf, binutils-doc, bison, build-essential, flex, gettext, ncurses-dev") do
        package_name ["autoconf", "binutils-doc", "bison", "build-essential", "flex", "gettext", "ncurses-dev"]
        action [:install]
        default_guard_interpreter :default
        declared_type :package
        cookbook_name "build-essential"
      end
      
      System Info:
      ------------
      chef_version=13.9.1
      platform=debian
      platform_version=8.10
      ruby=ruby 2.4.3p205 (2017-12-14 revision 61247) [x86_64-linux]
      program_name=chef-solo worker: ppid=10;start=07:34:44;
      executable=/opt/chef/bin/chef-solo
      
    
    ================================================================================
    Error executing action `install` on resource 'build_essential[install_packages]'
    ================================================================================
    
    Chef::Exceptions::Package
    -------------------------
    apt_package[autoconf, binutils-doc, bison, build-essential, flex, gettext, ncurses-dev] (/chef/local-mode-cache/cache/cookbooks/build-essential/resources/build_essential.rb line 28) had an error: Chef::Exceptions::Package: ["autoconf", "binutils-doc", "bison", "build-essential", "flex", "gettext", "ncurses-dev"] is a virtual package provided by multiple packages, you must explicitly select one
    
    Resource Declaration:
    ---------------------
    # In /chef/local-mode-cache/cache/cookbooks/build-essential/recipes/default.rb
    
     22: build_essential 'install_packages' do
     23:   compile_time node['build-essential']['compile_time']
     24: end
    
    Compiled Resource:
    ------------------
    # Declared in /chef/local-mode-cache/cache/cookbooks/build-essential/recipes/default.rb:22:in `from_file'
    
    build_essential("install_packages") do
      action [:install]
      default_guard_interpreter :default
      declared_type :build_essential
      cookbook_name "build-essential"
      recipe_name "default"
      compile_time false
    end
    
    System Info:
    ------------
    chef_version=13.9.1
    platform=debian
    platform_version=8.10
    ruby=ruby 2.4.3p205 (2017-12-14 revision 61247) [x86_64-linux]
    program_name=chef-solo worker: ppid=10;start=07:34:44;
    executable=/opt/chef/bin/chef-solo
    

Running handlers:
[2018-06-01T07:35:07+00:00] ERROR: Running exception handlers
[2018-06-01T07:35:07+00:00] ERROR: Running exception handlers
Running handlers complete
[2018-06-01T07:35:07+00:00] ERROR: Exception handlers complete
[2018-06-01T07:35:07+00:00] ERROR: Exception handlers complete
Chef Client failed. 0 resources updated in 22 seconds
[2018-06-01T07:35:07+00:00] FATAL: Stacktrace dumped to /chef/local-mode-cache/cache/chef-stacktrace.out
[2018-06-01T07:35:07+00:00] FATAL: Stacktrace dumped to /chef/local-mode-cache/cache/chef-stacktrace.out
[2018-06-01T07:35:07+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2018-06-01T07:35:07+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2018-06-01T07:35:07+00:00] ERROR: build_essential[install_packages] (build-essential::default line 22) had an error: Chef::Exceptions::Package: apt_package[autoconf, binutils-doc, bison, build-essential, flex, gettext, ncurses-dev] (/chef/local-mode-cache/cache/cookbooks/build-essential/resources/build_essential.rb line 28) had an error: Chef::Exceptions::Package: ["autoconf", "binutils-doc", "bison", "build-essential", "flex", "gettext", "ncurses-dev"] is a virtual package provided by multiple packages, you must explicitly select one
[2018-06-01T07:35:07+00:00] ERROR: build_essential[install_packages] (build-essential::default line 22) had an error: Chef::Exceptions::Package: apt_package[autoconf, binutils-doc, bison, build-essential, flex, gettext, ncurses-dev] (/chef/local-mode-cache/cache/cookbooks/build-essential/resources/build_essential.rb line 28) had an error: Chef::Exceptions::Package: ["autoconf", "binutils-doc", "bison", "build-essential", "flex", "gettext", "ncurses-dev"] is a virtual package provided by multiple packages, you must explicitly select one
[2018-06-01T07:35:07+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
[2018-06-01T07:35:07+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
The command '/bin/sh -c cd /chef && chef-solo -c /chef/solo.rb -j /chef/nodes/docker-redis.json' returned a non-zero code: 1
ra
@rennhak
Copy link

rennhak commented Jun 1, 2018

+1

@gentoid
Copy link

gentoid commented Aug 17, 2018

Getting same error on Debian Stretch with Chef 14.*. I also found that this recipe fails to install ncurses-dev, while, IMO, it should install libncurses-dev. At least on Debian 9 (Stretch)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Development

No branches or pull requests

3 participants