179 lines
4.8 KiB
Groff
179 lines
4.8 KiB
Groff
.\" $NetBSD: pkg_delete.1,v 1.5 1998/06/08 12:36:55 lukem Exp $
|
|
.\"
|
|
.\" FreeBSD install - a package for the installation and maintainance
|
|
.\" of non-core utilities.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\"
|
|
.\" Jordan K. Hubbard
|
|
.\"
|
|
.\"
|
|
.\" from FreeBSD: @(#)pkg_delete.1
|
|
.\"
|
|
.Dd November 25, 1994
|
|
.Dt pkg_delete 1
|
|
.Os FreeBSD 2.0
|
|
.Sh NAME
|
|
.Nm pkg_delete
|
|
.Nd a utility for deleting previously installed software package distributions
|
|
.Sh SYNOPSIS
|
|
.Nm
|
|
.Op Fl vDdnf
|
|
.Op Fl p Ar prefix
|
|
.Ar pkg-name ...
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Nm
|
|
command is used to delete packages that have been previously installed
|
|
with the
|
|
.Xr pkg_add 1
|
|
command.
|
|
|
|
.Sh WARNING
|
|
.Bf -emphasis
|
|
Since the
|
|
.Nm
|
|
command may execute scripts or programs provided by a package file,
|
|
your system may be susceptible to ``trojan horses'' or other subtle
|
|
attacks from miscreants who create dangerous package files.
|
|
.Pp
|
|
You are advised to verify the competence and identity of those who
|
|
provide installable package files. For extra protection, examine all
|
|
the package control files in the package record directory (
|
|
.Pa /var/db/pkg/<pkg-name>/ ).
|
|
Pay particular
|
|
attention to any +INSTALL, +DEINSTALL, +REQUIRE or +MTREE_DIRS files,
|
|
and inspect the +CONTENTS file for
|
|
.Cm @cwd ,
|
|
.Cm @mode
|
|
(check for setuid),
|
|
.Cm @dirrm ,
|
|
.Cm @exec ,
|
|
and
|
|
.Cm @unexec
|
|
directives, and/or use the
|
|
.Xr pkg_info 1
|
|
command to examine the installed package control files.
|
|
.Ef
|
|
|
|
.Sh OPTIONS
|
|
The following command line options are supported:
|
|
.Bl -tag -width indent
|
|
.It Ar pkg-name ...
|
|
The named packages are deinstalled.
|
|
.It Fl v
|
|
Turn on verbose output.
|
|
.It Fl D
|
|
If a deinstallation script exists for a given package, do not execute it.
|
|
.It Fl n
|
|
Don't actually deinstall a package, just report the steps that
|
|
would be taken if it were.
|
|
.It Fl p Ar prefix
|
|
Set
|
|
.Ar prefix
|
|
as the directory in which to delete files from any installed packages
|
|
which do not explicitly set theirs. For most packages, the prefix will
|
|
be set automatically to the installed location by
|
|
.Xr pkg_add 1 .
|
|
.It Fl d
|
|
Remove empty directories created by file cleanup. By default, only
|
|
files/directories explicitly listed in a package's contents (either as
|
|
normal files/directories or with the
|
|
.Cm @dirrm
|
|
directive) will be removed at deinstallation time. This option tells
|
|
.Nm
|
|
to also remove any directories that were emptied as a result of removing
|
|
the package.
|
|
.It Fl f
|
|
Force removal of the package, even if a dependency is recorded or the
|
|
deinstall or require script fails.
|
|
.El
|
|
|
|
.Pp
|
|
.Sh TECHNICAL DETAILS
|
|
.Nm
|
|
does pretty much what it says. It examines installed package records in
|
|
.Pa /var/db/pkg/<pkg-name> ,
|
|
deletes the package contents, and finally removes the package records.
|
|
.Pp
|
|
If a package is required by other installed packages,
|
|
.Nm
|
|
will list those dependent packages and refuse to delete the package
|
|
(unless the
|
|
.Fl f
|
|
option is given).
|
|
.Pp
|
|
If the package contains a
|
|
.Ar require
|
|
file (see
|
|
.Xr pkg_create 1 ),
|
|
then this is executed first as
|
|
.Bd -filled -offset indent -compact
|
|
.Cm require
|
|
.Ar <pkg-name>
|
|
.Ar DEINSTALL
|
|
.Ed
|
|
(where
|
|
.Ar pkg-name
|
|
is the name of the package in question and
|
|
.Ar DEINSTALL
|
|
is a keyword denoting that this is a deinstallation)
|
|
to see whether or not deinstallation should continue. A non-zero exit
|
|
status means no, unless the
|
|
.Fl f
|
|
option is specified.
|
|
.Pp
|
|
If a
|
|
.Cm deinstall
|
|
script exists for the package, it is executed before any files are removed.
|
|
It is this script's responsibility to clean up any additional messy details
|
|
around the package's installation, since all
|
|
.Nm
|
|
knows how to do is delete the files created in the original distribution.
|
|
The
|
|
.Nm deinstall
|
|
script is called as:
|
|
.Bd -filled -offset indent -compact
|
|
.Cm deinstall
|
|
.Ar <pkg-name>
|
|
.Ar DEINSTALL
|
|
.Ed
|
|
Passing the keyword
|
|
.Ar DEINSTALL
|
|
lets you potentially write only one program/script that handles all
|
|
aspects of installation and deletion.
|
|
.Pp
|
|
All scripts are called with the environment variable
|
|
.Ev PKG_PREFIX
|
|
set to the installation prefix (see the
|
|
.Fl p
|
|
option above). This allows a package author to write a script
|
|
that reliably performs some action on the directory where the package
|
|
is installed, even if the user might have changed it by specifying the
|
|
.Fl p
|
|
option when running
|
|
.Nm
|
|
or
|
|
.Cm pkg_add .
|
|
.Sh SEE ALSO
|
|
.Xr pkg_add 1 ,
|
|
.Xr pkg_create 1 ,
|
|
.Xr pkg_info 1 ,
|
|
.Xr mktemp 3 ,
|
|
.Xr mtree 8 .
|
|
.Sh AUTHORS
|
|
.Bl -tag -width indent -compact
|
|
.It "Jordan Hubbard"
|
|
most of the work
|
|
.It "John Kohl"
|
|
refined it for
|
|
.Nx
|
|
.El
|