构建 deb 包时无法使用 sbt-native-packager 打包 cron 作业

Posted

技术标签:

【中文标题】构建 deb 包时无法使用 sbt-native-packager 打包 cron 作业【英文标题】:Couldn't package a cron job using sbt-native-packager when building a deb bundle 【发布时间】:2014-04-08 15:44:12 【问题描述】:

我正在尝试将 cron 打包为我的 debian 包 (https://github.com/indykish/megam_akka.git) 的一部分。

debian 软件包是使用 sbt-native-packager 构建的。 我将 cron 脚本放在我的 bin 目录中,如下所示https://github.com/indykish/megam_akka/blob/master/bin/megamherk.cron.d

我改变了我的 build.sbt 来拾取 megamher.cron.d 就像这里 https://github.com/indykish/megam_akka/blob/master/build.sbt

我在这里附上了代码的sn-p:

 linuxPackageMappings in Debian <+= (baseDirectory) map  bd =>
 (packageMapping((bd / "bin/herk_stash") -> "/usr/share/megamherk/bin/herk_stash")
 withUser "root" withGroup "root" withPerms "0755")
 

linuxPackageMappings in Debian <+= (baseDirectory) map  bd =>
(packageMapping((bd / "bin/megamherk.cron.d") -> "/etc/cron.d/megamherk")
withUser "root" withGroup "root" withPerms "0755")

我跑了:

sbt clean compile

sbt dist:dist

sbt debian:packageBin

在目标目录中生成的 debian 包没有捆绑 cron。

我参考了这个 debian 文档 (http://www.debian.org/doc/manuals/maint-guide/dother.en.html#crond)

我在这里遗漏了什么吗?如何使 sbt-native-package 拾取一项 cron 工作?

【问题讨论】:

我认为您应该将 bin 目录放在 src 中,因为 sn-p 中的 baseDirectory 是源目录 【参考方案1】:

打包简单文件最简单的方法是使用默认目录结构。

src/linux/...

在您的情况下,您会将文件放入

src/linux/etc/cron.d/megamherk

您的区域设置将被重新应用。因此,如果 megamherk 是可执行的,它将保持可执行。

如果这对您不起作用,请打开带有小测试用例的 ticket。

干杯, 渚

【讨论】:

以上是关于构建 deb 包时无法使用 sbt-native-packager 打包 cron 作业的主要内容,如果未能解决你的问题,请参考以下文章

使用 cpack 创建 deb 包后运行脚本

在猪中使用 AvroStorage()

springboot加载外部依赖并在构建包时将其打入相应的目录下

处理 debian mongo 包时遇到错误

如何解决使用 sbt-native-packager 构建 deb 的更改日志错误?

使用 sbt-native-packager 构建 docker 包时重复映射