How do I get yum to notice that a dependency is already met?
-
- Posts: 4
- Joined: 2018/01/02 18:37:50
How do I get yum to notice that a dependency is already met?
Hi everyone, I'm trying to "sudo yum install devtoolset-6*", and yum wants to install boost 1.53 as a dependency. The trouble is, some other software we use requires boost 1.61, so installing 1.53 is a deal-breaker. How do I convince yum that the dependency is met so that the other software's requirements remain met?
Re: How do I get yum to notice that a dependency is already met?
CentOS ships boost 1.53 as part of the base/updates repos and will always ship that version. We do not ship boost 1.61 and nor does any other reputable repo that I can find.
Your problem is not that devtoolset-6 requires boost 1.53 as many other CentOS packages will do so too. It's the version we provide and everything that needs boost is built against it. Your problem is the opposite - your other app is built against a non-CentOS boost.
You may be able to bypass this (until the next thing you want to install requires our boost) by not installing the package that requires it. The devtoolset-6 package is a meta-package and just pulls in all the other devtoolset-6-* packages. Don't install that, install the others by name instead.
Your problem is not that devtoolset-6 requires boost 1.53 as many other CentOS packages will do so too. It's the version we provide and everything that needs boost is built against it. Your problem is the opposite - your other app is built against a non-CentOS boost.
You may be able to bypass this (until the next thing you want to install requires our boost) by not installing the package that requires it. The devtoolset-6 package is a meta-package and just pulls in all the other devtoolset-6-* packages. Don't install that, install the others by name instead.
So, omit devtoolset-6-dyninst and anything that requires it and you should be OK. Like yum install devtoolset-6-binutils devtoolset-6-dwz devtoolset-6-elfutils devtoolset-6-elfutils-libelf devtoolset-6-elfutils-libs devtoolset-6-gcc devtoolset-6-gcc-c++ devtoolset-6-gcc-gfortran devtoolset-6-gdb devtoolset-6-libstdc++-devel devtoolset-6-libquadmath-devel devtoolset-6-ltrace devtoolset-6-make devtoolset-6-memstomp devtoolset-6-oprofile devtoolset-6-runtime devtoolset-6-strace devtoolset-6-toolchain devtoolset-6-valgrind---> Package devtoolset-6-dyninst.x86_64 0:9.2.0-4.el7 will be installed
--> Processing Dependency: libboost_thread-mt.so.1.53.0()(64bit) for package: devtoolset-6-dyninst-9.2.0-4.el7.x86_64
--> Processing Dependency: libboost_system-mt.so.1.53.0()(64bit) for package: devtoolset-6-dyninst-9.2.0-4.el7.x86_64
The future appears to be RHEL or Debian. I think I'm going Debian.
Info for USB installs on http://wiki.centos.org/HowTos/InstallFromUSBkey
CentOS 5 and 6 are deadest, do not use them.
Use the FAQ Luke
Info for USB installs on http://wiki.centos.org/HowTos/InstallFromUSBkey
CentOS 5 and 6 are deadest, do not use them.
Use the FAQ Luke
-
- Posts: 4
- Joined: 2018/01/02 18:37:50
Re: How do I get yum to notice that a dependency is already met?
Great, thanks!
So, AFAIK, the only parts of devtoolset-6 I actually need are g++ and gcc. I'd figured things might get strange without the rest of it... is that not the case?
Would it be possible to only install the various .so files from 1.53? AFAIK, unlike header files, the .so files have version #s tacked on the end and can peacefully coexist with their more recent 1.61 brethren.
So, AFAIK, the only parts of devtoolset-6 I actually need are g++ and gcc. I'd figured things might get strange without the rest of it... is that not the case?
Would it be possible to only install the various .so files from 1.53? AFAIK, unlike header files, the .so files have version #s tacked on the end and can peacefully coexist with their more recent 1.61 brethren.
Re: How do I get yum to notice that a dependency is already met?
It sounds like your boost 1.61 is broken. Where did you get it from?
The future appears to be RHEL or Debian. I think I'm going Debian.
Info for USB installs on http://wiki.centos.org/HowTos/InstallFromUSBkey
CentOS 5 and 6 are deadest, do not use them.
Use the FAQ Luke
Info for USB installs on http://wiki.centos.org/HowTos/InstallFromUSBkey
CentOS 5 and 6 are deadest, do not use them.
Use the FAQ Luke
-
- Posts: 4
- Joined: 2018/01/02 18:37:50
Re: How do I get yum to notice that a dependency is already met?
We compiled it from source (sorry I don't recall if it was just downloaded, or checked out the from their git repo), and installed into `/usr/local'.
Now that I look, though, the path to its headers does contain the version: `/usr/local/include/boost-1_61/boost'.
Odd, I could've sworn I told it to leave that part out because it was causing too many problems with other bits of software looking in`/usr/local/include/boost', and either erroring-out after not finding anything, or, worse, looking in `/usr/include/boost' (which would've been 1.53 instead of 1.61).
Doubly odd, since I don't recall needing the "boost-1_61" part when I sym-linked all the boost files in `/usr/local/' to wherever yum would have put them if it had installed boost (`/usr/include/boost' -> `/usr/local/include/boost-1_61/boost', `/usr/lib/libboost_atomic-mt.a' -> `/usr/local/lib/libboost_atomic-mt.a', etc).
Now that I look, though, the path to its headers does contain the version: `/usr/local/include/boost-1_61/boost'.
Odd, I could've sworn I told it to leave that part out because it was causing too many problems with other bits of software looking in`/usr/local/include/boost', and either erroring-out after not finding anything, or, worse, looking in `/usr/include/boost' (which would've been 1.53 instead of 1.61).
Doubly odd, since I don't recall needing the "boost-1_61" part when I sym-linked all the boost files in `/usr/local/' to wherever yum would have put them if it had installed boost (`/usr/include/boost' -> `/usr/local/include/boost-1_61/boost', `/usr/lib/libboost_atomic-mt.a' -> `/usr/local/lib/libboost_atomic-mt.a', etc).
Re: How do I get yum to notice that a dependency is already met?
Oh, so you didn't even package your newer boost. Yum won't know anything about unpackaged things which is why we never recommend using source installs.
The future appears to be RHEL or Debian. I think I'm going Debian.
Info for USB installs on http://wiki.centos.org/HowTos/InstallFromUSBkey
CentOS 5 and 6 are deadest, do not use them.
Use the FAQ Luke
Info for USB installs on http://wiki.centos.org/HowTos/InstallFromUSBkey
CentOS 5 and 6 are deadest, do not use them.
Use the FAQ Luke
-
- Posts: 4
- Joined: 2018/01/02 18:37:50
Re: How do I get yum to notice that a dependency is already met?
Correct. I'm aware that it's possible to create your own .rpm files, but I haven't looked too far into it because a) I'm not sure it'd gain me anything at this point, and b) the process seemed daunting. Did I merely stumble upon a poorly-written guide?
Re: How do I get yum to notice that a dependency is already met?
It's not that complicated, especially if you get the SRPM for a previous version and amend it for yours. Use mock to do the builds. The problem that you're encountering here is that yum only knows about packages, it has no clue about source installs so as far as its concerned, you don't have boost installed at all.
The future appears to be RHEL or Debian. I think I'm going Debian.
Info for USB installs on http://wiki.centos.org/HowTos/InstallFromUSBkey
CentOS 5 and 6 are deadest, do not use them.
Use the FAQ Luke
Info for USB installs on http://wiki.centos.org/HowTos/InstallFromUSBkey
CentOS 5 and 6 are deadest, do not use them.
Use the FAQ Luke