我已经制作了一个用于自动化oozie安装的debian软件包。 postinst脚本(基本上是一个shell脚本)在安装包后运行。我想访问此脚本中的环境变量。我应该在哪里设置环境变量?
答案 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所要求的。