Boost logo

Boost :

Subject: Re: [boost] [CMake] what to do now?
From: Paul Fultz II (pfultz2_at_[hidden])
Date: 2016-04-14 17:36:22


On Thursday, April 14, 2016 at 4:09:00 PM UTC-5, Andrey Semashev wrote:
>
> On 2016-04-14 21:30, Peter Dimov wrote:
> > Paul Fultz II wrote:
> >> Doesn't boost install into the standard ${PREFIX}/include and
> >> ${PREFIX}/lib directories?
> >
> > "b2 install" does, yes.
> >
> >> I don't understand how bpm will remove the headers and the libs that
> >> were installed for a module.
> >
> > bpm (which is as of yet still a toy and is not being used) doesn't
> > install into $PREFIX/include and $PREFIX/lib. The use case is that you
> > choose a directory in which to put Boost and it downloads the libraries
> > there. It doesn't have an install step that copies the headers and the
> > libraries into a systemwide location.
> >
> > That's more of a Windows workflow, where there is no systemwide location
> > for libraries, so one just puts them wherever convenient; but given that
> > most Linux distros already have their own Boost in /usr/include and
> > /usr/lib, a typical case for installing by hand would be to use a newer
> > release which one might also want to put not in /usr/{include,lib}.
>
> I'll add that 'make install' is in fact considered a bad practice

I've never heard such a thing.
 

> in
> Linux because there is typically no 'make uninstall' and you're on your
> own if you want to remove or upgrade the software.

In general, you just delete the directory. This is only a problem when
installing every library to /usr. Most of the time you install the library
to
a unique prefix such as /opt/boost-1.60, and then when you want to
uninstall,
you just delete that directory.
 

> The preferred way is
> either package the software and use the package manager to
> install/remove/upgrade or install into a separate directory tree which
> can be removed completely when needed.
>

And a package manager will use the 'make install' to install the library.
Both
homebrew and cget will use the install target to install the library to a
unique prefix(like /usr/Cellar/${library}) and then symlink those files to
the
main prefix directory(like /usr/local). So when the user wants to remove the
package, it deletes the original directory(ie /usr/Cellar/${library}) and
then
removes the broken symlinks as well(in the /usr/local).
 

>
>
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost
>


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk