[FRAGEN ZU] sources.list automatisch erstellen/upgraden

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

Moderator: Moderatoren

Benutzeravatar
regexer
Advanced Hacker
Advanced Hacker
Beiträge: 1005
Registriert: 3. Dez 2004, 09:29
Wohnort: $_

[FRAGEN ZU] sources.list automatisch erstellen/upgraden

Beitrag von regexer » 25. Jan 2005, 11:34

Anbei einige Verbesserungsvorschläge für das Script 1 und 2. Manches ist vereinfacht, maches aufgrund der Sicherheit eingefügt. Kritik ist jederzeit erwünscht! Hätte es anstatt des Scripts Nr. 3 nicht ein "grep -v -f sorti.conf" getan? Das wäre dann erheblich schneller, allerdings würden dann die schönen kommentare nicht mehr funktionieren - Zumindest nicht mehr so einfach...

Außerdem wäre eine allgemeine Prozessüberwachung mit trap usw. denkbar. Was soll z.B. passieren, wenn der User das Teil mit STRG-C abbricht? Oder was soll passieren, wenn das Script parallel läuft? Aber das wäre vielleicht für dieses Zweck übertrieben.

Code: Alles auswählen

#!/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				   #
####################################################
#
#

rm -f sources.list.FTP   # rm -f macht if...then...fi überflüssig

# 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

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

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

Code: Alles auswählen

#!/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						#
#################################################################

TEMPFILE=/tmp/sources.list      # Tempfile mit Pfad, um zu verhindern, dass der aktuelle Pfad zufällig "/etc/apt" ist
FERTIG=/etc/apt/sources.list

# löschen von FERTIG.alt wird durch move erledigt

if [ -s $FERTIG ]; then      # -s ist besser, da leere Datei dann nicht gemovt wird
  mv -f $FERTIG $FERTIG.alt || ( echo "Fehler $? beim Archivieren von $FERTIG ! Fehlende Rechte?" ; exit 2 )
fi

rm -f $TEMPFILE || ( echo "Fehler $? beim Löschen von $TEMPFILE ! Fehlende Rechte?" ; exit 3 )

# Die array-Lösung funktioniert zwar in der bash und ist sicher elegant, wer aber die ksh oder anderes verwenden will ist mit folgendem besser bedient

while read line; do 
  if echo $line | grep '^#' >> $TEMPFILE   # Kommentare in file
  then
    :
  else
    set -- $line
    typ=$1
    uri=$2
    distri=$3
    shift 3
    for repository in $*
    do
      echo $typ $uri $distri $repository >> $TEMPFILE
    done
  fi
done

# cp /dev/null $FERTIG   # Sorry, aber warum das? Besser ist doch:
rm -f $FERTIG || ( echo "Fehler $? beim Ausführen von rm $FERTIG! Fehlende Rechte?" ; exit 4 )

echo "# Erstellt am `date`" > $FERTIG  # in die fertige /etc/apt/sources.list das Erstellungsdatum eintragen
cat $TEMPFILE |        # Backslash ist hier überflüssig
while read ZEILE ; do
  STOP="no"
  # Verknüpfung mit && besser. Falls .sorti.conf nicht gefunden wird ist FERTIG dannach nicht leer
  # oder soll das etwa so sein?
 . sorti.conf && [ "$STOP" == "no" ] && echo "$ZEILE" | sed s/"^rpm-src"/"# rpm-src"/g >> $FERTIG # alle rpm-srcin der Liste deaktivieren
done

#-eof- 

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

Beitrag von gobo » 25. Jan 2005, 12:11

@notoxp

Hi,
ich find deine Erweiterungen absolut gut so.(DAS liebe ich so an Linux)
Das mit der sorti.conf ist eigentlich gedacht um eben die Kommentare zu haben.
Es ist zwar nicht so elegant aber dafür doch recht übersichtlich.
Entstanden ist das Ganze ja als quick hack weil ich einfach zu faul war
die sources.list per Hand aufzubauen und weil oc2pus (DANKE) so ein schönes script ins Forum gestellt hat. Dazu muss ich ehrlich sagen, dass ich nicht der "große" scripter bin (ich lerne erst) und ein anderer Weg war mir zu aufwändig.

Ich würd sagen wir könnten daraus ja eine sorti-1.1 machen, wenn du willst.

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

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

