Yumdownloader doesn’t resolve dependency

centos7yum

According to man yumdownloader:

   --resolve
          When downloading RPMs, resolve dependencies and also download the required packages.

However, when I tried:

$ sudo yumdownloader devtoolset-7-gcc-c++.x86_64 --destdir /opt/downloaded_rpms/ --resolve

It didn't download the dependency:

$ ll /opt/downloaded_rpms/
total 11644
-rw-r--r-- 1 root root 11683460 Dec 25 17:10 devtoolset-7-gcc-c++-7.2.1-1.el7.sc1.x86_64.rpm

And so when I attempted to install, it complained:

# sudo yum install /tmp/devtoolset-7-gcc-c++-7.2.1-1.el7.sc1.x86_64.rpm 
Loaded plugins: fastestmirror
Examining /tmp/devtoolset-7-gcc-c++-7.2.1-1.el7.sc1.x86_64.rpm: devtoolset-7-gcc-c++-7.2.1-1.el7.sc1.x86_64
Marking /tmp/devtoolset-7-gcc-c++-7.2.1-1.el7.sc1.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package devtoolset-7-gcc-c++.x86_64 0:7.2.1-1.el7.sc1 will be installed
--> Processing Dependency: devtoolset-7-gcc = 7.2.1-1.el7.sc1 for package: devtoolset-7-gcc-c++-7.2.1-1.el7.sc1.x86_64
...
...
--> Processing Dependency: devtoolset-7-libstdc++-devel = 7.2.1-1.el7.sc1 for package: devtoolset-7-gcc-c++-7.2.1-1.el7.sc1.x86_64
--> Processing Dependency: devtoolset-7-runtime for package: devtoolset-7-gcc-c++-7.2.1-1.el7.sc1.x86_64
--> Finished Dependency Resolution
Error: Package: devtoolset-7-gcc-c++-7.2.1-1.el7.sc1.x86_64 (/devtoolset-7-gcc-c++-7.2.1-1.el7.sc1.x86_64)
           Requires: devtoolset-7-gcc = 7.2.1-1.el7.sc1
Error: Package: devtoolset-7-gcc-c++-7.2.1-1.el7.sc1.x86_64 (/devtoolset-7-gcc-c++-7.2.1-1.el7.sc1.x86_64)
           Requires: devtoolset-7-libstdc++-devel = 7.2.1-1.el7.sc1
Error: Package: devtoolset-7-gcc-c++-7.2.1-1.el7.sc1.x86_64 (/devtoolset-7-gcc-c++-7.2.1-1.el7.sc1.x86_64)
           Requires: devtoolset-7-runtime
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

Did I do something wrong?

Thanks!

Best Answer

According Red Hat Bug 1152326:

... this is the expected behavior when the dependencies are already installed. yumdownloader --resolve will only download the missing dependencies. You can use an empty installroot to download the package along with all its dependencies:

# yumdownloader NAME --resolve --installroot=/path/to/installroot --releasever=/