gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 09:25:42 26 4
gpt4 key购买 nike

我制作了一个 debian 包来自动安装 oozie。 postinst 脚本基本上是一个 shell 脚本,在安装包后运行。我想访问这个脚本中的环境变量。我应该在哪里设置环境变量?

最佳答案

根据您实际上试图完成的任务,将信息传递给包脚本的正确方法是使用 Debconf。变量。

简单地说,您添加一个 debian/templates 文件,如下所示:

Template: oozie/secret
Type: string
Default: xyzzy
Description: Secret word for teleportation?
Configure the secret word which allows the player to teleport.

并将您的 postinst 脚本更改为类似

#!/bin/sh -e

# Source debconf library.
. /usr/share/debconf/confmodule

db_input medium oozie/secret || true
db_go

# Check their answer.
db_get oozie/secret
instead_of_env=$RET
: do something with the variable

您可以 preseed在运行打包脚本之前,Debconf 数据库的值为 oozie/secret;然后它不会提示输入值。简单地做一些像

debconf-set-selections <<<'oozie oozie/secret string plugh'

用值 plugh 预先配置它。

另见 http://www.fifi.org/doc/debconf-doc/tutorial.html

无法保证安装程序在特定环境中运行,或者 dpkg 由特定用户调用,或者来自用户完全可以操作的环境。正确的打包需要在这些场景中具有稳健性和可预测性;还要考虑可用性。

关于bash - 在 debian 包的 postinst 脚本中访问环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34302261/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com