【问题标题】:dpkg: warning: while removing directory /usr/local not empty so not removeddpkg:警告:删除目录时 /usr/local 不为空,因此未删除
【发布时间】:2011-04-11 21:16:53
【问题描述】:

我从以下文件夹结构构建并安装了一个 debian 包:

  • myprog
    • 德比安
      • 控制
    • 用户
      • 本地
          • myprog.sh

...使用以下命令:

dpkg -b myprog/myprog.deb && dpkg -i myprog.deb

当我现在通过键入以下内容删除包时:

dpkg -r myprog

.. 我收到以下警告:

dpkg:警告:删除 myprog 时,目录 '/usr/local' 不为空,因此未删除。

我认为这是每天都会发生的情况,我该如何避免警告?

向托尔斯滕问好!

#编辑

我尝试将文件安装到 /bin 而不是 /usr/local/bin 并且在删除它时没有收到警告。似乎是这样,/usr/local/.. 文件夹不会被 dpkg 视为系统文件夹 (?)。

【问题讨论】:

标签: debian dpkg


【解决方案1】:

没错——包不应该接触/usr/local目录,文件系统层次标准的it's reserved for system administrators,这是他们的职责范围。

【讨论】:

  • 嗯,一些包在 /usr/local 下创建条目,以便更好地组织管理员可以添加的内容(例如,Python 相关、TeX、ca-certificates)。至少在一种情况下(ca-certificates),README.Debian 建议,如果我们希望本地创建的软件包提供新的可信证书(例如,对于内部 CA),请将文件部署在 /usr/local/share/ca 下- 证书。最后,这没关系,因为它是 LOCALLY 创建的,但如果您决定在之后删除包,则会产生问题!
【解决方案2】:

为了避免警告,根据this post,是创建一个“core-custom”/dummy 包,它将安装在 /opt 中,并且是您的主包所必需的。

因此,当您卸载主包时,至少您的虚拟包将留在 /opt 中,并且 dpkg 不会发出警告。

您还可以将该虚拟包用作元包来安装您喜欢的所有常规包。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-16
    • 1970-01-01
    • 2020-09-19
    • 2019-05-02
    • 2021-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多