FPM 在尝试制作 deb 时失败 - 没有提供参数

FPM 在尝试制作 deb 时失败 - 没有提供参数

这实际上是一个由两部分组成的问题。第一部分是尝试找出 FPM 无法正常工作的原因,第二部分是找出 FPM 是否是答案...

背景:我修补了一个开源软件包中的一些文件,我想用不同的名称重新打包这些文件,以便可以将其安装在现有软件包旁边(以防有人已经安装了主版本 - 我不想覆盖它)。我还想使用 deb,以便我可以管理依赖项并让人们使用 apt-get 来安装它。

我进行了一些谷歌搜索,发现 FPM 似乎是构建 .deb 的首选武器,但我无法让它工作。我安装了 0.4.29 版本,并且正在运行 Ubuntu 12.04。

这是我的代码目录中的内容(它是的输出sudo make install):

~code
   |_main_folder
     |_ sub_1
     |_ sub_2
        |_sub 3

我正在尝试这样做:

sudo fpm -s dir -t deb -n "my_package" -v 1.0 -C ~/code/main_folder/

但我明白这一点:

No parameters given. You need to pass additional command arguments
so that I know what you want to build packages from. For example, 
for '-s dir' you would pass a list of files and directories. 
For '-s gem' you would pass a one or more gems to package from. 
As a full example, this will make an rpm of the 'json' rubygem: 
`fpm -s gem -t rpm json` {:level=>:warn}
Fix the above problems, and you'll be rolling packages in no time! {:level=>:fatal}

显然,我提供了几个参数,所以错误消息对我来说有点没用。我尝试了这个命令的几个不同变体,但没有一个能给我一个包。我想知道这是否是一个简单而明显的问题,但我真的不知道下一步该尝试什么。谷歌告诉我,这个问题似乎很多人都有,但我找不到任何解决方案……这让我怀疑 FPM 是否真的像它所说的那样……

所以如果不是的话 - 还有其他构建 .deb 文件的方法吗?我以前没有做过这个任务...

提前欢呼

附言:我想在问题中添加标签“fpm”,但我的声誉不够。这似乎是一个明智的标签,因此如果有声誉的人愿意添加它,那么它可能会在将来帮助其他人。

答案1

答案很简单,但也很烦人。显然 -C 会将 fpm 更改为目录,但即使我指定要打包目录,它仍然需要知道要打包哪些文件。我尝试了 *,但结果却出错了……但在末尾添加一个简单的“。”就可以解决问题。

工作命令(包括几个依赖项作为示例):

fpm -s dir -t deb -n my-package -v 1.0 -C /tmp/installdir/ -d pkgreqd -d libneedthis .

相关内容