自定义 .deb 不会安装所有文件

Mic*_*ann 7 packaging dpkg software-installation 14.04

我正在开发一个名为fman的专有跨平台文件管理器。我想将它作为.deb文件分发给 Ubuntu 用户,可以从我的网站下载。我fpm用来创建这个文件,它可以正常工作。

当用户安装fman时,我想添加一个文件到 /etc/apt/sources.list.d/指向我的更新服务器的文件。这将允许用户通过 Ubuntu 的包管理器(或通过apt-get)自动更新 fman 。

我做了很明显的:我把里面的文件.deb在存档etc/apt/sources.list.d/fman.list。问题是:下没有创建这个文件/etc/apt/...当用户从.deb文件安装fman时,这个文件。

当我这样做时dpkg -x fman.deb some_dir/,文件fman.listsome_dir/etc/apt/sources.list.d/fman.list. 同样,当我dpkg-query -L fman安装后,我确实得到了输出

/.
/等等
/etc/apt
/etc/apt/sources.list.d
/etc/apt/sources.list.d/fman.list
...

当我.deb通过命令行安装文件时,我没有收到任何错误或警告sudo dpkg -i fman.deb。我尝试通过sudo dpkg -D 100 -i fman.deb. 与输出相关的仅有两行fman.list是:

D000100: setupvnamevbs main='/etc/apt/sources.list.d/fman.list' tmp='/etc/apt/sources.list.d/fman.list.dpkg-tmp' new='/etc/apt /sources.list.d/fman.list.dpkg-new'
D000100: setupvnamevbs main='/etc/apt/sources.list.d/fman.list' tmp='/etc/apt/sources.list.d/fman.list.dpkg-tmp' new='/etc/apt /sources.list.d/fman.list.dpkg-new'

在之前的某个时间点,我找到了一个文件/etc/apt/sources.list.d/fman.list.dpkg-dist. 但是当我卸载 fman 时,该文件被删除了。fman 的后续安装不会再次生成该文件。

有人知道为什么/etc/apt/sources.list.d/fman.list我从.deb文件安装 fman 时没有创建吗?

Mic*_*ann 5

我明白问题出在哪里了。

.deb通过以下两个命令的循环测试了我的文件:

  • sudo dpkg -i fman.deb
  • sudo dpkg -r fman(相当于,sudo apt-get remove fman

我发现... -r不包括配置文件。要同时删除配置文件,必须使用sudo dpkg -P fman.

在我的测试过程中,我一定/etc/apt/sources.list.d/fman.list在某个时候手动删除了。但dpkg(/ apt) 仍然记得它已经安装了该文件,因此下次我安装时它没有重新安装它dpkg -i(相当于,apt-get install)。

因此,解决方案是调用sudo dpkg -P fman. 下次我这样做时,dpkg -i fman.deb文件fman.list已按预期创建。