使用dpkg从debian包安装的文件不属于root

时间:2014-04-28 13:29:23

标签: linux deb dpkg

我用这个命令创建了一个二进制包:

dpkg-deb --build -z9 -Zlzma $(DEB_SRC_DIR) $(DEB_DEST_DIR)

使用以下命令将其安装在我的Ubuntu 12.04上:

sudo dpkg -i /path/to/package

我认为包裹的内容无关紧要。

尽管sudo命令,安装目录中的文件属于当前用户,而不是我预期的root。

我该如何解决?

1 个答案:

答案 0 :(得分:4)

尝试使用dpkg-deb运行fakeroot命令:

`fakeroot dpkg-deb ...`

(这只有在源目录中的文件已经具有正确的所有权时才有用,他们可能不会这样做。你实际上在这里要解决的问题是创建一个包含属于用户的文件的存档root,这是fakeroot在理论上有帮助的地方。)

但是,让我说,你所做的并不是创建二进制包的最佳方式(远非它)。

而是使用debian/创建dh_make目录(来自dh-make包),然后相应地编辑控制文件和更改日志。您还需要一个文件debian/install,其中列出了您要安装的文件以及它们应该放在哪里。网上有各种指南(以及Stack Overflow),可以解释这个过程。例如,请查看 Debian New Maintainers'指南

然后,您可以使用dpkg-buildpackage以可重现的方式为您的文件创建符合标准的真实Debian软件包。

dpkg-deb是一个用于处理现有deb文件的低级工具;它并不意味着用于创建包。