Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

The boost C++ library consists of several components. Some components do include shared libraries, other don't.

Under a Fedora 14 system I've looked a bit around with yum search boost and rpm -qR and indeed like with other distributions the boost library is split into several packages.

For example there is boost-program-options which only contains the shared libraries of the boost program-options component.

It seems that package boost depends on all shared-library sub-packages. There is boost-devel which seems to provide all headers and depends on all shared-library sub-packages (via boost).

Am I right that it is not possible to just install the boost headers via yum (using the default repositories) without all boost shared library packages?

share|improve this question
    
Under Fedora 16, when I say yum install boost, I am told that the download is just 22k!! I could find very little documentation to help me. Are you saying that boost-devel is what I should install? –  Agnel Kurian Jun 23 '12 at 13:47
    
@AgnelKurian, depends on what you want to do - if you want to compile a program that depends on Boost you have to install boost-devel which installs all headers and depends on all shared libraries of boost. Anyways, installing boost-devel should be safe. In addition, there is also boost-doc which includes the Boost documentation (which is also available online). –  maxschlepzig Jun 24 '12 at 16:21
add comment

3 Answers

up vote 3 down vote accepted

Looking at the boost-devel package, it requires the boost package of the same version. Here is what the boost-devel package requires:

$ rpm -qRp boost-devel-1.44.0-7.fc14.x86_64.rpm 
boost = 1.44.0-7.fc14
cmake  
libboost_date_time-mt.so.1.44.0()(64bit)  
libboost_date_time.so.1.44.0()(64bit)  
libboost_filesystem-mt.so.1.44.0()(64bit)  
libboost_filesystem.so.1.44.0()(64bit)  
libboost_graph-mt.so.1.44.0()(64bit)  
libboost_graph.so.1.44.0()(64bit)  
libboost_iostreams-mt.so.1.44.0()(64bit)  
libboost_iostreams.so.1.44.0()(64bit)  
libboost_prg_exec_monitor-mt.so.1.44.0()(64bit)  
libboost_prg_exec_monitor.so.1.44.0()(64bit)  
libboost_program_options-mt.so.1.44.0()(64bit)  
libboost_program_options.so.1.44.0()(64bit)  
libboost_python-mt.so.1.44.0()(64bit)  
libboost_python.so.1.44.0()(64bit)  
libboost_random-mt.so.1.44.0()(64bit)  
libboost_random.so.1.44.0()(64bit)  
libboost_regex-mt.so.1.44.0()(64bit)  
libboost_regex.so.1.44.0()(64bit)  
libboost_serialization-mt.so.1.44.0()(64bit)  
libboost_serialization.so.1.44.0()(64bit)  
libboost_signals-mt.so.1.44.0()(64bit)  
libboost_signals.so.1.44.0()(64bit)  
libboost_system-mt.so.1.44.0()(64bit)  
libboost_system.so.1.44.0()(64bit)  
libboost_thread-mt.so.1.44.0()(64bit)  
libboost_unit_test_framework-mt.so.1.44.0()(64bit)  
libboost_unit_test_framework.so.1.44.0()(64bit)  
libboost_wave-mt.so.1.44.0()(64bit)  
libboost_wserialization-mt.so.1.44.0()(64bit)  
libboost_wserialization.so.1.44.0()(64bit)  
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(VersionedDependencies) <= 3.0.3-1
rpmlib(PayloadIsXz) <= 5.2-1
share|improve this answer
    
Yeah, this is what I've stated in the question. –  maxschlepzig Feb 3 '11 at 9:08
2  
the boost-devel package is the only package that has the boost header files, and it requires the other packages, so the answer to your question is: No, there are no packages you can install that would only provide the headers. Fedora packages typically have their -devel packages require the other package that includes any libraries used to compile using the headers in the package, as is in this case. –  jsbillings Feb 3 '11 at 15:03
    
Ok, good that you mention how -devel packages are structured (in general) in the Fedora world. I did not know that. –  maxschlepzig Feb 4 '11 at 8:32
add comment

You could always ask the maintainer of boost if they'll split the headers which don't need shared libraries out into another package.

However I really wonder why the 1¢ of diskspace matters here? esp. as I wouldn't be surprised to find that some of the headers don't guarantee that they'll never need a shared library (even though they are implemented that way now).

share|improve this answer
    
It is not just about disk space, it is also about installation times and the self-documenting specificity of the .spec file - i.e. if only boost-headers could be specified as dependency then there are no misunderstandings about the real dependencies of the program. –  maxschlepzig Mar 1 '11 at 22:31
add comment

Most of Boost is header only library. But there are a few that needs to be compiled. The answer from jsbillings lists them all. If you will not be using any of those libraries that require the compiled libraries then you dont have to install them. Just install the headers only.

See here for: Getting started on Unix platforms.

share|improve this answer
1  
Yeah, I know this. I was asking if there is a header-only package available in Fedora 14 (i.e. which does not depend on the shared library ones). I mean if I want to create a package, which only requires the boost headers, it does not help that I can manually install them outside of the package manager. –  maxschlepzig Feb 3 '11 at 9:07
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.