Välkommen till linuxportalen.se!

Linuxportalen.se är Sveriges största och aktivaste webbplats för användare av öppen- och fri programvara.

Du besöker Linuxportalen.se som gäst vilket begränsar din möjlighet att använda webbplatsens alla funktioner. Genom att registera dig som medlem får du inte bara möjlighet att söka bland webbplatsens innehåll, skapa nya och delta i befintliga diskussioner, skapa din egen blogg, kommunicera med andra medlemmar genom privata meddelanden och delta i omröstningar. Du får också tillgång till Veckans Kadavro - en seriestrip unikt skapad för Linuxportalen.se!

Registeringen sker snabbt och är helt kostnadsfri - tveka inte, bli medlem idag!

jb: openSUSE 10.3 synchronized

Jag skrev ett skript som synkroniserar openSUSE 10.3 repositories med rsync. Mitt mål var att få snabbare tillgång till paketen för installation och tester.

Resultatet blev syncme.sh. Ett enkelt BASH-skript som borde fixas till lite. Men, det fungerar! Skriptet laddar enbart ner 32-bitars paketen och noarch (som är gemensamma för alla plattformar). Har du en PowerPC eller 64-bitars Intel/AMD skall du ta bort exclude i skriptet.

Notera att repositories tar en hel del plats! (runt 14 GB)

> du -sh /storage/opensuse/10.3/*
467M    /storage/opensuse/10.3/non-oss
7,8G    /storage/opensuse/10.3/oss
679M    /storage/opensuse/10.3/packman
4,5G    /storage/opensuse/10.3/update

För dig som vill ha ett projekt att jobba med:
Om någon känner sig manad skulle jag vilja ha lite förändringar i skriptet:

  • Man skall kunna välja version (10.2, 10.3...) med --version 10.x
  • Man skall kunna välja vilka plattformar man skall ladda ner
  • Man skall kunna uppdatera med --update och då också ta hänsyn till att oss och non-oss inte uppdateras!

Bash, Python, Perl spelar ingen roll. Huvudsaken är att det fungerar Smile

Alternativ för kommentarvisning

Välj ditt önskade sätt att visa kommentarerna och klicka på "Spara" för att verkställa dina ändringar.

oscarss bild

Var var du idag Sad

tufftuffs bild

Pathen till de olika repona varierar ju lite beroende på version, exempelvis ligger updates för opensuse 10.1 inte hos opensuse, utan hos suse. Så då måste scriptet känna till alla olika path. När distron förlorar support så flyttas den, åtminstone har det varit så hos suse. Vad opensuse gör återstår att se...

Vad gäller updates så ligger alla versioner av RPM:erna kvar, så jag har script som sorterar bort gamla. Det bygger på att endast den senaste har en .info fil. Detta sparar en del utrymme.

# Find old RPMs, add them to the exclude list
function find_excessive_rpms() {
   if [ -d ${1}/${2} ] ; then
      for RPMFILE in `cd ${1}; ls -1 ${2}/*.${3}.rpm`; do
         if ! [ -f ${1}/${RPMFILE/.${3}.rpm/.${3}_de.info} ] ; then
            echo "- /"${RPMFILE}
         fi
      done
   fi
}

function build_excessive_rpms_file() {
   find_excessive_rpms $1 $2 $3 | cat - $4 | sort --unique > ${4}.tmp && mv ${4}.tmp ${4};
}

# Find RPMs that falsely has been put into the list.
# This might happen if the download is aborted (RPM got dowmloaded but not the .info file)
# or if the mirror is beeing updated simultanously, or the RPM gets uploaded in advance.
function repair() {
   for RPMFILE in `cat $2` ; do
      if [[ "${RPMFILE}" == "-" ]] ; then {
         DUMMY="-"
         }
      elif ! [ -f ${1}${RPMFILE/%.rpm/_de.info} ] ; then
         echo "- "${RPMFILE}
      else
         echo UNBLOCK ${RPMFILE} >&2
      fi
   done
}

function exclude103() {
# opensuse/update/10.3/rpm/x/
   build_excessive_rpms_file "opensuse/update/10.3" "rpm/i586" "i586" 103.abandoned_rpms
   build_excessive_rpms_file "opensuse/update/10.3" "rpm/i686" "i686" 103.abandoned_rpms
   build_excessive_rpms_file "opensuse/update/10.3" "rpm/x86_64" "x86_64" 103.abandoned_rpms
   build_excessive_rpms_file "opensuse/update/10.3" "rpm/noarch" "noarch" 103.abandoned_rpms

   repair "opensuse/update/10.3" "103.abandoned_rpms" > "103.abandoned_rpms.tmp" && mv "103.abandoned_rpms.tmp" "103.abandoned_rpms"
}

Filen 103.abandoned_rpms ges sedan med ett --exclude-direktiv till rsync.

Jag har dessutom sorterat bort patchfilerna, jag har bara hela RPM:er. Vilket några versioner av YOU inte tycker om (man får trycka avbryt för att ladda en komplett RPM!). Nu tror jag dock det är fixat igen.

//TuffTuff

tufftuffs bild

Ähum, det verkar som om .info -filerna har tagits bort från 10.3 update idag. Undrar om det ska vara så hädanefter? Nu funkar inte mitt script längre...
//TuffTuff