• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[HOWTO] sources.list automatisch erstellen/upgraden

Status
Für weitere Antworten geschlossen.

gobo

Newbie
Hi,
Da anscheinend immer wieder Probleme mit der Erstellung der sources.list auftauchen hier eine Lösung.
Ich habe ein shellscript von oc2pus das ich hier gefunden habe etwas modifiziert und erweitert .

=== EDIT MODERATOR ===>
Da es leider immer wieder zu Problemen kommt, beim Kopieren mit cut & copy bzw abschreiben der Scripte, könnt Ihr sie nun auch downloaden

Stand 25.1.2005
http://www.schwendi.org/apt-sorti-1.1.tar.gz
http://free.pages.at/gimpel/apt-sorti-1.1.tar.gz

Big thx to gimpel und gobo für Hosting des tar.gz ;)
<=== EDIT MODERATOR ===


=== EDIT MODERATOR ===>
Stand 25.04.2005
und hier ist die getunte Version von "Asem"
"mada" war so freundlich und hat sie zusammengebastestelt und gehostet. big thx ;)

http://www.informatik.uni-freiburg.de/~mader/computer/apt-sorti.tar.gz
<=== EDIT MODERATOR ===


=== EDIT MODERATOR ===>
Stand 17.05.2005
Pawe hat eine wichtige Verbesserung in das Script eingebaut. big thx ;)

siehe hier:
http://www.linux-club.de/viewtopic.php?p=175390
oder am Ende dieses Threads.
<=== EDIT MODERATOR ===


=== EDIDT GOBO ===>

Alles was nach dieser Bemerkung kommt, ist nur mehr "nostalgisch" !
Damit hat Alles angefangen und der Code ist nicht mehr aktuell. Wer will,
kann natürlich damit rumspielen , aber ich weise darauf hin, dass unter
den oben genannten Links eine funktionierende Version der Scripte
zu finden ist.
Zwar habe ich das Ganze nur unter Suse 9.2 getestet, es sollte aber automatisch
auch für die Versionen 9.0 und 9.1 funktionieren!
64-bit User müssen im script "abgleich.sh" bitte den entsprechenden wget-
Aufruf aktivieren.

Danke an Alle, die mit ihren Beiträgen geholfen haben so weit zu kommen


<=== EDIT GOBO END ===

Code:
#!/bin/bash
#
####################################################
#  download von source Listen für apt für Suse     #
#  und Aufruf von sorti.sh zur Erstellung der      #
#  source.list für apt-get                         #
# Je nach Suse-Version bitte den richtigen wget-   #
# Aufruf aktivieren!				   #
#	feel free to copy and/or modify		   #
#		01.2005				   #
####################################################
#
#

if [ -f sources.list.FTP ]; then # ist die Datei sources.list.FTP vorhanden ?
        rm -f sources.list.FTP   # dann lösche sie
fi

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

# wget ftp://ftp.gwdg.de/pub/linux/suse/apt/SuSE/9.0-i386/examples/sources.list.FTP
# wget ftp://ftp.gwdg.de/pub/linux/suse/apt/SuSE/9.0-x86_64/examples/sources.list.FTP
# wget ftp://ftp.gwdg.de/pub/linux/suse/apt/SuSE/9.1-i386/examples/sources.list.FTP
# wget ftp://ftp.gwdg.de/pub/linux/suse/apt/SuSE/9.1-x86_64/examples/sources.list.FTP
wget ftp://ftp.gwdg.de/pub/linux/suse/apt/SuSE/9.2-i386/examples/sources.list.FTP
# wget ftp://ftp.gwdg.de/pub/linux/suse/apt/SuSE/9.2-x86_64/examples/sources.list.FTP

# .... verlange das root Passwort und rufe sorti.sh auf mit
# sources.list.FTP als Eingabe
su -c "./sorti.sh < sources.list.FTP" 
#-eof-

1.script kann benannt werden wie es gefällt.
Es ruft per wget die aktuelle surces.list.FTP von ftp.gwdg.de ab und speichert diese lokal. danach wird das rootpasswort abgefragt und danach das 2. script aufgerufen

Code:
#!/bin/bash
#
#################################################################
#                                                               #
# sorti.sh formatiert die heruntergeladene sources.list.FTP so  #
# um, dass für jedes Repository eine eigene Zeile vorhanden ist,#
# in der konfigurationsdatei sorti.conf kann gesteuert werden   #
# welche Repositories aus der sources.list entfernt werden.	#
#	feel free to copy and/or modify				#
#		01.2005						#
#################################################################

