Java

是否可以配置 .deb 包,使其僅安裝在 32 位作業系統上,而不安裝在 64 位作業系統上?

  • April 29, 2019

我開發了一個 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需要。

引用自:https://unix.stackexchange.com/questions/516110