文档中心

系统软件包管理

03.软件包的删除

软件包的删除工作即逆向安装过程,恢复至安装前状态:

tdpkg rm absolute_path or name

a、删除在 usr/{include, lib, bin}目录中该软件包的符号链接;

b、删除在 all,app,name目录下该软件包的符号链接;

c、删除 vars目录下的子目录;

系统也支持直接删除该软件包目录,然后清除管理器根目录下的坏链接。

tdpkg sanity

该命令检查管理器根目录下的所有符号链接,删除坏链接。删除 vars目录下没有对应已安装软件包的子目录。

在程序中可以通过 tdGetExecuteVarPath()得到管理器根目录下的 vars目录中的同名目录。如果没有该同名目录(即还没有安装该软件包),那么得到的就是该软件包自己目录下的 var目录。

tdGetExecuteVarPath()函数的原理是先调用 tdGetExecutePath()得到该进程所在的子目录,检查这个子目录下是否存在 var目录,如果不存在 var,再检查父目录,如果存在,则这个子目录名就是这个软件包的名字,然后查看$(TD_PKG_PATH)/vars/ 目录下是否存在同名目录,如果存在就认为已安装,如果不存在,则认为该软件包没有安装。