FERTIG=/etc/apt/sources.list

if [ -f sources.list.alt ]; then
   rm -f sources.list.alt
fi

if [ -f sources.list ]; then
        mv -f sources.list sources.list.alt
fi
touch sources.list

while read line; do
   if [ "`echo $line | grep -v "^#"`" != "" ]; then
      arrayZ=( $line )

      typ=${arrayZ[@]:0:1}
      uri=${arrayZ[@]:1:1}
      distri=${arrayZ[@]:2:1}
      repository=${arrayZ[@]:3:1}

      i=3
      while [ "$repository" != "" ]; do
         echo ""$typ" "$uri" "$distri" "$repository"" >> sources.list
         i=$(($i+1))
         repository=${arrayZ[@]:$i:1}
      done
   else
      echo "$line" >> sources.list
   fi
done
cp /dev/null $FERTIG
echo "# Erstellt am `date`" >> $FERTIG  # in die fertige /etc/apt/sources.list das Erstellungsdatum eintragen
cat sources.list | \
while read ZEILE ; do
  STOP="no"
	. sorti.conf
  [ "$STOP" == "no" ] && echo "$ZEILE" | sed s/"^rpm-src"/"# rpm-src"/g >> $FERTIG # alle rpm-srcin der Liste deaktivieren
done

#-eof-

2.script bitte als sorti.sh abspeichern, ansonsten im 1. script den Aufruf ändern.
Es wird eine saubere sources.list erstellt, die Einträge für kernel-of-the-day , ximian, alle -prpm und -drpm werden entfernt und vor alle Zeilen mit rpm-src wird eine # gesetzt. Dann wird im Verzeichnis /etc/apt die sources.list neu geschrieben und das script beendet.

Es werden im Verzeichnis von dem die scripte aufgerufen werden verschiedene Dateien angelegt.

1.) sources.list.FTP --> die heruntergeladene Datei. Wird bei jedem Lauf neu geschrieben.
2.) sources.list --> eine formatierte sources.list die ALLE Einträge beinhaltet
3.) nach dem 2. Lauf auch eine sources.list.alt --> ein Backup der letzten sources.list um mit der aktuellen vergleichen zu können.

Das script ist ausreichend mit Kommentaren versehen, man kann es also recht einfach an eigene Bedürfnisse anpassen.

WICHTIG: die scripte müssen mit chmod +x "scriptname" ausführbar gemacht werden!

Configdatei mit der Möglichkeit auszuwählen zwischen 9.0, 9.0-64, 9.1, 9.1-64 und 9.2, 9.2-64

Code:
#
#########################################################
#	Konfigurationsdatei für sorti.sh		#
#							#
# zum entfernen eines Repositories aus der endgültigen  #
# sources-list einfach die # vor dem entsprechenden	#
# Eintrag ENTFERNEN ! 					#
# Voreinstellung ist für eine "sichere" Suse 9.2 	#
# sources.list.						#
# Bitte vor Gebrauch GENAU durcharbeiten! Ich lehne jede#
# Verantwortung für zerschossene Systeme ab.		#
#	feel free to copy and/or modify			#
#		01.2005					#
#########################################################

#--------------
# base - alle Daten die auch auf den CD's/DVD's vorhanden sind
# vorhanden in 9.0, 9.0-64, 9.1, 9.1-64, 9.2, 9.2-64
#--------------

#	[ "`echo $ZEILE | grep -i "base"`" != "" ] && STOP="yes" 

#--------------
# update und security - updates und sicherheitspatches wie vom YOU Update
# vorhanden in 9.0, 9.0-64, 9.1, 9.1-64, 9.2, 9.2-64
#--------------

#	[ "`echo $ZEILE | grep -i "update"`" != "" ] && STOP="yes" 
#	[ "`echo $ZEILE | grep -i "security"`" != "" ] && STOP="yes" 

#--------------
# kde - nomen est omen ;-)
# vorhanden in 9.0, 9.0-64, 9.1, 9.1-64, 9.2, 9.2-64
#--------------

#	[ "`echo $ZEILE | grep -i "kde"`" != "" ] && STOP="yes" 

#--------------
# kde3-stable - auch klar
# vorhanden in 9.1, 9.2
#--------------

#	[ "`echo $ZEILE | grep -i "kde3-stable"`" != "" ] && STOP="yes" 

