我正在创建RPM规范文件以安装自定义应用程序,并且我想使用特定的 user:group 安装该应用程序,但事实是用户将遵循一种模式(例如: usr ## ,其中 ## 可以是从 00 到 99 的任意数字),以及每台安装计算机将具有与该模式匹配的其他用户。
我试图使用%define宏在spec文件中创建一个变量,以从OS中获取用户并使用它来分配defattr:
%define _user %(sed -n -r 's/(usr[0-9]{2}).*/\\1/p' /etc/passwd)
%files
%defattr(755,%{_user},group)
但是宏在构建时得到了扩展,因此它是从我的建筑机器而不是安装机器(单独的机器)中吸引用户的。我还尝试将其放在%pre和%post部分中,但都无效。
有人知道如何从安装计算机中获取用户吗?谢谢!