Java
是否可以配置 .deb 包,使其僅安裝在 32 位作業系統上,而不安裝在 64 位作業系統上?
我開發了一個 Java 8 應用程序。
我已經為Linux系統打包了它,自帶Java執行時,所以使用者不用處理Java安裝。
我用 32 位 Java 執行時製作了一個包,第二個用 64 位 Java 執行時製作了一個包。
在64位的包中,我
Architecture: amd64
在控製文件中設置,所以不能安裝在32位的作業系統上。這很好用。並且在我設置的 32 位包中
Architecture: i386
,但這仍然允許將應用程序安裝在amd64
作業系統上。如何使用 32 位 JRE 配置 .deb 包,使其無法安裝在 64 位作業系統上?我想限制它,使其只能安裝在 32 位作業系統上。
我想限制它,因為使用 32 位自包含 Java 8 JRE 安裝應用程序在 64 位系統上無法正常工作(我的意思是無需額外工作)。缺少庫:
libxi6
,libxrender1
,libxtst6
,libudev1
. 即使我為i386
拱門安裝它們,應用程序也不會崩潰,但應用程序的某些方面不能完美執行,例如 MIDI 設備檢測。如果 32 位軟體包不能安裝在 64 位作業系統上,那就太好了。如何做到這一點?
我不認為自己打包 Java 執行時是最好的解決方案,但如果它確實是不可避免的,你可以創建一個包,它可以在主要架構是
amd64
通過添加Conflicts: dpkg:amd64
控製文件的入口。
(這保證是足夠的,因為系統的主要架構是已安裝
dpkg
包的架構。由於dpkg
不能在多個架構上共同安裝,這種方法還避免排除能夠執行 64 位程序但未設置的多架構設置amd64
作為他們的主要架構。)如果您確實想繼續使用重新打包的 JRE,我鼓勵您檢查您正在使用的 JRE 的許可證,並修復您的包,使其不涉及手動步驟——至少,您應該添加庫依賴項您的 JRE需要。