#--------------
# kde-unstable - ACHTUNG - nicht für Anfänger geeignet --> GEFAHR !!
# vorhanden in 9.0, 9.0-64, 9.1, 9.2
#--------------

	[ "`echo $ZEILE | grep -i "kde-unstable"`" != "" ] && STOP="yes" 

#--------------
# gnome und gnome2 - sollte auch klar sein
# vorhanden in 9.0, 9.1
#--------------

#	[ "`echo $ZEILE | grep -i "gnome"`" != "" ] && STOP="yes" 
#	[ "`echo $ZEILE | grep -i "gnome2"`" != "" ] && STOP="yes" 

#--------------
# Mozilla mit seinen Modulen, Firefox, Thunderbird
# vorhanden in 9.0, 9.0-64, 9.1, 9.1-64, 9.2, 9.2-64
#--------------

#	[ "`echo $ZEILE | grep -i "mozilla"`" != "" ] && STOP="yes" 

#--------------
# samba3 ist ja wohl selbsterklärend ;-)
# vorhanden in 9.0, 9.0-64, 9.1, 9.1-64, 9.2, 9.2-64
#--------------

#	[ "`echo $ZEILE | grep -i "samba3"`" != "" ] && STOP="yes" 

#--------------
# kernel-of-the-day - ACHTUNG - nicht für Anfänger --> GEFAHR !!
# vorhanden in 9.0, 9.0-64, 9.1, 9.1-64, 9.2, 9.2-64
#--------------


	[ "`echo $ZEILE | grep -i "kernel-of-the-day"`" != "" ] && STOP="yes" 

#--------------
# funktronics - perl-Module, python-Module, BitTorrent 
# vorhanden in 9.0, 9.1, 9.2
#--------------

#	[ "`echo $ZEILE | grep -i "funktronics"`" != "" ] && STOP="yes" 

#--------------
# misc - Verschiedenes - nicht unbedingt notwendig 
# vorhanden in 9.0, 9.0-64, 9.1, 9.1-64, 9.2
#--------------

	[ "`echo $ZEILE | grep -i "misc"`" != "" ] && STOP="yes" 

#--------------
# packman, packman-i686 - xine, grafik,security, network, multimedia --> EMPFEHLENSWERT !!
# packman vorhanden in 9.0, 9.1 9.2, 9.2-64
# packman-i686 vorhanden in 9.0, 9.1, 9.2
#--------------

#	[ "`echo $ZEILE | grep -i "packman"`" != "" ] && STOP="yes" 
#	[ "`echo $ZEILE | grep -i "packman-i686"`" != "" ] && STOP="yes" 

#--------------
# rpmkeys - die Signaturen der RPMs von den Paketerstellen zur Verfügung gestellt
# vorhanden in 9.0, 9.0-64, 9.1, 9.1-64, 9.2, 9.2-64
#--------------

#	[ "`echo $ZEILE | grep -i "rpmkeys"`" != "" ] && STOP="yes" 

#--------------
# security-prpm - Wer nicht weiss was es ist sollte es so lassen wie es ist !!
# vorhanden in 9.0, 9.0-64, 9.1, 9.1-64, 9.2, 9.2-64
#--------------


	[ "`echo $ZEILE | grep -i "security-prpm"`" != "" ] && STOP="yes" 

#--------------
# suse-people - Verschiedenes - ACHTUNG - nicht unbedingt sicher !!
# vorhanden in 9.0, 9.0-64, 9.1, 9.1-64, 9.2, 9.2-64
#--------------

	[ "`echo $ZEILE | grep -i "suse-people"`" != "" ] && STOP="yes" 

#--------------
# suse-projects - apache, apache2, samba, php in der neuesten Version 
# vorhanden in 9.0, 9.0-64, 9.1, 9.1-64, 9.2, 9.2-64
#--------------

#	[ "`echo $ZEILE | grep -i "suse-projects"`" != "" ] && STOP="yes" 

#--------------
# suser-gbv - Azureus, amule, xmule, postfix, gambas
# vorhanden in 9.0, 9.1, 9.2
#--------------

#	[ "`echo $ZEILE | grep -i "suser-gbv"`" != "" ] && STOP="yes" 

#--------------
# suser-guru - inkscape,c++ bindings, gnome Module, phyton Module
# vorhanden in 9.0, 9.1, 9.2
#--------------

#	[ "`echo $ZEILE | grep -i "suser-guru"`" != "" ] && STOP="yes" 

