2015-02-08 96 views
0

我有一個Play服務器應用程序。如何使用自定義佈局創建deb

目前,我有一個創建這個DEB 20行的bash腳本:

/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/ 

我怎麼做,我得到我想要的佈局?我是否需要實施archetype

我使用SBT 0.13.7和SBT本機包裝程序1.0.0-M1。

回答

2

如果您的佈局接近已經生成的佈局,您可以使用像defaultLinuxInstallLocationdefaultLinuxConfigLocation這樣的設置。

或者直接修改linuxPackageSymlinkslinuxPackageMappings,像

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中有額外的東西,你可能需要刪除該目錄。

相關問題