Opsætning af et Debian-arkivspejl

Hvorvidt man skal spejle

Mens vi er glade for alle nye spejle, bør alle der overvejer at vedligeholde et spejl sikre sig, at de kan besvare disse spørgsmål, før der et eget spejl forsøges oprettet:

Hvad man spejler

Den primære side om spejling oplyser de arkiver, som kan spejles.

Se siden om størrelser på filspejle for mere præcise oplysninger om størrelser på filspejle.

Arkivet debian-security/ indeholder sikkerhedsopdateringer udsendt af Debians sikkerhedsteam. Der lyder interessant for alle, men da sikkerhedsopdateringer er sporadiske, er man nødt til at spejle det meget ofte, for at være ajour (eller bruge push-spejling), hvorfor vi ikke anbefaler det. Debian gør i stedet meget ud af, at sørge for en højtilgængelighed af security.debian.org.

Bemærk: Arkivet debian-non-US/ har ikke været anvendt siden udgivelsen af version 3.1 (sarge) i juni 2005.

Hvor der kan filspejles fra

Mange lader til at tro, at ftp.debian.org er det kanoniske sted for Debian-pakker og at det vil være bedst for dem at filspejle det ftp-sted. Det er ikke rigtigt.

ftp.debian.org er blot en af flere servere som opdateres fra en intern Debian-server. Adressen befinder sig pt. på en enkelt server i USA, og findes primært af hensyn til bagudkompatibilitet.

Hensigten med de officielle filspejle er at de skal være gode steder at spejle fra. En hvilken som helst server på den fuldstændige liste over filspejle, som har flagene Type: Push-Primary eller Type: Push-Secondary skulle være god at basere sit filspejl på. Anvend venligst et filspejl, der både netværksgeografisk og fysisk er tæt på dig.

Der er i praksis ikke nogen forskel på de forskellige Push-Primary-filspejle, hvad angår spejlingen. På den anden siden, hvis mange bruger ftp.debian.org (og det gør de desværre) sker der et unødvendigt spild af den donerede båndbredde.

Filspejlsadministratorer i USA bør spejle fra ftp.us.debian.org (den officielle filspejlsadresse i USA, som er et Push-Primary-filspejl). Men da denne adresse også er et round-robin-alias for flere maskiner, giver det normalt mening at beslutte sig for, hvilken af dem det vil være bedst at spejle fra.
Fordelen derved, er at man undgår risiko for fejl ved udførelse af en to-trins rsync (forskellige trin kan blive udført mod forskellige maskiner, der på det givne tidspunkt kan have forskellige data, medførende en såkaldt race condition). Ulempen er at man anvender ét bestemt sted, hvis tilgængelighed kan skifte, men det gælder pt. generelt hele vores netværk af filspejle.

Hvordan man spejler

Den anbefalede filspejlingsmetode er med det såkaldte skript anonftpsync.

Den anbefalede filspejlingsprotokol er rsync.

Vær venlig ikke at anvende wget og andre ftp-værktøjer. De ser ud til at fungere, men vil have mange problemer (de kan ikke identificere hard links, det er mere besværligt at lave delvise filspejle, osv.).

Rsync-opsætning

Vi anbefaler at bruge dette skript til at lave et filspejl af arkivet. Følg instruktionerne i skriptet for at sætte filspejlingen op.

Her er nogle råd til dem der foretrækker andre metoder:

Delvis filspejling

Det allerede store Debian-arkiv taget i betragtning, foretrækker nogle kun at spejle de dele som de har brug for. Hvis du ønsker at fravælge noget, bør du fravælge arkitekturer.

Med anonftpsync kan dette gøres ved at ændre ARCH EXCLUDE-variablen.

Vi advarer kraftigt imod at fravælge mapperne project/, doc/ og andre undermapper. Normalt er de ikke særligt store og alligevel nyttige for brugerne. Særligt project/trace kan være meget nyttigt hvis der er problemer med et filspejl.

