diff --git a/docs/zh/docs/Administration/FAQ-54.md b/docs/zh/docs/Administration/FAQ-54.md index f2ffe413bbc2401c805ffb26448b8602feee08df..5b3e3583949fcdeeed608ec124c958df234fc613 100644 --- a/docs/zh/docs/Administration/FAQ-54.md +++ b/docs/zh/docs/Administration/FAQ-54.md @@ -335,4 +335,21 @@ install-info: 没有那个文件或目录 for /usr/share/info/gdbm.info.gz 步骤1 使用 ‘kill -9’ 停止所有正在运行的rpm命令。 步骤2 删除所有的/var/lib/rpm/__db.00*文件。 -步骤3 执行 ‘rpmdb --rebuilddb’ 命令,重建rpm db后即可。 \ No newline at end of file +步骤3 执行 ‘rpmdb --rebuilddb’ 命令,重建rpm db后即可。 + +## 执行 rpmrebuild -d /home/test filesystem对filesystem包rebuild时,rebuild失败 + +### 问题现象 + +执行 rpmrebuild --comment-missing=y --keep-perm -b -d /home/test filesystem-3.16-3.oe1.aarch64对filesystem包rebuild时,rebuild失败. +/usr/lib/rpmrebuild/rpmrebuild.sh:Error:(RpmBuild) Package 'filesystem-3.16-3.oe1.aarch64' build failed. +/usr/lib/rpmrebuild/rpmrebuild.sh:Error: RpmBuild + +### 原因分析 +软件包在%pretrans -p阶段创建目录,并在%ghost阶段对该目录进行修饰,如果用户在该目录下创建目录或文件,执行rpmrebuild对该包进行打包,发现创建的目录或文件也会打包到该包中。 + +上述问题的根本原因是因为filesystem在%pretrans阶段创建了/proc目录,并在%ghost阶段对该目录进行了修饰,但是该目录在系统运行时会动态的创建一些微量进程,这些进程非目录也非文件,在执行rpmrebuild的时无法对这些进程进行打包,所以rebuild失败。 + +### 解决方案 + +暂时不使用rpmrebuild命令对filesystem进行rebuild。