#--------------
# suser-oc2pus - BitTornado, GTorrentViewer, Applejuice, kwavencoder, homebanking, Musiker-Software --> SEHR NÜTZLICH !!
# vorhanden in 9.1, 9.2
#--------------

#	[ "`echo $ZEILE | grep -i "suser-oc2pus"`" != "" ] && STOP="yes" 

#--------------
# suser-ollakka - alles für xfce4 
# vorhanden in 9.0, 9.1, 9.2
#--------------

#	[ "`echo $ZEILE | grep -i "suser-ollakka"`" != "" ] && STOP="yes" 

#--------------
# suser-rbos - alles was man für apt, apt4rpm, synaptic, kynaptic braucht
# vorhanden in 9.0, 9.1, 9.1-64, 9.2, 9.2-64
#--------------

#	[ "`echo $ZEILE | grep -i "suser-rbos"`" != "" ] && STOP="yes" 

#--------------
# suser-sbarnin - dvdauthor, kavi2svcd, libdvdcss etc.
# vorhanden in 9.0, 9.1, 9.2
#--------------

#	[ "`echo $ZEILE | grep -i "suser-sbarnin"`" != "" ] && STOP="yes" 

#--------------
# suser-scorot - apollon, giFT, Video-Bearbeitung --> NÜTZLICH ;-)
# vorhanden in 9.0, 9.1, 9.2
#--------------

#	[ "`echo $ZEILE | grep -i "suser-scorot"`" != "" ] && STOP="yes" 

#--------------
# suser-tcousin - glabels, kile, kmymoney, pan, kompose
# vorhanden in 9.0, 9.1, 9.2
#--------------

#	[ "`echo $ZEILE | grep -i "suser-tcousin"`" != "" ] && STOP="yes" 

#--------------
# update-drpm - Wer nicht weiss wofür, FINGER WEG !!
# vorhanden in 9.2, 9.2-64
#--------------

	[ "`echo $ZEILE | grep -i "update-drpm"`" != "" ] && STOP="yes" 

#--------------
# update-prpm - Wer nicht weiss wofür, FINGER WEG !!
# vorhanden in 9.0, 9.0-64, 9.1, 9.1-64, 9.2, 9.2-64
#--------------

	[ "`echo $ZEILE | grep -i "update-prpm"`" != "" ] && STOP="yes" 

#--------------
# wine - Windows Emulator
# vorhanden in 9.0, 9.1, 9.2
#--------------

#	[ "`echo $ZEILE | grep -i "wine"`" != "" ] && STOP="yes" 

#--------------
# ximian - 
# vorhanden in 9.0, 9.1, 9.2
#--------------

	[ "`echo $ZEILE | grep -i "ximian"`" != "" ] && STOP="yes" 

#--------------
# xorg - die aktuelle X-Server Version
# vorhanden in 9.0, 9.1, 9.2, 9.2-64
#--------------

#	[ "`echo $ZEILE | grep -i "xorg"`" != "" ] && STOP="yes" 

#--------------
# xfree86 - die aktuelle X-Server Version
# vorhanden in 9.0, 9.1
#--------------

#	[ "`echo $ZEILE | grep -i "xfree86"`" != "" ] && STOP="yes" 

#--------------
# suser-imorris - spamassassin, mozilla, libxine, libdvdcss, cups, k3b, gimp 
# vorhanden in 9.1-64, 9.2-64
#--------------

#	[ "`echo $ZEILE | grep -i "suser-imorris"`" != "" ] && STOP="yes" 

#--------------
# labplot - 
# vorhanden in 9.0, 9.1
#--------------

#	[ "`echo $ZEILE | grep -i "labplot"`" != "" ] && STOP="yes" 

#--------------
# suser-jogley - 
# vorhanden in 9.0, 9.1
#--------------

#	[ "`echo $ZEILE | grep -i "suser-jogley"`" != "" ] && STOP="yes" 

#--------------
# suser-kpietrz - kplayer, jam
# vorhanden in 9.1
#--------------

#	[ "`echo $ZEILE | grep -i "suser-kpietrz"`" != "" ] && STOP="yes" 

#--------------
# suser-tux - fwbuilder, kallery, kio, kplaylistcreator, nvu
# vorhanden in 9.1
#--------------

#	[ "`echo $ZEILE | grep -i "suser-tux"`" != "" ] && STOP="yes" 

#--------------
# usr-local-bin - ACHTUNG - HOHES RISIKO das System zu zerstören
# vorhanden in 9.0, 9.1
#--------------

	[ "`echo $ZEILE | grep -i "usr-local-bin"`" != "" ] && STOP="yes" 

