使用带有构建依赖关系的fpm创建deb包

时间:2015-06-12 11:45:24

标签: linux ubuntu debian deb

我正在尝试使用fpm创建一个deb包,其中包含一些shell脚本文件。但deb包应该创建一个名为vim的依赖项(Linux中的vim编辑器)。意味着在安装deb包时应该先安装vim然后再安装脚本文件。

要求是在安装deb软件包时,首先要安装vim,然后再安装脚本文件。

我尝试的fpm命令是:

  fpm -s dir -t deb -n 'test' --deb-pre-depends vim --after-install /home/test/testfile.sh -C /home test

创建deb包之后。安装时,我遇到以下错误:

dpkg: regarding test_1.0_amd64.deb containing test, pre-dependency problem:
 test pre-depends on vim
  vim is not installed.

dpkg: error processing archive test_1.0_amd64.deb (--install):
 pre-dependency problem - not installing test
Errors were encountered while processing:
 test_1.0_amd64.deb 

提前致谢...

2 个答案:

答案 0 :(得分:2)

尝试 - 而不是--deb-pre-depends

“Depend”和“Pre Depend”略有不同,请参阅此处https://www.debian.org/doc/debian-policy/ch-relationships.html

听起来你想做的事情可能就是“依赖”,所以保持简单

答案 1 :(得分:2)

正如alredy提到的@Vorsprung,您需要使用--depends

fpm -s dir \
    -t deb \
    -n 'test' \
    --depends vim \
    --after-install /home/test/testfile.sh \
    -C /home test

您需要知道dpkg不会为您安装依赖项,但之后您可以运行apt-get来安装所有缺少的依赖项:

dpkg -i test.deb
apt-get install -f