[Tip] kleines script zur Erstellung einer preferences Datei

Alles rund um die Installation Eures Linuxsystems, sowie die Updatefunktionen des Systems und das Paketmanagement

Moderator: Moderatoren

Antworten
Benutzeravatar
oc2pus
Ultimate Guru
Ultimate Guru
Beiträge: 6506
Registriert: 21. Jun 2004, 13:01

[Tip] kleines script zur Erstellung einer preferences Datei

Beitrag von oc2pus » 17. Feb 2005, 13:22

Mit diesem Script kann man sich eine preferences erstellen um viele Pakete mit gleichem Präfix (kde, xorg, ..) zu pinnen.

Aufruf:

Code: Alles auswählen

myScript <name-der-preferences> <filter-string>
Beispiel:

Code: Alles auswählen

 ./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: Alles auswählen

#! /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 :)
tell people what you want to do, and they'll probably help you to do it.
PackMan
LinWiki : Das Wiki für Linux User

Werbung:
Antworten

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 1 Gast