と言うわけで早速半自動取り出しスクリプトを作成
#
# エラーリストなどから自動で.srpmを取り出すためのスクリプト
# getsrc.sh
#! /bin/sh
cat $1 | gawk '{ print $1 }'|grep "[0-9A-Za-z]"|grep -v '^setting' > ./temp.txt
cmd=""
spc=" "
for fn in $(cat ./temp.txt); do
if [ $fn == "RPM" ]; then
break
fi
cmd=$cmd$spc$fn$spc
done
rm temp.txt -f
echo $cmd
dnf download --source --destdir ./SRPMS $cmd
楽ですね。さらに楽だなぁと思ったのは重複している場合やすでにダウンロードしている場合には自動でスキップしてくれる点です。なので、何も考えずにリストを作成してこのスクリプトに食わせてやればOK。
dnfの直前のecho $cmdは確認用でもあるので、無くても問題はないですね。
例えばlist1.txtなるファイルに
tcpdump-4.99.4-1.fc38.x86_64 tigervnc-server-minimal-1.13.1-3.fc38.x86_64 time-1.9-20.fc38.x86_64 tmux-3.3a-3.fc38.x86_64
と言った感じで羅列してやり、あとは
$ ./getsrc.sh list1.txt
これだけで、このディレクトリ内の./SRPMS内に.srpmがダウンロードされます。リストにはバージョン情報は無くてもよいので、単に
tcpdump tigervnc-server-minimal time tmux
でもOKです。
いや、もっと早く気づいていれば楽できたのにな…
