【问题标题】:Change all users PATH variable from a deb package从 deb 包中更改所有用户的 PATH 变量
【发布时间】:2014-02-24 16:00:15
【问题描述】:

我的应用程序依赖于 libjss-java 包。此软件包安装在 Ubuntu(我的目标操作系统)上的 /usr/lib/jss 中,因此如果我不将“/usr/lib/jss”添加到用户的 $PATH。我打算通过 debian 包分发这个应用程序,我可以在不需要注销的情况下更改 $PATH 变量吗?

应用程序有两种分发方式,一种是普通的桌面应用程序。另一种方式是网页中的小程序。我想在第二种情况下使用 debian 包来强制在用户机器上安装依赖项,以便应用程序正常工作。更具体地说,我的应用程序的第二种情况的 DEB 包只是强制依赖,并且应该配置用户的 $PATH。

我已经可以通过 /etc/profiles 将 jss 添加到 $PATH,但这仅适用于用户登录,因此安装后,我的应用程序无法运行。如果这不是正确的方法,我该怎么办?

【问题讨论】:

    标签: java path package debian deb


    【解决方案1】:

    简单直接的解决方案是编写一个简单的包装外壳脚本来创建正确的环境,然后调用真实的东西。把这个放在/usr/bin/yourapp:

    #!/bin/sh
    PATH=$PATH:/usr/lib/jss
    exec /usr/lib/jss/yourapp.real
    

    其中yourapp.real 是实际的二进制文件。为了简单起见,我建议将它与库一起安装,尽管 FHS 可能会坚持使用 /usr/libexec 之类的东西。

    【讨论】:

    • 这实际上解决了我一半的问题,我的应用程序以两种方式分发,一种是普通的桌面应用程序(通过这样做解决的情况),另一种作为网页中的小程序。在小程序的情况下,我不能使用脚本,因为我猜我必须更换 Web 浏览器启动器,而且我不确定这对于这种情况是否是一个好的解决方案。我将编辑问题以提及小程序。
    • 我不认为你可以要求用户在本地安装 .deb 包来运行你的 web 小程序,除非你有一个非常同质的用户群,他们都能够(@987654326 @ 或 sudo 权限等)并愿意(或受政策强制)为您安装软件包。
    • 我根据 google hangout 示例想到了这个解决方案。他们使用 deb 包在您的浏览器中安装插件。所以我猜用户群应该不是问题,我的问题是如何使用PATH中的libjss-java访问applet。我想知道我是否应该与包管理器交谈,看看这是否是包的问题,​​好像它已经安装它应该在我认为的应用程序路径中。你怎么看?
    猜你喜欢
    • 1970-01-01
    • 2011-11-07
    • 1970-01-01
    • 2019-01-09
    • 1970-01-01
    • 2011-03-05
    • 2013-12-29
    • 1970-01-01
    相关资源
    最近更新 更多