Ecco come fare. Ad ogni aggiornamento aprite tutti i vostri slack-required e vedete se è presente l'aggiornamento appena fatto.
Come dite?! è un lavoro troppo lungo?
Ecco uno script che fa per voi:
Codice: Seleziona tutto
#!/bin/bash
SR=$1
if [ -d $SR ];then
SR=$1/slack-required
fi
cat $SR |egrep -o '[A-Za-z][^ ]+ [^ ]+ [^-]+-[^-]+-[0-9]+[^,]*'|while read a b c;do
cd /var/log/packages
ls $a-$c >/dev/null 2>&1
if [ $? -eq 0 ];then
echo "$a $b $c: OK"
else
V=$(ls $a-*|egrep $(echo $a|sed -r "s/\\+/\\\+/g")"-[^-]+-[^-]+-[^-]+$" 2>/dev/null)
if [ -z "$V" ];then
echo "$a $b $c: ASSENTE"
else
echo "$a $b $c: DIVERSA ($V)"
fi
fi
done
quindi lanciatelo con
./check_req.sh path/to/slackbuild
./check_req.sh .
./check_req.sh slack-required
./check_req.sh path/to/slackbuild/slack-required
check_req.sh prende lo slackbuild e fa il match con /var/log/packages
Avverte se
1) c'è una dipendenza rotta
2) la dipendenza è stata aggiornata
per esempio
Codice: Seleziona tutto
# ./check_req.sh ./slackware64-current/utilities/slapt-get/0.10.2m/src/slack-required
curl >= 7.26.0-x86_64-2: DIVERSA (curl-7.27.0-x86_64-1)
cyrus-sasl >= 2.1.23-x86_64-4: OK
glibc-solibs >= 2.15-x86_64-4: OK
gpgme >= 1.3.2-x86_64-1: OK
libassuan >= 2.0.3-x86_64-1: OK
libgpg-error >= 1.10-x86_64-1: OK
libidn >= 1.25-x86_64-2: OK
openldap-client >= 2.4.31-x86_64-2: OK
openssl >= 1.0.1c-x86_64-2 | openssl-solibs >= 1.0.1c-x86_64-2: DIVERSA (openssl-1.0.1c-x86_64-3)
zlib >= 1.2.6-x86_64-1: OK
oppure lanciatelo con
for a in $(find -name slack-required);do echo ===== $a;./check_req.sh $a |grep -v OK;echo;done
per lanciarlo sull'intero repository.
A voi resta solamente di interpretare l'output. Se l'aggiornamento è solo un rebuild o un cambio di minor version non dovrebbe essere necessario ricompilare.
Per esempio:
"util-linux >= 2.21.2-x86_64-2: DIVERSA (util-linux-2.21.2-x86_64-4)"
"libpng >= 1.4.9-x86_64-1: DIVERSA (libpng-1.4.12-x86_64-1)"
Se è un forte aggiornamento allora va ricompilato.
"openssl >= 0.9.8c-x86_64-1: DIVERSA (openssl-1.0.1c-x86_64-3)
Se manca hai un problema:
"rhino >= 1_7R4-x86_64-1mt: ASSENTE"