在 makefile 中,我使用了如下所示的“install”命令
命令:'安装-o 1010-g 100-m 0755-D 路径'
我并不想检查用户名和组名,而是想检查 uid 和 gid。
请考虑以下场景。
步骤1:
系统 1:UID 1010 对应的用户为“XXXX”。使用“系统 1”创建 RPM 安装程序。
第2步:
系统 2:UID 1010 对应的用户为“YYYY” 在安装 RPM 文件时,我们收到一条警告消息,提示“警告:用户 XXXX 不存在 - 使用 root”
在此步骤中,我假设登录用户的 UID 应等于“1010”,以便 RPM 安装程序成功安装。但实际情况是,RPM 安装程序希望安装系统中的用户名相同
答案1
嗯,除非您使用 LDAP 之类的东西,否则不同的机器上的 uid/oid/gid 可以有不同的值。即便如此,在您的系统上定义的用户也会有自己的 id。无法保证用户会存在于另一台机器上。
也许您应该进一步解释一下您的用例?
答案2
使用%files
RPM 文件的部分.spec
来设置已安装系统(问题中的系统 2)上预期的所有权。
您还可以使用%pre
RPM 文件的部分.spec
来确定预期的用户和组是否实际存在于已安装的系统(问题中的系统 2)中。
%files
# Set file permissions and ownership
%pre
# Check if expected user 'myuser' exists. If not, exit with an error.
# Check if expected group 'mygroup' exists. If not, exit with an error
进一步阅读rpm 网站。