hkoba blog

プログラマーです。プログラミング言語ミーハーです。よろしくどうぞ(能代口調)

(zsh) ある日のインフラ業 - bind の入れ替えを例に

雑に記録だけ。

大体、こんな感じだった。(Fedora22 の場合です. P3 の src.rpmここから download. YMMV)

fn=bind-9.10.2-4.P3.fc22.src.rpm
rpm -ivh $fn
cp ~/rpmbuild/SPECS/bind.spec .

# gpg --keyserver pgpkeys.mit.edu --recv-key 911A4C02
# gpg --edit-key codesign@isc.org trust
# gpg bind-9.10.2-P4.tar.gz.sha512.asc

fn=bind-9.10.2-P4.tar.gz
cp $fn ~/rpmbuild/SOURCES

sed -i -e 's/\(^%global PATCHVER\) P3/\1 P4/' bind.spec

LANG=C rpmbuild -ba --define 'dist .hk2' bind.spec |& tee build.log

sed -n 's/^Wrote: //p' build.log > bind-rpm.files

typeset -A rpmdict
rpmdict=($(for fn in $(grep /RPMS/ bind-rpm.files);
 rpm -qp --qf "%{NAME}\t$fn\n" $fn))
  
rpmnames=($(rpm -qa --qf '%{NAME}\n'|
 grep '^bind'|grep -v bind99|sort))
  
pkgs=()
for n in $rpmnames; do
 pkgs+=($rpmdict[$n])
done
  
sudo dnf upgrade $pkgs

sudo systemctl restart named-chroot