Beitrag von oc2pus » 25. Jan 2005, 12:25

dann mach ich auch noch einen Vorschlag:
# ableiten der SuSE Version aus dem SuSE-Release File
SuSEVersion=`cat /etc/SuSE-release | grep VERSION | awk '{print $3}'`
wget ftp://ftp.gwdg.de/pub/linux/suse/apt/Su ... s.list.FTP
oder
SuSEVersion=`grep "VERSION" /etc/SuSE-release | sed s/'VERSION = '/''/`
Achtung:
habe aber keinen 64er hier um das für die 64 bit Versionen zu verifizieren. Wer kann das mal schnell ausprobieren ?
tell people what you want to do, and they'll probably help you to do it.
PackMan
LinWiki : Das Wiki für Linux User

Benutzeravatar
regexer
Advanced Hacker
Advanced Hacker
Beiträge: 1005
Registriert: 3. Dez 2004, 09:29
Wohnort: $_

Beitrag von regexer » 25. Jan 2005, 14:34

Hallo nochmal!

am Script Nr. 3 (sorti.conf) sollte man auch noch etwas tun: Dem Suchbegriff des grep sollte man ein Leerzeichen vorne und ein Dollar-Zeichen hinten hinzufügen. Zum Beispiel:

Code: Alles auswählen

# alt: [ "`echo $ZEILE | grep -i "packman"`" != "" ] && STOP="yes"
# neu:
[ "`echo $ZEILE | grep -i " packman$"`" != "" ] && STOP="yes"
Der Grund hierfür ist, dass grep "packman" auch "packman-i686" findet. Oder auch (falls es ihn gäbe) "suser-packman". Mit dem Leer- bzw. Dollarzeichen funktioniert es richtig. Das sollte man natürlich nicht nur bei packman, sondern auch bei allen anderen greps machen.

Ansonsten sei noch angemerkt, dass es natürlich auch schnellere Lösungen für einen Ausschluss von bestimmten Wörtern gibt. Aber das ist natürlich Philosophie. Die jetztige Lösung sollte auch funktionieren.

Asem
Newbie
Newbie
Beiträge: 47
Registriert: 26. Feb 2005, 23:33
Wohnort: Waldenbuch
Kontaktdaten:

Re: [FRAGEN ZU] sources.list automatisch erstellen/upgraden

Beitrag von Asem » 27. Feb 2005, 16:50

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:
bash abgleich.sh
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: Alles auswählen

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

#########################################################
#       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 --> 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-
As far as I can tell the 7 layer OSI model is only used to torture students in classes.

-- The Linux Virtual Server HOWTO

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

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

@Asem COOOOL :mrgreen:

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

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

Beitrag von pawe » 17. Mai 2005, 10:32

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

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

#!/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!)
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!

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

Beitrag von oc2pus » 17. Mai 2005, 10:53

sehr gut Pawe ;)

habe dein Posting in den Ursprungsthread reinkopiert. Thx.

die "kleinen" Fehler habe ich ebenfalls korrigiert.
Zuletzt geändert von oc2pus am 20. Mai 2005, 11:41, insgesamt 1-mal geändert.
tell people what you want to do, and they'll probably help you to do it.
PackMan
LinWiki : Das Wiki für Linux User

PrinzEisenherz1
Member
Member
Beiträge: 248
Registriert: 8. Mär 2004, 16:57
Wohnort: Pösing
Kontaktdaten:

Beitrag von PrinzEisenherz1 » 18. Mai 2005, 10:04

Hi Pawe!
Wollte gestern dein Scriptvorschlag umsetzen aber hat leider nicht funktioniert! Kann es sein das im Script noch Fehler sind?
z.B. Auslesen der Version
Da liest er mir meine Version nicht aus, erst nach dem ich
grep 'VERSION' auf grep "VERSION" setze funktionierts.
dann ne Frage zu:

