You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by Alan Conway <ac...@redhat.com> on 2014/12/17 15:11:01 UTC

cmake uninstallers

I badly want to be able to do "make install" in any of our projects
(qpid, proton, dispatch) and then easily uninstall any one of those
projects by itself. I presently have (at least) qpid, proton and
dispatch installed in /usr/local along with some 3rd party tools, so 
 rm -rf /usr/local/* 
has become impractical.

cmake generates an install_manifest.txt (I've enabled this on all
projects) so you can write a simple uninstall script something like: 
 rm -f $(cat <build>/install_manifest.txt)

HOWEVER that only works if you still have a build with the correct
manifest. If you've cleaned your build or updated and rebuilt a few
times then you can't reliably generate a manifest that matches what was
actually installed.

"Easy" you say. Just install the install_manifest.txt as well! "Sorry
Dave, I'm afraid I can't do that" says cmake. CMake (stupidly) generates
the manifest *during the install process* so it isn't available until
installation is all done and dusted and it's too late.

Anyone got another brilliant idea?

Cheers,
Alan.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org


Re: cmake uninstallers

Posted by Chuck Rolke <cr...@redhat.com>.
I use a script kept in ~/bin/proton-hunter.sh It's a hack but as you say, after a rebuild/install of some new version you don't have the old manifest(s) so you have to do something. Keep hunting and manually deleting stuff until the hunter comes up empty.

On windows I use a different strategy: never install anything. All builds are kept in the build directory and path hints are stored with the build to be awakened on demand.

-Chuck

===cut===
#! /bin/bash
for lpath in \
  "/usr/local/share" \
  "/usr/local/bin" \
  "/usr/local/lib64" \
  "/usr/local/include" \
  "/usr/local/lib64/pkgconfig" \
  "/usr/local/lib64/proton.cmake" \
  "/usr/lib64/python2.7/site-packages" \
  "/usr/lib64/ruby" \
  "/usr/share/ruby/vendor_ruby" \
  "/usr/share/perl5/vendor_perl/qpid" \
  "/usr/local/share/man/man1"
do
  if [ -d "$lpath" ]; then
    echo "##### Searching $lpath"
    find $lpath -name "*proton*"
    find $lpath -name "*Proton*"
  else
    echo Path      $lpath does not exist
  fi
done

exit 0


----- Original Message -----
> From: "Alan Conway" <ac...@redhat.com>
> To: "dev" <de...@qpid.apache.org>
> Sent: Wednesday, December 17, 2014 9:11:01 AM
> Subject: cmake uninstallers
> 
> I badly want to be able to do "make install" in any of our projects
> (qpid, proton, dispatch) and then easily uninstall any one of those
> projects by itself. I presently have (at least) qpid, proton and
> dispatch installed in /usr/local along with some 3rd party tools, so
>  rm -rf /usr/local/*
> has become impractical.
> 
> cmake generates an install_manifest.txt (I've enabled this on all
> projects) so you can write a simple uninstall script something like:
>  rm -f $(cat <build>/install_manifest.txt)
> 
> HOWEVER that only works if you still have a build with the correct
> manifest. If you've cleaned your build or updated and rebuilt a few
> times then you can't reliably generate a manifest that matches what was
> actually installed.
> 
> "Easy" you say. Just install the install_manifest.txt as well! "Sorry
> Dave, I'm afraid I can't do that" says cmake. CMake (stupidly) generates
> the manifest *during the install process* so it isn't available until
> installation is all done and dusted and it's too late.
> 
> Anyone got another brilliant idea?
> 
> Cheers,
> Alan.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
> For additional commands, e-mail: dev-help@qpid.apache.org
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org