构建 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 作业的主要内容,如果未能解决你的问题,请参考以下文章
springboot加载外部依赖并在构建包时将其打入相应的目录下