问题描述
我正在创建一个使用 VLCJ 的 Java 应用程序。但是,因为它使用 VLC,这意味着我需要找到一种方法为用户下载 VLC,以便 VLCJ 可以检测二进制文件并找到必要的文件。不幸的是,VLC 具有依赖于操作系统的二进制文件,这意味着每个操作系统都有不同类型的二进制文件可供使用。
对于 Windows,我设法从 VideoLAN 站点上包含二进制文件的 zip 文件中获取直接下载。对于 Mac,我能够找到一种方法来压缩应用程序的二进制文件并将它们托管在某个地方,以便我的应用程序获取和下载。这意味着对于 Mac 和 Windows,我已经准备好了。
然而,对于 Linux,这要困难得多。我不能简单地使用命令来安装 VLC,因为它需要使用关键字 sudo
,如果未设置,通常需要一个密码(默认情况下,大多数 Linux 发行版都设置为密码)。由于运行环境的原因,我的应用程序将在其中运行,用户无法输入他们的密码(更多详细信息,我在服务器托管的服务器上运行插件。用户不一定知道服务器的密码,这会导致这是一个问题)。
为了寻找解决方案,我尝试查看here。我想找到支持主要 Linux 类型(RedHat 发行版、Ubuntu 等)的软件包和二进制文件。我最终搜索了在托管镜像上列出的包并下载了它们。我最终将它们用于我的应用程序,但是,我注意到某些软件包没有二进制文件。事实上,它们只包含有关应用程序的信息,但不包含任何二进制文件。看看这个 rpm 文件: https://github.com/PulseBeat02/VLC-Release-Mirror/blob/master/linux/vlc-3.0.12-1.3.aarch64.rpm 。它没有包含的二进制文件,但它仍然是一个包。
再次查看 VideoLAN 网站后,我注意到他们使用 snap 文件主要在 Linux 上分发软件。更具体地说,Snapcraft,它自己处理要下载的软件。不幸的是,这需要一个命令,该命令还需要 sudo
才能安装软件包。
这让我没有想法。我已经考虑了一个星期的解决方案,但我不确定我可以尝试哪些其他可能性。有没有人有任何建议或想法来帮助我?
解决方法
恐怕您在这里没有太多选择。在机器上安装软件时,您可能始终需要管理员权限。
也许这有助于https://askubuntu.com/questions/339/how-can-i-install-a-package-without-root-access