Ubuntu 软件包 (.deb) 建议安装文件夹和二进制名称

Ubuntu 软件包 (.deb) 建议安装文件夹和二进制名称

我正在为自己构建的可执行 jar 构建 .deb 文件。我构建了一个 .deb 文件并将其安装到/usr/bin

因为我有一个 jar,所以我现在有一个名为的可执行文件/usr/bin/mylovelyprogram.jar。我注意到目录中没有其他文件有扩展名。

现在,我知道是否有扩展名并不重要,但由于我的程序很突出,这确实让我很困扰。我想知道重命名打包的可执行文件jars以使其不再具有扩展名是否很常见?或者,是否有其他标准,例如将 jar 放在其他地方并使用符号链接?我希望尽可能遵守现有标准,主要是这样如果我决定分发我的程序,就不会养成坏习惯。

答案1

本地软件包(特定于一台计算机而不是整个网络安装的软件包)的“标准”unix 位置是 /usr/local

许多 Linux 发行版选择打破这一标准,将所有内容都转储到 /usr 或(但愿不会)/opt 中!(当某些应用程序决定填满您的根分区时,您难道不讨厌它吗?因为它将自己转储到之前不存在的 /opt 中?不提名字,libreoffice...)

你的 jar 文件实际上是一个库,应该位于 /usr/local/lib/myapp/ 之类的地方

您应该在 /usr/local/bin 中有一个小脚本,它使用 java 虚拟机调用您的 jar 文件。

#!/bin/sh
java -jar /usr/local/lib/myapp/myjar.jar $*

当然,你应该确保 /usr/local/bin 在你的 $PATH 中

这种安排可以防止您的软件与操作系统软件混在一起,还可以将其保存在有足够空间的分区上。它还可以很好地适应非 Linux 系统,因为它是 Java,所以您完全可以预料到它会在非 Linux 系统上运行,对吧?毕竟,这就是 Java 的重点,不是吗?跨平台?

答案2

其中的其他文件/usr/bin肯定不是 Java 应用程序。

您的 jar 本身不是可执行文件,需要由java可执行文件打开并执行。双击它将java -jar your.jar在后台执行神奇的操作(执行)。

恕我直言,你的罐子不属于/usr/bin/opt/yourapp会更明智。参见这个问题

相关内容