#--------------
# suser-rschulz - apt, gdome2, lua
# vorhanden in 9.0
#--------------

#	[ "`echo $ZEILE | grep -i "suser-rschulz"`" != "" ] && STOP="yes" 

#-eof-

Ach ja, hätt ich fast vergessen!
Einfach im Heimatverzeichnis einen Ordner erstellen und die beiden scripts dort reinkopieren und als normaler user ausführen.

feel free to copy and modify!

viel Spaß damit

Auf Anregung von oc2pus ein virtueller Beipacktext:
Die von diesem script erstellte sources.list ist an sich vollkommen in Ordnung, beinnhaltet allerdings Repositories die unter Umständen das System beeinträchtigen können. Es wird jedem der diese scripts verwendet AUSDRÜCKLICH geraten, die erzeugte sources.list vor Verwendung zu Überprüfen .


gobo
 

oc2pus

Ultimate Guru
Fragen, Anregungen, Probleme, Lob, Kritik, etc bitte in diesem Thread einstellen:

[FRAGEN ZU] sources.list automatisch erstellen/upgraden
http://www.linux-club.de/viewtopic.php?t=26044
 

oc2pus

Ultimate Guru
===> EDIT MODERATOR
Asem war so nett und hat das script etwas überarbeitet. Ich habe es aus dem anderen Thread mal hierher gezogen :)

An einem RPM wird bereits gearbeitet ;)
Und ein download des scriptes ist in Vorbereitung.

big thx to Asem!
<=== EDIT MODERATOR


Asem schrieb:
Hallo Clubber,

ich habe die Skripte von gobo, notoxp und oc2pus nochmal etwas überarbeitet und dabei hoffentlich nicht verschlimmbessert :wink: .

Das Skript sorti.sh ist jetzt mit in abgleich.sh integriert. Da ja hier auch einige Leute Probleme damit hatten, dass sorti.sh nicht gefunden werden konnte oder nicht ausführbar war, bringt das vielleicht etwas Linderung. abgleich.sh muss aber dennoch ausführbar gemacht werden:
chmod a+x abgleich.sh

oder direkt mit der Shell ausgeführt werden:

Außerdem verzichtet das jetzige Skript auf das temporäre File. Deaktivierte Repositories werden in der sources.list nur auskommentiert und nicht völlig entfernt. Und es sind noch ein paar Optimierungen am Code dabei, v. a. entfallen die vielen greps im Konfigfile, was sich spürbar auf die Geschwindigkeit auswirkt.

Viel Spaß damit.

-- asem

abgleich.sh:
Code:
#!/bin/bash

####################################################
#  download von source Listen fuer apt fuer Suse   #
#  und Aufruf von sorti.sh zur Erstellung der      #
#  source.list fuer apt-get                        #
#  feel free to copy and/or modify                 #
#      01.2005                                     #
####################################################


FERTIG="/etc/apt/sources.list"
export FERTIG


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

rm -f sources.list.FTP

# jetzt lade die neue sources.list.FTP runter

#-----------
# fuer 32bit Suse Versionen
#-----------

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

#-----------
# fuer 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 Ausfuehren von wget! Keine Connection?"
   exit 1
fi


# Diese Funktion wird als root ausgeführt
sorti () {

  . apt-sorti.conf

  if [ -s $FERTIG ]; then
    mv -f $FERTIG $FERTIG.alt || ( echo "Fehler $? beim Archivieren von $FERTIG ! Fehlende Rechte?" ; exit 2 )
  fi

  echo "# Erstellt am `date`" > $FERTIG  # in die fertige /etc/apt/sources.list das Erstellungsdatum eintragen

  while read typ uri distri repos; do
    if echo "$typ" |grep -q '^#'; then
      # Kommentare in File belassen
      echo "$typ $uri $distri $repos" >>$FERTIG
    else
      # einzelne Repositories aufsplitten
      for repository in $repos; do
        # Repository deaktiviert?
        if exclude; then
          echo "# $typ $uri $distri $repository" >>$FERTIG
        else
          echo "$typ $uri $distri $repository" >>$FERTIG
        fi
      done
    fi
  done
}

# durch `su` wird eine neue Shell gestartet, deshalb Funktion exportieren
export -f sorti

# .... verlange das root Passwort und rufe sorti auf mit sources.list.FTP als Eingabe
exec su -c "sorti <sources.list.FTP"

#-eof-

