访问debian包的postinst脚本中的环境变量

时间:2015-12-16 00:59:22

标签: bash environment-variables deb dpkg post-install

我已经制作了一个用于自动化oozie安装的debian软件包。 postinst脚本(基本上是一个shell脚本)在安装包后运行。我想访问此脚本中的环境变量。我应该在哪里设置环境变量?

2 个答案:

答案 0 :(得分:0)

长时间回复。

实际上,我是通过dpkg作为sudo用户部署oozie定制debian的。 因此,要启用对这些环境变量的访问,我实际上必须在/ etc / sudoers文件中进行一些更改。 我所做的更改是将文件中的每个环境变量名称添加为

Defaults        env_keep += "ENV)VAR_NAME"

然后,我就可以在postinst脚本中访问这些变量了。

答案 1 :(得分:-1)

将此添加到您的postinst脚本:

#!/bin/sh -e
# ...
pid=$$
while [ -z "$YOUR_EVAR" -a $pid != 1 ]; do
    ppid=`ps -oppid -p$pid|tail -1|awk '{print $1}'`
    env=`strings /proc/$ppid/environ`
    YOUR_EVAR=`echo "$env"|awk -F= '$1 == "YOUR_EVAR" { print $2; }'`
    pid=$ppid
done
# ... Do something with YOUR_EVAR if it was set.

在运行dpkg -i之前仅export YOUR_EVAR=...

不是推荐的方式,但它紧凑,简单,正是PO所要求的。