Mit diesem Script kann man sich eine preferences erstellen um viele Pakete mit gleichem Präfix (kde, xorg, ..) zu pinnen.
Aufruf:
Beispiel:
Falls man den 2.Parameter weg lässt erhält man eine preference Datei für alle seine aktuell installierten Pakete.
Die Ergebnis Datei steht im aktuellen Verzeichnis und kann dann (nach Prüfung!) in die vorhandene /etc/apt/preferences eingefügt werden. Das darf in der Regel nur root !
Da es sich um ein "quick hack" Script handelt, gibt es keinerlei Fehlerprüfung der Parameter
Hier die source, speichern z.Bsp als myScript und mit chmod +x myScript ausführbar machen.
Script-Gurus sind aufgerufen dieses Script zu "veredeln" ... evtl mit automatischem append an die vorhandene /etc/apt/preferences
Aufruf:
Code:
myScript <name-der-preferences> <filter-string>
Code:
./myScript myXORG xorg
Falls man den 2.Parameter weg lässt erhält man eine preference Datei für alle seine aktuell installierten Pakete.
Die Ergebnis Datei steht im aktuellen Verzeichnis und kann dann (nach Prüfung!) in die vorhandene /etc/apt/preferences eingefügt werden. Das darf in der Regel nur root !
Da es sich um ein "quick hack" Script handelt, gibt es keinerlei Fehlerprüfung der Parameter
Hier die source, speichern z.Bsp als myScript und mit chmod +x myScript ausführbar machen.
Code:
#! /bin/bash
# Author: oc2pus
# create a apt-preference file for all packages matching filter
#
# usage: $0 preferencefile filter
MYRPMLIST="./tmpRPMList"
if [ -z "$1" ]; then
MYPREF="./myPreferences"
else
MYPREF="$1"
fi
# create list of installed packages
echo "$0: create temporary package list ($MYRPMLIST)"
if [ -z "$2" ]; then
rpm -qa --queryformat "%-30{name} %20{version} %10{release}\n" | sort > $MYRPMLIST
else
rpm -qa --queryformat "%-30{name} %20{version} %10{release}\n" | sort | grep "$2" > $MYRPMLIST
fi
# sample line:
# CheckHardware 0.1 778
# create preference
echo "$0: create preference file ($MYPREF) filter ("$2")"
cat $MYRPMLIST | awk '{print "Package: "$1}{print "Pin: version "$2"-"$3}{print "Pin-Priority: 1001"}{print ""}' > $MYPREF
echo "$0: remove temporary package list ($MYRPMLIST)"
rm -f $MYRPMLIST
echo "$0: check $MYPREF and append it to your /etc/apt/preferences"
Script-Gurus sind aufgerufen dieses Script zu "veredeln" ... evtl mit automatischem append an die vorhandene /etc/apt/preferences