rpm.spec 隐藏 %post 之后的警告
rpm.spec hide warning that comes after %post
我已经尝试解决这个问题几天了,但仍然没有...
比方说这是我的 upgrade.sh:
Finished upgrading...
这是我的 rpm.spec
文件:
Name: Hi
Summary: Discover Server
Source: %{name}-%{version}.%{release}.tar.gz
Version: %{version}
Release: %{release}
Group: Discover Server
License: Commercial
Vendor: Software
BuildRoot: %{_tmppath}/%{name}-%{version}-root
Obsoletes: %{name}
%description
Discover Server
%prep
%setup -n %{name} -q
%install
something that is not relevant
%post
sh ./upgrade.sh
echo "finished post"
%pre
%preun
%clean
echo "cleaning"
rm -rf ($RPM_BUILD_ROOT) &> /dev/null
%files -f %{name}-%{version}-filelist
现在我得到了 example.rpm
文件。
在我 运行 命令 rpm -U example.rpm
这是我得到的输出:
Finished upgrading
Finished post
warning: XYXYXY: remove failed: No such file or directory
warning: XXXX: remove failed: No such file or directory
升级后一切正常,我唯一的问题是我不想显示 post 命令完成后出现的警告。
我该怎么做?每次我们发布新的升级时,文件的名称都不同,因为它们上面有版本名称,所以这可能就是问题所在。
有没有一种简单的方法可以让这些警告消息只转到 dev/null 之类的?
看到 "Finished upgrading..."
消息也很重要。
该警告意味着 rpm
正在尝试从旧包中删除文件,但它们已不在文件系统中。所以你应该问问自己为什么会这样,以及如何处理:
- 您要手动删除它们吗?不要,让
rpm
为您删除它们。
- 他们不能保证在系统上吗?在这种情况下,您可以将它们制作成
%ghost
个文件。这些文件存在时将被删除,但如果它们不存在,您将不会收到任何警告。 (more on %ghost files here)
%files
%ghost /path/to/file-that-might-or-not-be-there
如果您想知道为什么在执行 %post
部分后会出现此错误,那么这里有一本适合您的好书,其中清楚地显示了升级期间所有 scriptlet 的顺序:https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#ordering
我已经尝试解决这个问题几天了,但仍然没有...
比方说这是我的 upgrade.sh:
Finished upgrading...
这是我的 rpm.spec
文件:
Name: Hi
Summary: Discover Server
Source: %{name}-%{version}.%{release}.tar.gz
Version: %{version}
Release: %{release}
Group: Discover Server
License: Commercial
Vendor: Software
BuildRoot: %{_tmppath}/%{name}-%{version}-root
Obsoletes: %{name}
%description
Discover Server
%prep
%setup -n %{name} -q
%install
something that is not relevant
%post
sh ./upgrade.sh
echo "finished post"
%pre
%preun
%clean
echo "cleaning"
rm -rf ($RPM_BUILD_ROOT) &> /dev/null
%files -f %{name}-%{version}-filelist
现在我得到了 example.rpm
文件。
在我 运行 命令 rpm -U example.rpm
这是我得到的输出:
Finished upgrading
Finished post
warning: XYXYXY: remove failed: No such file or directory
warning: XXXX: remove failed: No such file or directory
升级后一切正常,我唯一的问题是我不想显示 post 命令完成后出现的警告。 我该怎么做?每次我们发布新的升级时,文件的名称都不同,因为它们上面有版本名称,所以这可能就是问题所在。
有没有一种简单的方法可以让这些警告消息只转到 dev/null 之类的?
看到 "Finished upgrading..."
消息也很重要。
该警告意味着 rpm
正在尝试从旧包中删除文件,但它们已不在文件系统中。所以你应该问问自己为什么会这样,以及如何处理:
- 您要手动删除它们吗?不要,让
rpm
为您删除它们。 - 他们不能保证在系统上吗?在这种情况下,您可以将它们制作成
%ghost
个文件。这些文件存在时将被删除,但如果它们不存在,您将不会收到任何警告。 (more on %ghost files here)
%files
%ghost /path/to/file-that-might-or-not-be-there
如果您想知道为什么在执行 %post
部分后会出现此错误,那么这里有一本适合您的好书,其中清楚地显示了升级期间所有 scriptlet 的顺序:https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#ordering