Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debian dpkg:警告:删除目录/usr/local时不为空,因此未删除_Debian_Dpkg - Fatal编程技术网

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

Debian dpkg:警告:删除目录/usr/local时不为空,因此未删除,debian,dpkg,Debian,Dpkg,我使用以下文件夹结构构建并安装了debian软件包: myprog 德比安 控制 usr 本地的 垃圾箱 myprog.sh 。。。使用以下命令: dpkg-b myprog/myprog.deb和&dpkg-i myprog.deb 当我现在通过键入以下内容删除包时: dpkg-r myprog 。。我得到以下警告: dpkg:警告:删除myprog时,目录“/usr/local”不为空,因此未被删除 由于我认为这是每天都会发生的情况,我如何才能避免警告 向托尔斯滕问好

我使用以下文件夹结构构建并安装了debian软件包:

  • myprog
    • 德比安
      • 控制
    • usr
      • 本地的
        • 垃圾箱
          • 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不会将文件夹视为系统文件夹(?)

没错——根据文件系统层次结构标准,软件包不应触及
/usr/local
目录,这是它们的责任范围。

为了避免警告,根据创建一个“核心自定义”/虚拟软件包,它将安装在/opt中,并且是主软件包所需要的

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


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

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