
在 makefile 中,我使用了「安裝」指令,如下所示
指令:'安裝-o 1010 -g 100 -m 0755 -D 路徑'
我不想檢查使用者名稱和群組名,而是想檢查 uid 和 gid。
考慮以下場景。
步驟1:
系統1:UID 1010對應的用戶為「XXXX」。使用“System 1”建立 RPM 安裝程式。
第2步:
系統 2:UID 1010 對應的使用者是“YYYY” 在安裝 RPM 檔案時,我們收到一則警告訊息:“警告:使用者 XXXX 不存在 – 使用 root”
在此步驟中,我假設登入使用者的 UID 應等於“1010”,RPM 安裝程式才能成功安裝。但實際發生的情況是,RPM 安裝程式希望安裝系統中的使用者名稱相同
答案1
好吧,在不同的機器上,uid/oid/gid 可以有不同的值,除非您使用 LDAP 之類的東西。即使如此,系統上定義的使用者也將擁有自己的 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.org。