sorti () {

. apt-sorti.conf

Soll da vor apt-sorti.conf n punkt sein oder nicht?

Soll die apt-sorti.sh und apt-sorti.conf auch irgendwie noch abgeändert werden?
Funktioniert das alles auch mit SuSE 9.3?

MfG
Johnny
DESKTOP:
Intel Q6600 - GeForce EN8500GT
openSUSE 13.2 - x64
Kernel-3.16.7
KDE 4.14
NOTEBOOK:
Medion P6612 - Intel P7350- GeForce 9600GS
openSUSE 13.2 - x64
Kernel-3.16.7
KDE 4.14

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

Beitrag von oc2pus » 18. Mai 2005, 10:08

PrinzEisenherz1 hat geschrieben:Wollte gestern dein Scriptvorschlag umsetzen aber hat leider nicht funktioniert! Kann es sein das im Script noch Fehler sind?
z.B. Auslesen der Version
Da liest er mir meine Version nicht aus, erst nach dem ich
grep 'VERSION' auf grep "VERSION" setze funktionierts.
das liegt an der Darstellung hier im Board .. deshalb die downloadbare Version verwenden.
PrinzEisenherz1 hat geschrieben:dann ne Frage zu:

sorti () {

. apt-sorti.conf

Soll da vor apt-sorti.conf n punkt sein oder nicht?
ja, damit wird die Datei apt-sorti.conf in die aktuelle Datei "eingelesen" (analog einem #include bei c/c++ Programmen) und wird Bestandteil des Scriptes.
PrinzEisenherz1 hat geschrieben:Funktioniert das alles auch mit SuSE 9.3?
ja, da in der SuSE-Release dann ja 9.3 steht.

ABER: es gibt noch KEIN BASE-Repository für 9.3 !!
d.h. bestimmte Pakete sind noch nicht auf dem Server vorhanden NUR auf deiner DVD/CD ... du kannst diese aber in dein apt integrieren. Dazu gibt es hier auch einen Lösungsthread.
tell people what you want to do, and they'll probably help you to do it.
PackMan
LinWiki : Das Wiki für Linux User

PrinzEisenherz1
Member
Member
Beiträge: 248
Registriert: 8. Mär 2004, 16:57
Wohnort: Pösing
Kontaktdaten:

Beitrag von PrinzEisenherz1 » 18. Mai 2005, 12:05

Erstmal danke für die schnelle Antwort!
Die DVD hab ich schon eingebunden und hab auch nen Tip bekommen wie man die in ableich.sh mit einbinden kann so das bei jedem ableich die Responsitory in die sources.list mit eingebunden wird.
Du schreibst dass das von Pawe abgeänderte Script online verfügbar sei!
Bloß wo?
Wenn ich nämlich auf folgenden link gehe dann sind das noch alte Versionen

http://www.linux-club.de/viewtopic.php?t=23969

Gibts da schon ne neue Version zum downloaden?

MfG
Johnny
DESKTOP:
Intel Q6600 - GeForce EN8500GT
openSUSE 13.2 - x64
Kernel-3.16.7
KDE 4.14
NOTEBOOK:
Medion P6612 - Intel P7350- GeForce 9600GS
openSUSE 13.2 - x64
Kernel-3.16.7
KDE 4.14

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

Beitrag von oc2pus » 18. Mai 2005, 12:51

PrinzEisenherz1 hat geschrieben:Du schreibst dass das von Pawe abgeänderte Script online verfügbar sei!
Bloß wo?
oops, sorry, die gestrige Version von Pawe ist noch nicht online verfügbar.

müssen wir erst mal wieder schauen wo man sowas hosten kann ;)
d.h. du musst es erst mal mit abtippen bzw cut&copy erstellen, aber vorsicht: beim cut & copy werden evtl Zeilenumbrüche eingefügt wo keine hingehören...

Ich würde mir eine Version downloaden und die Pawe'schen und eine "lokalen" Ergänzungen dort einfügen.
tell people what you want to do, and they'll probably help you to do it.
PackMan
LinWiki : Das Wiki für Linux User

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

Beitrag von pawe » 18. Mai 2005, 14:09

PrinzEisenherz1 hat geschrieben: grep 'VERSION' auf grep "VERSION" setze funktionierts.
sollte in diesem Fall keinen Unterschied ausmachen
PrinzEisenherz1 hat geschrieben: Soll die apt-sorti.sh und apt-sorti.conf auch irgendwie noch abgeändert werden?
apt-sorti.sh braucht man nicht mehr. Asem hat abgleich.sh und apt-sorti.sh zusammengefügt.
Mir scheint du verwendest noch die ganz alte Version (mit drei Dateien), dann kannst du die apt-sorti.conf NICHT verwenden! Dann ist es auch klar, warum es bei dir nicht geht.
Die apt-sorti.conf von Asem ist die richtige!
Ich habe es heute extra nochmal getestet: Den oberen Text kopiert und in kate eingefügt. Und es ging alles. :wink:

Gruß Pawe
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!

Keepers
Advanced Hacker
Advanced Hacker
Beiträge: 1061
Registriert: 25. Jun 2004, 17:58
Wohnort: Hessen

Beitrag von Keepers » 18. Mai 2005, 14:25

Hab auch einfach das neue Script kopiert und ueber das alte geschrieben in Kate.
Alles wunderbar, und es heißt aber immernoch apt-sorti.sh *g*
Ist ja egal wenn man weiß was drin ist ;)
Gruß Keepers
Only time will tell - but who does listen?

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

Beitrag von oc2pus » 18. Mai 2005, 14:30

Keepers hat geschrieben:Hab auch einfach das neue Script kopiert und ueber das alte geschrieben in Kate.
Alles wunderbar, und es heißt aber immernoch apt-sorti.sh *g*
Ist ja egal wenn man weiß was drin ist ;)
jetzt verwirr doch den armen PrinzEisenherz1 nicht noch mehr ;)
tell people what you want to do, and they'll probably help you to do it.
PackMan
LinWiki : Das Wiki für Linux User

