我正在开发一个专有的跨平台文件管理器,名为弗曼。我想将其作为.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.list
在 正确创建some_dir/etc/apt/sources.list.d/fman.list
。同样,当我dpkg-query -L fman
在安装后执行 时,我确实得到了输出
/。 /ETC /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
我从文件安装 fman 时没有创建吗.deb
?
答案1
我知道问题出在哪里了。
我.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
就按预期创建了。