2

我在我的 rpm 安装程序的 build.spec 中添加了以下“Pre”部分。当我安装 rpm 时没有创建新的组或用户?

如果我将其粘贴到脚本中并运行,那么它会按预期工作。我错过了什么?

提前致谢,

-埃德

RHEL 5.2

#######################
# pre
#######################
%pre

# This works when run as a script by root.  Why not from the RPM?
if grep ^frontier: /etc/group >> /dev/null ; then
 : # group already exists
else
 %{_sbindir}/groupadd frontier -g 2000
fi

if ! id diagnostics >& /dev/null; then 
 %{_sbindir}/adduser diagnostics -g diaguser -d /home/diagnostics -u 2001 -p secretPassword
 usermod -a -G frontier diagnostics
fi
4

1 回答 1

1

利用

%_sbindir/groupadd

代替

%{_sbindir}

在使用 mc 之类的东西构建后检查您的 RPM,提取预脚本,您将能够检查您的扩展是否正常工作。

实际上,那里不需要 %_sbindir。如果您看一下 RedHat 是如何构建 httpd....rpm 的,您会发现他们只是使用 groupadd 和 useradd 而没有完整路径。

于 2010-07-25T04:14:34.700 回答