と言うわけで早速半自動取り出しスクリプトを作成
# # エラーリストなどから自動で.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です。
いや、もっと早く気づいていれば楽できたのにな…