[Tip] policy-Skript zum durchsuchen aller gwdg-Repositorys

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

Moderator: Moderatoren

Antworten
Benutzeravatar
pawe
Member
Member
Beiträge: 148
Registriert: 14. Dez 2004, 21:38
Wohnort: Bayern
Kontaktdaten:

[Tip] policy-Skript zum durchsuchen aller gwdg-Repositorys

Beitrag von pawe » 25. Feb 2005, 22:21

Hallo APT-user,

da es in letzter Zeit Probleme gab, einige Pakete (evtl. einer bestimmten Version) in den Repositorys zu lokalisieren, habe ich zur Lösung ein kleines Skript gebastelt. :wink: Schaut es euch aber lieber nochmal an und lest die Hintergründe, befor ihr loslegt. Bei mir funktioniert es, aber ich kann keine Garantie für eure Systeme geben.

Das Problem:
beim Befehl: apt policy <Paket>
durchsucht apt nur die freigegebenen Repositorys der sources.list. Oft werden spezielle Pakete oder neuere Versionen nicht gefunden.:?

Arbeitsweise des Skripts:
Das folgende Skript holt sich die aktuelle sources.list.FTP von ftp.gwdg.de aus dem Netz. Anschließend wird apt-get update und apt policy ausgeführt. Das durchsucht nun mit Hilfe der neu erstellten sources.list alle rpm-Repositorys ab.
Zum schluss wird die ursprüngliche sources.list wieder hergestellt.
Wie von policy gewohnt wird eine Tabelle Angezeigt in welchen Repositorys das paket zu finden ist (geordnet nach der Version).
Ob ihr das Paket aus dann installiert, ist eure Sache.

Ich kann mir auch gut vorstellen, dass einige auch andere Quellen verwenden möchten. Wenn ja, dann erstellt die Datei /etc/apt/sources.list.mehr. Diese füllt ihr mit allen möglichen Repositorys (auch komentare zu den Reps sind möglich, die Repositorys selber aber bitte ohne # vorne). Ist diese Datei vorhanden nimmt das Skript sie in die sources.list auf.

Praktischer Teil:

EDIT: ladet euch das Skript runter http://www.schwendi.org/apt-gdwg-suche.tar.gz
an dieser Stelle ein Dankeschön an gobo für das hosten!
dies ist der Inhalt des Skripts:

Code: Alles auswählen

#!/bin/sh

#####################################################
# Das Skript holt sich die aktuelle sources.list.FTP
# von ftp.gwdg.de, ersetzt durch diese die sources.list
# und sucht anschließend nach dem / den Paket(en)
# Aufruf: ./<Skript> <Paket1> <Paket2> ...
# Natürlich wird die alte sources.list am Ende des
# Skripts wieder eingesetzt
# Gruß pawe
# erstellt mit Hilfe des www.linux-club.de
#####################################################

 if [ "$#" -eq "0" ]; then
    echo "Bitte Namen des gesuchten Pakets eingeben"
    exit 1
 fi

 
rm -f sources.list.FTP  

# jetzt lade die neue sources.list.FTP runter..........

SuSEVersion=`grep "VERSION" /etc/SuSE-release | sed s/'VERSION = '/''/`

#-----------
# für 32bit Suse Versionen

wget ftp://ftp.gwdg.de/pub/linux/suse/apt/SuSE/"$SuSEVersion"-i386/examples/sources.list.FTP 	
#-----------


#-----------
# für 64bit Suse Versionen

# wget ftp://ftp.gwdg.de/pub/linux/suse/apt/SuSE/"$SuSEVersion"-x86_64/examples/sources.list.FTP 
#-----------

retc=$?
if [ $retc -ne 0 ]     # Abbruch bei Fehler von wget
then
   echo "Fehler $retc beim Ausführen von wget! Keine Connection?"
   exit 1
fi

cp -f /etc/apt/sources.list /etc/apt/sources.list.orig 

sed '$r /etc/apt/sources.list.mehr' sources.list.FTP | grep '^ *rpm ' | sed 's/[^ ]*prpm//g' > /etc/apt/sources.list

apt-get update
echo '

#################################

Suchergebnisse:
'
apt policy $*

rm -f sources.list.FTP
rm -f /etc/apt/sources.list
mv -f /etc/apt/sources.list.orig /etc/apt/sources.list
echo '

'
Ich habe ein 32-bit-System vorausgesetzt, bitte überprüft es und ändert ggf. die Kreuze (#).
In der Konsole als su in den Pfad, in der das Skript gespeichert ist wechseln und chmod +x apt-gdwg-suche.sh eingeben.

Format des Aufrufs:
(als su)

./apt-gdwg-suche.sh <Paket1> <Paket2> ...

Wichtig: Wenn das Skript nicht bis zum Ende kommt (Strohmausfall, Fehlermeldungen nach dem Download, Abschturz, etc.), schaut euch eure sources.list vor dem nächsten Gebrauch von Apt an!!! Falls sie euch nicht bekannt vorkommt: in der sources.list.orig ist eure gesichert worden!
(ist sources.list.orig nicht vorhanden, ist die sources.list original)

an dieser Stelle ein Dankeschön an gobo und an alle die an seinem Skript mitgearbeitet haben. Ich habe mir von euch den Download-Vorgang abgeschaut. :D

Falls ihr Anregungen, Kritik, etc. habt, nur raus damit. 8)
Zuletzt geändert von pawe am 4. Mär 2005, 14:10, insgesamt 1-mal geändert.
P III, 700 MHz, 384 MB Ram, SuSE 9.3 - fluxbox/idesk // NB: AMD 2800+, 704 MB Ram, SuSE 9.3 - KDE 3.4.

Fundiertes Wissen über Linux: www.de.linwiki.org
HowTo´s, Tutorials, Softwarelisten, Begriffserklärungen und vieles mehr!

Werbung:
Benutzeravatar
gobo
Newbie
Newbie
Beiträge: 28
Registriert: 25. Dez 2004, 10:25
Wohnort: Siegendorf - Austria

Beitrag von gobo » 4. Mär 2005, 13:19

Fertiges script zum downloaden unter:

http://www.schwendi.org/apt-gdwg-suche.tar.gz

greez
gobo
No need to use Windows -- it's easier to go through the door

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste