如何在 debian 目录的“安装”文件中使用环境变量。
我想做这样的事情:
Resources $HOME/somefolder
然而,这是在 deb 包中创建一个名为 $HOME 的文件夹,而 lintian 给了我一个警告:
W: file-in-unusual-dir $HOME/somefolder
Debian 软件包在系统范围内安装软件。此外,只有超级用户可以安装软件包,普通用户不能。一个系统通常有多个用户(我的桌面机器有 2 个用于现实世界的人的用户帐户,总共有 38 个不同的用户帐户,其中大多数是特定程序的系统用户(例如,以用户身份运行的网络服务器www-data
)
在这种情况下${HOME}
没有意义(谁的主目录?root?您的应用程序的特殊伪用户?所有用户?)。
因此,您应该重新考虑如何安装软件包:
对所有用户都有效的数据应该进入/usr/share/<myapp>
(对于架构独立的数据)或/usr/lib/<myapp>
(对于架构相关的数据)。
包根本不应该安装每个用户的数据!如果在运行您的应用程序之前安装用户数据是绝对必要的(例如,因为应用程序将拒绝在 ${HOME} 中的某处安装用户数据的情况下运行),您仍然应该将该数据放在一个中心位置(/usr/share
或/usr/lib
) 并创建每个用户在第一次启动应用程序之前必须运行的设置脚本,该脚本会将内容从中心位置复制(或符号链接)到用户的 ${HOME}。或者,您可以做一个包装器,它将在运行实际程序之前检查数据是否存在(并最终复制/符号链接它)。
您可能想看看FileSystemHierarchy和Debian Policy。