Det er muligt at anvende andre særligt fremstillede skripter, men de er normalt ikke nødvendige, og anbefales ikke til officielle filspejle. For eksempel vil disse rsync-valgmuligheder fravælge alle arkitekturer:
--exclude binary-alpha/ --exclude *_alpha.deb --exclude *_alpha.udeb --exclude installer-alpha/ --exclude Contents-alpha*
--exclude binary-amd64/ --exclude *_amd64.deb --exclude *_amd64.udeb --exclude installer-amd64/ --exclude Contents-amd64*
--exclude binary-arm/ --exclude *_arm.deb --exclude *_arm.udeb --exclude installer-arm/ --exclude Contents-arm*
--exclude binary-armel/ --exclude *_armel.deb --exclude *_armel.udeb --exclude installer-armel/ --exclude Contents-armel*
--exclude binary-hppa/ --exclude *_hppa.deb --exclude *_hppa.udeb --exclude installer-hppa/ --exclude Contents-hppa*
--exclude binary-hurd-i386/ --exclude *_hurd-i386.deb --exclude *_hurd-i386.udeb --exclude installer-hurd-i386/ --exclude Contents-hurd-i386*
--exclude binary-i386/ --exclude *_i386.deb --exclude *_i386.udeb --exclude installer-i386/ --exclude Contents-i386*
--exclude binary-ia64/ --exclude *_ia64.deb --exclude *_ia64.udeb --exclude installer-ia64/ --exclude Contents-ia64*
--exclude binary-m68k/ --exclude *_m68k.deb --exclude *_m68k.udeb --exclude installer-m68k/ --exclude Contents-m68k*
--exclude binary-mips/ --exclude *_mips.deb --exclude *_mips.udeb --exclude installer-mips/ --exclude Contents-mips*
--exclude binary-mipsel/ --exclude *_mipsel.deb --exclude *_mipsel.udeb --exclude installer-mipsel/ --exclude Contents-mipsel*
--exclude binary-powerpc/ --exclude *_powerpc.deb --exclude *_powerpc.udeb --exclude installer-powerpc/ --exclude Contents-powerpc*
--exclude binary-s390/ --exclude *_s390.deb --exclude *_s390.udeb --exclude installer-s390/ --exclude Contents-s390*
--exclude binary-sparc/ --exclude *_sparc.deb --exclude *_sparc.udeb --exclude installer-sparc/ --exclude Contents-sparc*

Hvornår man skal filspejle

Hovedarkivet opdateres to gange dagligt. Filspejlene begynder normalt opdateringen omkring klokken 09.00 og 21.00 (begge UTC), men disse er ikke uforanderlige, og du skal ikke indstille din daglige spejling efter disse tider.

Vi anbefaler daglig spejling. Opdatering af spejlet mere end to gange dagligt er nytteløst og vil formentlig føre til, at dit spejl bliver bandlyst — gør det ikke.

Dit spejl bør opdateres nogle få timer efter et af hovedfilspejlene er blevet opdateret. Du bør undersøge om det sted du spejler fra efterlader en tidsstemplingsfil i sin undermappe project/trace/. Tidsstemplingsfilen har samme navn som netstedet, og indeholder tidspunktet for den seneste opdatering af filspejlet. Læg et par timer til den tid (for at være på den sikre side) og start din filspejl på det tidspunkt.

Den nemmeste måde, automatisk at få filspejlet opdateret hver dag er at anvende cron. Se man crontab for flere oplysninger.

Bemærk, at den nemmeste måde at få spejlingen til at køre automatisk hver dag, er at bruge cron. Se man crontab for flere oplysninger.

Push-udløst filspejling

Push-filspejling er en form for spejling ved hjælp af rsync vi har udviklet for at minimere den tid det tager ændringer i arkivet at nå ud til filspejlene. Server-filspejlet anvender en ssh-udløser til at fortælle nedenstrøms-filspejlet at det sker opdatere sig selv. Push'et er normalt begrænset til en sikker udløser, der ikke medtager variable data, så resten af filspejlingsprocessen simpelthen er et pull som med et cron-job.

Push-filspejling er nødvendig hvis mange servere skal være synkrone (så som servere i DNS der på skrift svarer på et alias som ftp.us.debian.org), og vi bruger det almindeligvis i forbindelse med vores primære og sekundære filspejle. I forbindelse med normale filspejle, er det et stort arbejde at sætte op, som ikke er umagen værd i forhold til et veltilpasset cron-job.

For en mere detaljeret beskrivelse af hvordan dette fungerer, hvorfor det er sikkert, og hvordan man opsætter et push-filspejl, se den komplette beskrivelse.

Yderligere anbefalet opsætning

Hvis du ønsker at gøre et Debian-filspejl tilgængeligt via HTTP, tilføj da følgende indstillinger til din opsætning af Apache (naturligvis forudsat at du bruger Apache) i blokken <Directory /sti/til/dit/debian/spejl>, hvor /sti/til/dit/debian/spejl ændres til navnet på den mappe, hvor dit filspejl ligger:

   Options +Indexes +SymlinksIfOwnerMatch
   IndexOptions NameWidth=* +SuppressDescription

Dette slår mappeindeksering til og sikrer at man kan følge symbolske links. Filnavnene i mappererne bliver ikke forkortet, og beskrivelserne (overvejende ikke-eksisterende) vises ikke.

I Apache 1.3.x kan følgende også tilføjes:

    DirectoryIndex .

Brug ikke denne indstilling i Apache 2.x.

Hvordan et spejl føjes til spejllisten

Når et filspejl er blevet sat up, bør det registereres hos Debian for at blive optaget på listen over filspejle. Det gøres ved at benytte vores simple webformular.

Problemer eller forespørgsler stilles til mirrors@debian.org.