假设源文件为:souce0.tar.xz, source1.tar.xz, source2.tar.xz, 软件包为 package-version。 这三个 tarball 解压出来是没有 top-level dir 的,也就是说解压出来是各种文件散落各处,所系希望能够在 %{_builddir}/%{name}-%{version} 下解压。根据 Max RPM ,%setup 加上 -a 选项可以先进入目录再解压指定的 source,但是每次只能解压一个 tarball。该软件包有很多的 tarball,肯定不能一个一个的写啊。有没有其他方法?比如用 for 循环?
如果直接能用 bash 的 for 循环的话,先 cd 进入目标目录,然后:
for tarball in `ls *.tar.xz`
do
tar xf $tarball
done
这样子也行啊。但是 specfile 不能这么用的啊。Arch 的 PKGFILE 倒是可以。所以有什么办法吗。