Debian dpkg给出错误“;是一个目录";

Debian dpkg给出错误“;是一个目录";,debian,packaging,dpkg,Debian,Packaging,Dpkg,我正在尝试创建一个Debain.deb包。已成功创建程序包,但尝试安装时出现以下错误: unable to open file '/var/lib/dpkg/tmp.ci//opt': Is a directory 包目录结构为: . └── DEBIAN ├── control ├── opt │   └── myDir │   └── myfile ├── postinst └── preinst 在preinst中,我已经-mk

我正在尝试创建一个Debain.deb包。已成功创建程序包,但尝试安装时出现以下错误:

 unable to open file '/var/lib/dpkg/tmp.ci//opt': Is a directory
包目录结构为:

.
└── DEBIAN
    ├── control
    ├── opt
    │   └── myDir
    │       └── myfile
    ├── postinst
    └── preinst
在preinst中,我已经-
mkdir-p/opt/myDir
postinst为空

如果我尝试在其他主机上安装软件包,则会出现以下错误:

“opt”的包控制信息rmdir没有说不是dir:Directory 不空


有什么想法吗?

您的目录布局错误。应该是这样的:

.
├── opt
│   └── myDir
│       └── myfile
└── DEBIAN
    ├── control
    ├── postinst
    └── preinst
构建软件包后,您可以使用以下工具测试其格式:


我也遇到了你和林寻帮我解决的问题。

首先,你不想在preinst中创建目录。Dpkg将根据需要创建此功能。其次,您不想在/opt中安装Debian软件包。这违反了Debian政策和FHS。话虽如此,我不知道您看到错误的确切原因。请发布您的整个
preinst
脚本。
lintian my-package.deb