我想爲my Java game(當前打包爲JAR + JNLP文件)創建一個RPM包。我使用Ant作爲構建工具。我不能使用平臺依賴工具,因爲使用我的源代碼的少數開發人員使用多個操作系統,而不一定是GNU Linux。如何使用Redline RPM Java庫創建RPM包?
起初,我嘗試使用JDIC,但是它的源代碼多年來一直沒有維護,爲了重新編譯,我不得不修改大量的東西。此外,它只是在引擎蓋下調用本地RPM工具。然後,我發現RPM Ant task,但它也使用原生RPM工具。之後,我發現RPM Maven plugin,但我現在不想切換到另一個構建工具來創建RPM包。
最後,我發現Redline RPM純Java庫有一個Ant任務,有一個例子here。我仍然不明白如何使用它。我理解幾個基本字段(組,版本,發佈,名稱)的作用,我知道我必須使用「depends」來表示我的遊戲至少需要Java 1.7,但我不知道如何處理我的JAR,放置桌面快捷方式的.desktop文件的位置,以及放置調用主類的bash腳本以運行我的遊戲的位置。作爲第一步,我想創建一個二進制包。我發現了另一個使用這個庫here的例子。我是否也必須提供卸載腳本?我應該使用postinstall腳本將.desktop文件複製到桌面目錄中嗎?我應該爲第三方庫使用tarfileset嗎?我知道將JAR放入幾個RPM會更好,但我希望在做更精細但更清潔的事情之前成功做一些簡單的事情。
你應該閱讀你的目標分發包裝準則,並按照他們。一般而言,您希望將二進制文件放在/ usr/bin中,無論您計劃從何處讀取數據(指南可能都有建議,甚至可能包含自動的這些路徑的宏),都與桌面文件相同。你不應該需要一個腳本,除非你必須爲系統做一些事情(比如添加一個用戶),rpm不能爲你處理(它處理複製/安裝文件)。 –
我沒有可執行文件,我需要調用「java -jar tuer.jar」來運行我的遊戲。類文件和數據(圖像,聲音,...)位於JAR中。您提醒我,Linux發行版的包裝準則略有不同。在Mageia下,遊戲可執行文件被放入/ usr/games。 XDG_DESKTOP_DIR未在KDE下設置,我必須查看.config/user-dirs。dirs:s – gouessej
您提到'調用主類來運行我的遊戲的bash腳本,這是您的'可執行文件'。在這種情況下,JAR是你的數據(儘管在這種情況下,你可能會這樣做,但是在java中,如果你不想自己管理路徑,那麼在java中會對你的java路徑施加一些限制)。在這種情況下,你可能只需要創建一個'/ usr/share/$ game'或類似的目錄,將你的JARS放在那裏,並將腳本安裝到'/ usr/bin/$ game'中並完成。 (或者任何適合您的目標包裝方案的系統。) –