使用fpm制作deb包时设置自定义安装目录

问题描述 投票:3回答:1

我正在使用fpm创建deb包,但是当我安装deb包时,它被安装到错误的位置,我的fpm命令是:

fpm -f -s "dir" -t "deb" -a "all" -n "my_project" -v 1 -C "/tmp/tmpjWTuVp" /tmp/tmpjWTuVp/my_project

我要打包的文件夹存在于/tmp/tmpjWTuVp/my_project,但每次我安装它时:

dpkg -i my_package.deb

它安装到/tmp/tmpjWTuVp/my_project,理想情况下,我希望它安装到/var/lib/my_project。我用--installdir命令尝试了--rootdpkg,但它与cannot access archive: No such file or directory抱怨

其他信息:

  • 我正在安装到ubuntu盒子上
  • 我对deb包装很新,所以可能错过了一些明显的东西
  • 我没有受到fpm的约束,很高兴听到其他可行的建议
  • my_project里面是一个python virtualenv和我的django项目
django packaging devops deb fpm
1个回答
2
投票

在写完这个问题后,我立即随机找到了答案......

基本上fpm命令中最后一个未命名的参数可以包含一个equals分隔符,它定义了来自的目录,并安装到,所以我最终使用的命令是:

fpm -f -s "dir" -t "deb" -a "all" -n "my_project" -v 1 -C "/tmp/tmpjWTuVp" my_project=/var/lib/my_project

注意my_project=/var/lib/my_project,左边是我的项目的目录名(相对的,因为我在查找包之前使用-C将目录更改为/tmp/tmpjWTuVp)而在右侧是我要在远程计算机上安装的位置...

© www.soinside.com 2019 - 2024. All rights reserved.