PrinzEisenherz1
Member
Member
Beiträge: 248
Registriert: 8. Mär 2004, 16:57
Wohnort: Pösing
Kontaktdaten:

Beitrag von PrinzEisenherz1 » 19. Mai 2005, 14:49

jaja, verwirrt mich noch! *lach*
Also ich hab jetzt folgendes gemacht:
apt-sorti.sh wech
apt-sorti.conf aktualliert
abgleich.sh per cut&copy neu erstellt

jetzt ist mir folgendes aufgefallen
Pawe hat doch geschrieben das wenn ne neue repository gefunden wurde dann wirft er ne Meldung über echo raus!
Bei mir tut ers irgendwie nicht!
Merkwürderlich *g*
Vielleicht doch die Finger vom Alk lassen!
DESKTOP:
Intel Q6600 - GeForce EN8500GT
openSUSE 13.2 - x64
Kernel-3.16.7
KDE 4.14
NOTEBOOK:
Medion P6612 - Intel P7350- GeForce 9600GS
openSUSE 13.2 - x64
Kernel-3.16.7
KDE 4.14

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

Beitrag von oc2pus » 19. Mai 2005, 14:58

PrinzEisenherz1 hat geschrieben:jetzt ist mir folgendes aufgefallen
Pawe hat doch geschrieben das wenn ne neue repository gefunden wurde dann wirft er ne Meldung über echo raus!
Bei mir tut ers irgendwie nicht!
Merkwürderlich *g*
vielleicht gibt es keine neuen repositories für 9.3 zur Zeit ....
PrinzEisenherz1 hat geschrieben:Vielleicht doch die Finger vom Alk lassen!
kann nie schaden ... oder einen mehr lüpfen ;)
tell people what you want to do, and they'll probably help you to do it.
PackMan
LinWiki : Das Wiki für Linux User

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

Beitrag von pawe » 19. Mai 2005, 15:09

hab grad geschaut: 9.3 hat ein repository namens x-ati (beide Strukturen), die aber in der apt-sorti.conf nicht drin ist.
=> zumindest x-ati muss als neues Repository angezeigt werden.

@PrinzEisenherz1: Wie sieht deine sources.list jetzt aus, poste mal
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!

Keepers
Advanced Hacker
Advanced Hacker
Beiträge: 1061
Registriert: 25. Jun 2004, 17:58
Wohnort: Hessen

Beitrag von Keepers » 19. Mai 2005, 15:32

X-ATI ist in der apt-sorti.conf vorhanden
Gruß Keepers
Only time will tell - but who does listen?

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

Beitrag von pawe » 19. Mai 2005, 15:41

Keepers hat geschrieben:X-ATI ist in der apt-sorti.conf vorhanden
Ich sehe es nirgens :? hier nicht und auch nicht in dem gepinnten Thread.
Bin ich blind oder ist es nur in deiner apt-sorti.conf vorhanden?
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!

Antworten

Wer ist online?

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