我有一个Play服务器应用程序。
目前,我有20行bash脚本来创建这个deb:
/srv
/foo
/conf
<unmanaged resources>
/staged
<jars>
我想使用sbt本机打包程序来生成这个。
目前,sbt debian:package-bin
给我
etc/
default/
foo
foo
init/
foo.conf
usr/
bin/
foo
share/
foo/
bin/
foo
conf/
<unmanaged resources>
lib/
<jars>
share/
doc/
api/
<docs>
logs
README
var/
log/
foo/
如何获得所需布局?我需要实现原型吗?
我使用的是SBT 0.13.7和SBT原生软件包1.0.0-M1。
如果您的布局接近已生成的布局,则可以使用defaultLinuxInstallLocation
和defaultLinuxConfigLocation
等设置。
或者直接修改linuxPackageSymlinks
和linuxPackageMappings
,类似
linuxPackageSymlinks := Seq(),
linuxPackageMappings := {
val libPath = "/srv/foo/staged"
val libs = scriptClasspathOrdering.value.map { case (file, classpath) =>
file -> classpath.replaceFirst("^lib", Matcher.quoteReplacement(libPath))
}
Seq(LinuxPackageMapping(libs))
// plus configuration
},
如果有很多二进制文件要归档(即有很多依赖项),那么debian:packageBin
的速度相当慢。对于调试,请考虑使用debianExplodedPackage
。
此外,要知道目录debianExplodedPackage
中的任何内容都将包含在归档中,所以如果最后.deb中有多余的内容,您可能需要删除该目录。