我希望备份系统中安装的所有具有关键字 kernel 的RPM。
到目前为止,这就是我所拥有的:
RPMS=$(rpm -qa | grep kernel-firmware)
echo "$RPMS" | xargs -I '{}' rpm -ql '{}' | xargs tar cfz "$RPMS".tgz
这只适用于一个包,效果很好。当我grep 内核时,事情不能按预期工作。
我希望每个档案都包含原始包裹的名称。
修改
我还不够清楚。我正在尝试备份已安装的软件包。我没有RPM src文件也没有原始包。我希望这样做能够在内核更新后回滚一些旧机器,或者只是能够在另一台机器上移动软件包。
我知道这不是正确的方法,一旦它们提取就像这样,它们不再是包,而是简单的tarball。但是,这应该足以满足我的目标。
从上面的命令中可以看出,我使用rpm -qa | grep kernel
在RPM DB中查询名称中包含 kernel 的所有软件包。然后,我希望使用rpm -ql pacakge-name
列出系统中的所有文件,并将它们传递给tar
,以便能够轻松地将它们移动到另一台计算机上。