7.2. 空目录
上一页 | 第 7 章 高级 `pkg-plist` 用法 | 下一页

## 7.2. 空目录

### 7.2.1. 清理空目录

一定要让 port 在卸载时进行清理空目录。 通常， 可以通过为所有由 port 创建的目录增加对应的 `@dirrm` 行来实现。 在删除父目录之前， 需要首先删除它的子目录。

: lib/X11/oneko/pixmaps/cat.xpm lib/X11/oneko/sounds/cat.au : @dirrm lib/X11/oneko/pixmaps @dirrm lib/X11/oneko/sounds @dirrm lib/X11/oneko

然而， 有时 `@dirrm` 会由于其它 port 使用了同一个目录而发生错误。 利用 `@dirrmtry` 可以只删除那些空目录， 而避免给出警告。

@dirrmtry share/doc/gimp

按照上面的写法， 将不会显示任何错误信息， 而且，即使在 ``${PREFIX}`/share/doc/gimp` 由于其它 port 在其中安装了一些别的文件的时候， 也不会导致 pkg_delete(1) 异常退出。

### 7.2.2. 如何建立空目录

在 port 安装过程中创建的空目录需要特别留意。 安装 package 时并不会自动创建这些目录， 这是因为 package 只保存文件。 要确保安装 package 时会自动创建这些空目录， 需要在 `pkg-plist` 中加入与 `@dirrm` 对应的行：

@exec mkdir -p %D/share/foo/templates

上一页 | 上一级 | 下一页
第 7 章 高级 `pkg-plist` 用法 | 起始页 | 7.3. 配置文件

本文档和其它文档可从这里下载： ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题，请先阅读 文档，如不能解决再联系 <questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.