apt-sorti.conf:
Code:
#########################################################
#       Konfigurationsdatei fuer sorti.sh               #
#                                                       #
# zum entfernen eines Repositories aus der endgueltigen #
# sources-list einfach die # vor dem entsprechenden     #
# Eintrag ENTFERNEN !                                   #
# Voreinstellung ist fuer eine "sichere" Suse 9.2       #
# sources.list.                                         #
# Bitte vor Gebrauch GENAU durcharbeiten! Ich lehne     #
# jede Verantwortung fuer zerschossene Systeme ab.      #
#       feel free to copy and/or modify                 #
#               01.2005                                 #
#########################################################


exclude () {

#--------------
# rpm-src - alle Quellpakete
#--------------

  [ "$typ" == "rpm-src" ] && return 0

#--------------
# base - alle Daten die auch auf den CD's/DVD's vorhanden sind
# vorhanden in 9.0, 9.0-64, 9.1, 9.1-64, 9.2, 9.2-64
#--------------

#  [ "$repository" == "base" ] && return 0

#--------------
# update und security - updates und sicherheitspatches wie vom YOU Update
# vorhanden in 9.0, 9.0-64, 9.1, 9.1-64, 9.2, 9.2-64
#--------------

#  [ "$repository" == "update" ] && return 0
#  [ "$repository" == "security" ] && return 0

#--------------
# kde - nomen est omen ;-)
# vorhanden in 9.0, 9.0-64, 9.1, 9.1-64, 9.2, 9.2-64
#--------------

#  [ "$repository" == "kde" ] && return 0

#--------------
# kde3-stable - auch klar
# vorhanden in 9.1, 9.2
#--------------

#  [ "$repository" == "kde3-stable" ] && return 0

#--------------
# kde-unstable - ACHTUNG - nicht fuer Anfaenger geeignet --> GEFAHR !!
# vorhanden in 9.0, 9.0-64, 9.1, 9.2
#--------------

  [ "$repository" == "kde-unstable" ] && return 0

#--------------
# gnome und gnome2 - sollte auch klar sein
# vorhanden in 9.0, 9.1
#--------------

#  [ "$repository" == "gnome" ] && return 0
#  [ "$repository" == "gnome2" ] && return 0

#--------------
# Mozilla mit seinen Modulen, Firefox, Thunderbird
# vorhanden in 9.0, 9.0-64, 9.1, 9.1-64, 9.2, 9.2-64
#--------------

#  [ "$repository" == "mozilla" ] && return 0

#--------------
# samba3 ist ja wohl selbsterklaerend ;-)
# vorhanden in 9.0, 9.0-64, 9.1, 9.1-64, 9.2, 9.2-64
#--------------

#  [ "$repository" == "samba3" ] && return 0

#--------------
# kernel-of-the-day - ACHTUNG - nicht fuer Anfaenger --> GEFAHR !!
# vorhanden in 9.0, 9.0-64, 9.1, 9.1-64, 9.2, 9.2-64
#--------------

  [ "$repository" == "kernel-of-the-day" ] && return 0

#--------------
# funktronics - perl-Module, python-Module, BitTorrent
# vorhanden in 9.0, 9.1, 9.2
#--------------

#  [ "$repository" == "funktronics" ] && return 0

#--------------
# misc - Verschiedenes - nicht unbedingt notwendig
# vorhanden in 9.0, 9.0-64, 9.1, 9.1-64, 9.2
#--------------

  [ "$repository" == "misc" ] && return 0

#--------------
# packman, packman-i686 - xine, grafik,security, network, multimedia --> EMPFEHLENSWERT !!
# packman vorhanden in 9.0, 9.1 9.2, 9.2-64
# packman-i686 vorhanden in 9.0, 9.1, 9.2
#--------------

#  [ "$repository" == "packman" ] && return 0
#  [ "$repository" == "packman-i686" ] && return 0

#--------------
# rpmkeys - die Signaturen der RPMs von den Paketerstellen zur Verfuegung gestellt
# vorhanden in 9.0, 9.0-64, 9.1, 9.1-64, 9.2, 9.2-64
#--------------

#  [ "$repository" == "rpmkeys" ] && return 0

#--------------
# security-prpm - Wer nicht weiss was es ist sollte es so lassen wie es ist !!
# vorhanden in 9.0, 9.0-64, 9.1, 9.1-64, 9.2, 9.2-64
#--------------


  [ "$repository" == "security-prpm" ] && return 0

#--------------
# suse-people - Verschiedenes - ACHTUNG - nicht unbedingt sicher !!
# vorhanden in 9.0, 9.0-64, 9.1, 9.1-64, 9.2, 9.2-64
#--------------

  [ "$repository" == "suse-people" ] && return 0

#--------------
# suse-projects - apache, apache2, samba, php in der neuesten Version
# vorhanden in 9.0, 9.0-64, 9.1, 9.1-64, 9.2, 9.2-64
#--------------

#  [ "$repository" == "suse-projects" ] && return 0

#--------------
# suser-gbv - Azureus, amule, xmule, postfix, gambas
# vorhanden in 9.0, 9.1, 9.2
#--------------

#  [ "$repository" == "suser-gbv" ] && return 0

#--------------
# suser-guru - inkscape,c++ bindings, gnome Module, phyton Module
# vorhanden in 9.0, 9.1, 9.2
#--------------

#  [ "$repository" == "suser-guru" ] && return 0

#--------------
# suser-oc2pus - BitTornado, GTorrentViewer, Applejuice, kwavencoder,homebanking, Musiker-Software --> SEHR NUETZLICH !!
# vorhanden in 9.1, 9.2
#--------------

#  [ "$repository" == "suser-oc2pus" ] && return 0

#--------------
# suser-ollakka - alles fuer xfce4
# vorhanden in 9.0, 9.1, 9.2
#--------------

#  [ "$repository" == "suser-ollakka" ] && return 0

#--------------
# suser-rbos - alles was man fuer apt, apt4rpm, synaptic, kynaptic braucht
# vorhanden in 9.0, 9.1, 9.1-64, 9.2, 9.2-64
#--------------

#  [ "$repository" == "suser-rbos" ] && return 0

#--------------
# suser-sbarnin - dvdauthor, kavi2svcd, libdvdcss etc.
# vorhanden in 9.0, 9.1, 9.2
#--------------

#  [ "$repository" == "suser-sbarnin" ] && return 0

#--------------
# suser-scorot - apollon, giFT, Video-Bearbeitung --> NUETZLICH ;-)
# vorhanden in 9.0, 9.1, 9.2
#--------------

#  [ "$repository" == "suser-scorot" ] && return 0

#--------------
# suser-tcousin - glabels, kile, kmymoney, pan, kompose
# vorhanden in 9.0, 9.1, 9.2
#--------------

#  [ "$repository" == "suser-tcousin" ] && return 0

#--------------
# update-drpm - Wer nicht weiss wofuer, FINGER WEG !!
# vorhanden in 9.2, 9.2-64
#--------------

  [ "$repository" == "update-drpm" ] && return 0

#--------------
# update-prpm - Wer nicht weiss wofuer, FINGER WEG !!
# vorhanden in 9.0, 9.0-64, 9.1, 9.1-64, 9.2, 9.2-64
#--------------

  [ "$repository" == "update-prpm" ] && return 0

#--------------
# wine - Windows Emulator
# vorhanden in 9.0, 9.1, 9.2
#--------------

#  [ "$repository" == "wine" ] && return 0

#--------------
# ximian -
# vorhanden in 9.0, 9.1, 9.2
#--------------

  [ "$repository" == "ximian" ] && return 0

#--------------
# xorg - die aktuelle X-Server Version
# vorhanden in 9.0, 9.1, 9.2, 9.2-64
#--------------

#  [ "$repository" == "xorg" ] && return 0

#--------------
# xfree86 - die aktuelle X-Server Version
# vorhanden in 9.0, 9.1
#--------------

#  [ "$repository" == "xfree86" ] && return 0

#--------------
# suser-imorris - spamassassin, mozilla, libxine, libdvdcss, cups, k3b, gimp
# vorhanden in 9.1-64, 9.2-64
#--------------

#  [ "$repository" == "suser-imorris" ] && return 0

#--------------
# labplot -
# vorhanden in 9.0, 9.1
#--------------

#  [ "$repository" == "labplot" ] && return 0

#--------------
# suser-jogley -
# vorhanden in 9.0, 9.1
#--------------

#  [ "$repository" == "suser-jogley" ] && return 0

#--------------
# suser-kpietrz - kplayer, jam
# vorhanden in 9.1
#--------------

#  [ "$repository" == "suser-kpietrz" ] && return 0

#--------------
# suser-tux - fwbuilder, kallery, kio, kplaylistcreator, nvu
# vorhanden in 9.1
#--------------

#  [ "$repository" == "suser-tux" ] && return 0

#--------------
# usr-local-bin - ACHTUNG - HOHES RISIKO das System zu zerstoeren
# vorhanden in 9.0, 9.1
#--------------

  [ "$repository" == "usr-local-bin" ] && return 0

#--------------
# suser-rschulz - apt, gdome2, lua
# vorhanden in 9.0
#--------------

#  [ "$repository" == "suser-rschulz" ] && return 0

return 1
}

