Portál AbcLinuxu, 12. května 2025 22:08
Kdysi se mi stalo něco podobného, nakonec jsem to nějak zprovoznil, ale nebylo to vůbec jednoduché, nejdříne je potřeba nahrát všechny RPM do jednoho adresáře na disku.
zde jsem našel tenkrát postup
ještě jsem na disku našel tento script, ale jak fungoval si už popravdě nepamatuji, už je to přeci jenom nějaký ten rok.
#!/bin/bash
pass1() {
echo "looking for instaled files"
find / -print | grep -v /home | sort > /root/rpmrebuild/dsk-contents
echo "looking for RPMs"
cd /home/Images/RPMS
rm -f /root/rpmrebuild/rpm-contents.full
for f in *.rpm ; do
rpm -q -l -p $f \
| awk -v pn=$f '{printf "%s:%s\n",pn,$0;}' >> /root/rpmrebuild/rpm-contents.full
done
echo "sorting RPMs"
cat /root/rpmrebuild/rpm-contents.full | grep :/ > /root/rpmrebuild/rpm-contents
sort -t: +1 -o /root/rpmrebuild/rpm-contents /root/rpmrebuild/rpm-contents
return 0
}
pass2() {
echo "comparing RPMs and installed apps"
cd /root/rpmrebuild
./lgetvalue --field-separator=: \
--key-position=2 \
--value-position=1 \
/root/rpmrebuild/rpm-contents /root/rpmrebuild/dsk-contents \
| sort -u > /root/rpmrebuild/rpm-installed
return 0
}
pass3() {
echo "finding dependencies"
cd /home/Images/RPMS
rpm -i -v --noscripts --notriggers --excludepath / `cat /root/rpmrebuild/rpm-installed.ok` 2>/root/rpmrebuild/rpm-installed.err
cd /root/rpmrebuild
return 0
}
pass4() {
echo "looking for deps"
rm -f /root/rpmrebuild/rpm-installed.deps
awk '$1 ~ /^/ {system ("grep "$1"$ /root/rpmrebuild/rpm-contents >> /root/rpmrebuild/rpm-installed.deps")}' /root/rpmrebuild/rpm-installed.err 2> /dev/null
cut -d: -f1 rpm-installed.deps | sort -ut: -o /root/rpmrebuild/rpm-installed.deps
echo "finding deps"
cd /home/Images/RPMS
rpm -i -v --noscripts --notriggers --excludepath / `cat /root/rpmrebuild/rpm-installed.ok /root/rpmrebuild/rpm-installed.deps` 2>/root/rpmrebuild/rpm-installed.err2
cd /root/rpmrebuild
return 0
}
case "$1" in
pass1)
pass1
;;
pass2)
pass2
;;
pass3)
pass3
;;
pass4)
pass4
;;
full)
pass1
pass2
pass3
pass4
;;
*)
echo $"Usage: $0 {pass1|pass2|pass3|pass4|full}"
exit 1
esac
Strávil jsme tím tenkrát snad 2 dny, ale povedlo se, tak přeji hodně štěstí a ať se dílo podaří.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.