man pkg_delete
man pkg_delete
PKG_DELETE(1) NetBSD General Commands Manual
NAME
pkg_delete -- утилита для удаления установленных пакетов.
SYNOPSIS
pkg_delete [-DdFfNnORrVv] [-K pkg-dbdir] [-p prefix] pkg_name ...
DESCRIPTION
Команда pkg_delete используется для удаления пакетов, установленных с помощью команды pkg_add(1)
WARNING
pkg_delete может запускать скрипты или программы содержащиеся в пакете и ваша система может быть подвергнута заражению "Троянцами" и другим видам атак со стороны сборщиков пакетов.
Мы советуем всегда проверять происхождение пакета. Для усиления безопасности проверяйте все контрольные фаилы пакета находящиеся в /var/db/pkg/
OPTIONS
Поддерживаются следующие флаги:
pkg_name ...
Названные пакеты удаляются, могут быть использованы wildcards, см. pkg_info(1). Если не указана версия пакета, удаляется установленная на данный момент. Если указан флаг -F, одно или несколько названий фаилов может быть задано и база данных пакетов сама определит какому пакету принадлежат файлы. Данные пакеты будут удалены.
-D Если для пакета существует скрипт удаления, не запускать его.
-d Удалять пустые директории, созданные фаилом cleanup. По умолчанию
удаляются только фаилы и директории, содержащиеся в списке удаляемых
в пакете. Эта опция также заставляет pkg_delete удалять все
директории, которые были опустошены в результате удаления пакета.
-F Любой аргумент будет интерпритироваться как составное имя,
трансформируемое в (настоящее) название пакета с помощью базы данных
пакетов. Такой подход разрешает указывать названия фаилов вместо
названий пакетов.
-f Удалить пакет, даже если deinstall или require скрипт завершился
ошибкой.
-K pkg_dir
Определить pkg_dir как директорию базы данных пакетов. Если этот флаг
не установлен, директория базы данных пакетов считается со значения
переменной окружения PKG_DBDIR, если она установлена, в другом случае
используется значение по умолчанию /var/db/pkg.
-N Удалить регистрацию пакета в системе и все записи из базы
данных пакетов, но не удалять сам пакет. Не запускать скрипта deinstall
или строк @unexec.
-n Показать предпринимаемые действия при удалении пакета, не удалять пакет.
-O Удалить только записи о пакете из базы данных пакетов, не трогать пакет
и принадлежащие ему фаилы.
-p prefix
Указать prefix как директорию, из которой будут удалены фаилы
установленных пакетов, которые небыли явно определены как принадлежащие
им. Для большенства пакетов pkg_add(1) устанавливает prefix автоматически.
-R Этот флаг задает рекурсивное удаление указанного пакета и всех пакетов,
от которых он зависит, только если зависимый пакет не является зависимостью
другого пакета. Этот флаг может быть использован для очистки, удаляя сам
пакет и все пакеты, не имеющие других зависимостей.
-r pkg_delete составляет список зависимостей пакета (которые зависят от него)
и удаляет все пакеты в списке до удаления самого пакета. Эта опция может
быть использована для рекурсивного удаления пакета и всех его зависимостей.
-V Показать версию и выйти.
-v Включить verbose output.
ТЕХНИЧЕСКИЕ ДЕТАЛИ
Название pkg_delete говорит само за себя. Программа проверяет записи пакета в
/var/db/pkg/
(если опрелелен другой путь к базе данных, он переписывает назначенный по умолчанию).
Если пакет является зависимостью другогих установленных пакетов, pkg_delete перечислит
такие пакеты и откажется удалять пакет (если не указан флаг -f).
Если пакет маркирован как _охраняемый_, он не может быть удален (если флаг -f
встречается не больше одного раза).
Если в качестве аргумента указан фаил (не имя пакета), пакет может быть определен
по имени фаила если указан флаг -F. Имя фаила должно быть полным, смотрите вывод
команды pkg_info -aF.
Если пакет содержит фаил require (см. pkg_create(1)), сначала выполняется:
require
(где pkg-name - имя пакета и DEINSTALL - опция, указывающая на удаление) чтобы
посмореть требуется ли продолжать процесс удаления. Статус завершения отличный от
нуля значит нет, если не установлен флаг -f.
Если для пакета существует скрипт deinstall, он запускается до и после удаления
каждого фаила. Обязанность этого скрипта - очистка всего мусора, оставшегося после
установки пакета, так как pkg_delete умеет только удалять фаилы, созданные пакетом.
Скрипт deinstall запускается таким образом:
deinstall
до удаления пакета из _view_,
deinstall
до удаления всех фаилов, и
deinstall
после удаления. Опции VIEW-DEINSTALL, DEINSTALL и POST-DEINSTALL позволяют обьеденить
все аспекты удаления пакетов в один скрипт/программу.
Все скрипты запускаются с переменной окружения PKG_PREFIX, установленной как prefix
установки (см. флаг -p). Это разрешает авторам пакетов писать скрипты, которые могут
производить какие-то действия в директории, куда производилась установка пакета, даже
если пользователь поменяет ее место нахождения с помощью флага -p во время выполнения
pkg_delete или pkg_add(1). Скрипты также запускаются с переменной окружения
PKG_METADATA_DIR, установленной как место расположения _+*_ фаилов мета данных, и с
переменной окружения PKG_REFCOUNT, установленной как место нахождения базы данных
счётчиков ссылок.
ENVIRONMENT
PKG_DBDIR Если флаг -K не установлен, PKG_DBDIR является местом нахождения
базы данных пакетов. Директория базы данных пакетов по умолчанию
/var/db/pkg.
PKG_REFCOUNT_DBDIR
Место нахождения базы данных счётчиков ссылок. По умолчанию -
путь к базе данных пакета с .refcount на конце. Например:
/var/db/pkg.refcount.
SEE ALSO
pkg_admin(1), pkg_create(1), pkg_info(1), pkg_add(1), mktemp(3),
packages(7), mtree(8)
AUTHORS
Jordan Hubbard
John Kohl
Hubert Feyrer
NetBSD 4.0_BETA November 4, 2006
- Страница для печати
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- 7596 просмотра