diff options
Diffstat (limited to 'usr.sbin/pkg_install/delete/pkg_delete.1')
| -rw-r--r-- | usr.sbin/pkg_install/delete/pkg_delete.1 | 293 |
1 files changed, 293 insertions, 0 deletions
diff --git a/usr.sbin/pkg_install/delete/pkg_delete.1 b/usr.sbin/pkg_install/delete/pkg_delete.1 new file mode 100644 index 0000000000000..92f22fabedc67 --- /dev/null +++ b/usr.sbin/pkg_install/delete/pkg_delete.1 @@ -0,0 +1,293 @@ +.\" +.\" 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 +.\" +.\" +.\" @(#)pkg_delete.1 +.\" $FreeBSD$ +.\" +.Dd June 29, 2004 +.Dt PKG_DELETE 1 +.Os +.Sh NAME +.Nm pkg_delete +.Nd a utility for deleting previously installed software package distributions +.Sh SYNOPSIS +.Nm +.Op Fl dDfGinrvxX +.Op Fl p Ar prefix +.Ar pkg-name ... +.Nm +.Fl a +.Op Ar flags +.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 +.Dq Em 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, +POST-INSTALL, +DEINSTALL, ++POST-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 a +Unconditionally delete all currently installed packages. +.It Fl i +Request confirmation before attempting to delete each package, +regardless whether or not the standard input device is a +terminal. +.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. +.It Fl G +Do not try to expand shell glob patterns in the +.Ar pkg-name +when selecting packages to be deleted (by default +.Nm +automatically expands shell glob patterns in the +.Ar pkg-name ) . +.It Fl x +Treat the +.Ar pkg-name +as a regular expression and delete all packages whose names match +that regular expression. +Multiple regular expressions could be +provided, in that case +.Nm +deletes all packages that match at least one +regular expression from the list. +.It Fl X +Like +.Fl x , +but treats the +.Ar pkg-name +as an extended regular expression. +.It Fl r +Recursive removal. +In addition to specified packages, delete all +packages that depend on those packages as well. +.El +.Sh TECHNICAL DETAILS +The +.Nm +utility +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. +If the environment variable +.Ev PKG_DBDIR +is set, this overrides the +.Pa /var/db/pkg/ +path shown above. +.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 -ragged -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 -ragged -offset indent -compact +.Cm script +.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 this as the pre-deinstallation phase. +.Pp +.Sy Note : +The +.Ar DEINSTALL +keyword will not appear if separate scripts for deinstall and post-deinstall +are given during package creation time (using the +.Fl k +and +.Fl K +flags to +.Xr pkg_create 1 ) . +.Pp +If a +.Cm post-deinstall +script exists for the package, it is executed +.Cm after +all files are removed. +It is this script's responsibility to clean up any +additional messy details around the package's installation, and leave the +system (hopefully) in the same state that it was prior to the installation +of the package. +.Pp +The +.Nm post-deinstall +script is called as: +.Bd -ragged -offset indent -compact +.Cm script +.Ar <pkg-name> +.Ar POST-DEINSTALL +.Ed +where +.Ar pkg-name +is the name of the package in question and +.Ar POST-DEINSTALL +is a keyword denoting this as the post-deinstallation phase. +.Pp +.Sy Note : +The +.Ar POST-DEINSTALL +keyword will not appear if separate scripts for deinstall and post-deinstall +are given during package creation time (using the +.Fl k +and +.Fl K +flags to +.Xr pkg_create 1 ) . +.Pp +Reasoning behind passing keywords such as +.Ar DEINSTALL +and +.Ar POST-DEINSTALL +is that it lets you potentially write only one program/script that handles +all aspects of installation and deletion. +.Pp +But experience has proved that this is a lot more difficult to maintain and +is not as advantageous as having separate scripts that handle each aspect of +installation and deinstallation. +.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 ENVIRONMENT +The environment variable +.Ev PKG_DBDIR +specifies an alternative location for the installed package database. +.Sh FILES +.Bl -tag -width /var/db/pkg -compact +.It Pa /var/db/pkg +Default location of the installed package database. +.El +.Sh SEE ALSO +.Xr pkg_add 1 , +.Xr pkg_create 1 , +.Xr pkg_info 1 , +.Xr pkg_version 1 , +.Xr mktemp 3 , +.Xr mtree 8 +.Sh AUTHORS +.An Jordan Hubbard +.Sh CONTRIBUTORS +.An John Kohl Aq jtk@rational.com , +.An Oliver Eikemeier Aq eik@FreeBSD.org +.Sh BUGS +Sure to be some. |
