difference between deinstall and pkg_delete?

Mikhail Goriachev mikhailg at webanoide.org
Mon Jun 5 09:44:04 PDT 2006

RW wrote:
> On Monday 05 June 2006 12:07, Mikhail Goriachev wrote:
>> RW wrote:
>>> 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
>>>     pkg_delete
>>>     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.
>> Right, so pkg_deinstall is the way to go then, isn't? Logically, there
>> is a difference between pkg_delete and pkg_deinstall. Personally, I use
>> the latter.
> The question was about the difference between "make deinstall" and pkg_delete.
> pkg_deinstall  (installed by the portupgrade port) is simply a ruby wrapper 
> for pkg_delete that provides globbing and recursion. There is no particular 
> correpondence between pkg_deinstall and "make deinstall" except for the 
> similar name.

Ah, now I see what you mean about cookies. I guess this is valid when
you don't want to clean a port. In my case, I install and clean it right
away... the cookie disappears in the process.

make install clean
make install clean

Is this the only issue between pkg_delete and make deinstall?


Mikhail Goriachev

Telephone: +61 (0)3 62252501
Mobile Phone: +61 (0)4 38255158
E-Mail: mikhailg at webanoide.org
Web: http://www.webanoide.org

PGP Key ID: 0x4E148A3B
PGP Key Fingerprint: D96B 7C14 79A5 8824 B99D 9562 F50E 2F5D 4E14 8A3B

More information about the freebsd-questions mailing list