Scripting Paketsystem
Aus DebianforumWiki
| |
Lizenz: Dieser Artikel wurde als problematisch in Bezug auf der Lizenz markiert, dafür kann es verschiedene Gründe geben:
Bitte hilf mit alle diese Fragen zunächst zu klären, danach kann dieser Hinweis entfernt werden. |
| |
Review: Dieser Artikel ist für das Review freigegeben.
|
Scripting / Scripting Paketsystem
Inhaltsverzeichnis |
Scripte für den Umgang mit Debians Paketsystem.
Alle Pakete einer Quelle loeschen (Perl)
Dieses Script hat eine eigene Seite: Alle Pakete einer Quelle löschen
Sources.list im Netzwerk verteilen (Perl)
(by godsmacker) (19.12.04)
| |
Warnung: Vorsicht: Sehr quick und sehr dirty |
Das Skript erzeugt eine named pipe in /etc/apt/sources.list und holt diese Liste immer von einer URL, sobald darauf zugegriffen wird. Es verdaut an URLs alles, was LWP verdaut. Also HTTP, FTP, etc..
use strict; use warnings; use LWP::Simple; chdir '/etc/apt/' or die; my $FIFO = 'sources.list'; for (;;) { unless (-p $FIFO) { system('mknod', $FIFO, 'p') && die "can't mknod $FIFO: $!"; } open (FIFO, ">$FIFO") or die "can't write to $FIFO: $!"; print FIFO get('http://some.host.name/sources.list'); close FIFO; sleep 1; }
Nach Paketen auf incoming.debian.org suchen (Shell)
Zuletzt überbearbeitet am 13.05.2005
- Syntax: script (suchparameter)
- Benötigt: wget und html2text
- Bugs: Langsam, weil dirty!
if [ ! -e /usr/bin/wget ] then echo "FEHLER: Datei '/usr/bin/wget' nicht gefunden." exit 1 elif [ ! -e /usr/bin/html2text ] then echo "FEHLER: Datei '/usr/bin/html2text' nicht gefunden." exit 1 fi echo "Hole Index-Datei von incoming.debian.org..." wget -O /tmp/checkinc.html http://incoming.debian.org 2>/dev/null if [ "$?" != "0" ] then echo "FEHLER: Konnte Datei nicht herunterladen." exit 1 fi html2text -style compact -width 100 -ascii -nobs -o /tmp/checkinc.txt /tmp/checkinc.html rm /tmp/checkinc.html ci_lines=`cat /tmp/checkinc.txt|wc -l` let "ci_head = ci_lines - 8" let "ci_tail = ci_lines - 6" echo "Dateien (außer \"REPORT\") im Verzeichnis: $ci_head" echo cat /tmp/checkinc.txt|tail -$ci_tail|head -$ci_head|grep "$1" if [ "$?" != "0" ] then echo "Keine Ergebnisse für \"$1\"." fi rm /tmp/checkinc.txt exit 0
Alle installierten Backports auflisten (Shell)
(by chimerer)
- Die in der sources.list eingetragenen Backport-Server entweder
- als Parameter auf der Kommandozeile übergeben oder in der sources.list mit # b-server markieren
export COLUMNS=175 if [ ! -z "$1" ] then for v in $* do list="$list $v" done else for v in `cat /etc/apt/sources.list | awk '($0 ~ "b-server") { print $2 }' | awk -F "/" '{ print $1 "//" $3 }'` do list="$list $v" done fi for p in `dpkg -l | awk '($0 ~ "^ii") { print $2 }'` do server=`apt-cache policy $p | grep -A 1 "\*" | awk '($0 ~ ":/") { print $2 }'` for l in $list do if [ "$server" = "$l" ] then echo $p $server fi done done
Pakete aus einer bestimmmten Quelle anzeigen (Shell)
- [Link] zum Beitrag im Forum
Für Ideen, was als Parameter angegeben werden kann ist /var/lib/apt/lists/ hilfreich.
Aus dem Dateinamen kann dann der entsprechende Parameter erstellt werden nach dem gesucht werden soll. Für eine Suche nach allen Paketen aus den Sicherheitsupdates sieht der Scriptaufruf folgendermaßen aus:
/list_packages.sh securityPKG_LIST=`dpkg -l|grep ii|awk '{print $2}'` for PKG in $PKG_LIST do X=`apt-cache showpkg $PKG|grep status|grep $1 2>/dev/null` if ! [ a"$X" == a"" ] then echo $PKG fi done
Scripting / Scripting Paketsystem