#-eof-
 

oc2pus

Ultimate Guru
17.05.2005
Pawe hat eine wichtige Vervbesserung in das Script eingebaut:

Pawe schrieb:
Hallo APT-user,

mir ist leider ein Sicherheitsmangel an dem abgleich.sh aufgefallen:
in der apt-sorti.conf werden zwar unsichere Repositorys ausgeschlossen und auskommentiert in die sources.list übertragen. Wenn nun aber neue Repositorys hinzukommen werden sie in der sources.list nicht auskommentiert! Wenn das neue Repository unsicher ist, dann hat man beim nächsten update sich was eingehandelt. :cry:

die verbesserung:
abgleich.sh prüft ob das Repository in der apt-sorti.conf schon erwähnt ist (ob auskommentiert oder nicht!). Wenn nein handelt es sich um ein neues Repository. Dann wird ein entsprechender Eintrag in der apt-sorti.conf hinzugefügt, der das Rep. ausschließt! In die sources.list wird der Eintrag ebenfalls auskommentiert übernommen.
Der User wird durch eine Meldung in der Konsole informiert:
Code:
neues Repository: x-ati
Dann kann er sich ja über das Rep. informieren und es ggf. in die sources.list aufnehmen.

hier das überarbeitete Skript abgleich.sh
Code:
#!/bin/bash


