在 sbt-native-packager 的 Debian 包中更改名称

Change name in Debian package of sbt-native-packager

我想将 sbt-native-packager 附加到项目的根聚合,但该根项目已发布 "foobar" 的 Maven 名称。我希望通过 debian:packageBin 生成的工件始终使用 "foo"

我该如何完成?

我试过了

name           in Debian := "foo"
packageName    in Debian := "foo"
normalizedName in Debian := "foo"
executableScriptName := "foo"
artifact       in Debian := (artifact in Debian).value.copy(name = "foo")

等None有效果。我最终得到 etc/foobarusr/share/foobar.


编辑:在这些设置之后我越来越接近:

name                      in Debian := "foo"
normalizedName            in Debian := "foo"
packageName               in Debian := "foo"
name                      in Linux  := "foo"
normalizedName            in Linux  := "foo"
packageName               in Linux  := "foo"

现在的问题是生成的 .deb 文件包含每个目录两次,i.g。 etc/foobar 对比 etc/foousr/share/foobar 对比 usr/share/foo。所以在某个地方仍然必须引用旧包名称......这很奇怪,因为我仔细检查 linuxPackageMappings in Debian 只包含正确的文件。

如编辑中所示,您必须覆盖范围 DebianLinux 的设置。我的错误是即使你删除.deb文件,target仍然会被旧文件污染。所以如果你改变这些东西,你必须运行一个rm -r target再重新打包。然后设置为:

executableScriptName     := "foo"
name           in Debian := "Foo"
packageName    in Debian := "foo"
name           in Linux  := "Foo"
packageName    in Linux  := "foo"
packageSummary in Debian := "Description of Foo"