difference between deinstall and pkg_delete?

RW list-freebsd-2004 at morbius.sent.com
Sun Jun 4 17:11:41 PDT 2006

On Friday 02 June 2006 08:53, Mikhail Goriachev wrote:
> Jon Falconer wrote:
> > Greetings,
> >
> > I see in the man page for ports the following:
> >
> >      reinstall        Use this to restore a port after using
> > pkg_delete(1) when you should have used deinstall.
> >
> > So I'm wondering what is the difference between pkg_delete and using
> > "make deinstall" from within the ports directory? What does "make
> > deinstall" do that pkg_delete does not do? What does pkg_delete do that
> > "make deinstall" does not do?
> Hi,
> This will point you in the right direction:
> http://www.bsdforums.org/forums/archive/index.php/t-29467.html

Actually I think that points in wrong direction. There is a lot of 
misinformation about this that is repeated ad-nauseum.

Most ports use the standard deinstall target which calls pkg_delete; there is 
only one port in the whole tree that defines it own deinstall target, and 
that one installs its own versions of the pkg_* utilities. 

The port system uses a series of cookie files to keep track of what has been 
done. For example if you type "make && make" the port will only build once, 
because the first make sets the "build cookie". There is also an Install 
cookie which leads to a problem when you go through the sequence

    make install
    make install

because pkg_delete doesn't know about the port cookies. The deinstall and 
reinstall targets both delete the cookie and so using one or the other avoids 
the problem.  

In practice this is virtually a non-issue since most people, and all build 
tools, will do a make clean at some point in the sequence.

More information about the freebsd-questions mailing list