####################################################
#  download von source Listen fuer apt fuer Suse   #
#  zur Erstellung der source.list fuer apt-get     #
#  feel free to copy and/or modify                 #
#      05.2005                                     #
####################################################


FERTIG="/etc/apt/sources.list"
export FERTIG


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

rm -f sources.list.FTP

# jetzt lade die neue sources.list.FTP runter

#-----------
# fuer 32bit Suse Versionen
#-----------

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

#-----------
# fuer 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 Ausfuehren von wget! Keine Connection?"
   exit 1
fi


# Diese Funktion wird als root ausgeführt
sorti () {

  . apt-sorti.conf

  if [ -s $FERTIG ]; then
    mv -f $FERTIG $FERTIG.alt || ( echo "Fehler $? beim Archivieren von $FERTIG ! Fehlende Rechte?" ; exit 2 )
  fi

  echo "# Erstellt am `date`" > $FERTIG  # in die fertige /etc/apt/sources.list das Erstellungsdatum eintragen

  while read typ uri distri repos; do
    if echo "$typ" |grep -q '^#'; then
      # Kommentare in File belassen
      echo "$typ $uri $distri $repos" >>$FERTIG
    else
      # einzelne Repositories aufsplitten
      for repository in $repos; do
        # Repository deaktiviert?
        if exclude; then
          echo "# $typ $uri $distri $repository" >>$FERTIG
        else
       	  grep  '== "'$repository'"' apt-sorti.conf >& /dev/null
	  if [ $? = 1 ]; then
	    echo "# $typ $uri $distri $repository" >>$FERTIG
	    sed "/return 1/i\
# Repository hinzugefügt am `date +%d.%m.%y` \\
  [ "\$repository" == "$repository" ] && return 0 \\
" apt-sorti.conf > apt-sorti.tmp
 	    mv -f apt-sorti.tmp apt-sorti.conf
	    echo "neues Repository: $repository
"
	  else
	    echo "$typ $uri $distri $repository" >>$FERTIG
	  fi
        fi
      done
    fi
  done
  rm -f apt-sorti.tmp
  rm -f sources.list.FTP
}

# durch `su` wird eine neue Shell gestartet, deshalb Funktion exportieren
export -f sorti

# .... verlange das root Passwort und rufe sorti auf mit sources.list.FTP als Eingabe
exec su -c "sorti <sources.list.FTP"

#-eof-

Die apt-sorti.conf bleibt im Prinzip die gleiche, es hat sich lediglich ein Schreibfehler eingeschlichen: An einer Stelle heißt es suser.scorot es soll aber suser-scorot heißen (sonst findet das Skript das Repository nicht!)
 
Status
Für weitere Antworten geschlossen.
Oben