替换本机加壳器中的 debian 控制脚本

Replace debian control scripts in native packer

我正在尝试覆盖由 sbt 本机打包程序插件生成的 debain 控制脚本。唉,这个插件只允许我附加到生成的脚本。而不是附加 I want/need 来替换一些脚本。有人知道怎么做吗?

您可以覆盖所有受支持的控制脚本的设置。例如 debianControlFile or debianMakePreinstScript.

DebianPlugin provides some defaults. If you are using an archetype you get some extras. The server archetype overrides some tasks提供其他映射。

更新

行为如我所述。然而,这是针对 sbt-native-packager 1.0.0-RC1 的。这意味着

  1. addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.0.0-RC1") 添加到您的 plugins.sbt

  2. build.sbt

  3. 中删除所有 debian 脚本内容
  4. src/debian/DEBIAN 文件夹中添加您的 debian 脚本(就像您所做的那样)。他们将覆盖标准的。

所以你的 build.sbt 看起来像这样

import com.typesafe.sbt.packager.archetypes.ServerLoader.SystemV

name := """play-debian-ctrl"""

version := "1.0-SNAPSHOT"

lazy val root = (project in file("."))
  .enablePlugins(PlayScala, JDebPackaging)

daemonUser in Linux := "sometest"
serverLoading in Debian := SystemV
maintainer in Debian := "Jan Friderici <jnfrd@outlook.com>"
packageSummary := "Some More Tests"
packageDescription := """Even much more test, or text?."""

scalaVersion := "2.11.1"

libraryDependencies ++= Seq(
  jdbc,
  anorm,
  cache,
  ws
)

不附加到默认脚本的最佳方法是通过将以下内容添加到您的 build.sbt 来删除它们:

// disable all default control scripts
debianMakePreinstScript := None

debianMakePrermScript := None

debianMakePostinstScript := None

debianMakePostrmScript := None

现在你不应该有任何默认值,你可以自由使用你的自定义一次。