Apt-mirror hash sum hiba, letöltött adatok ellenörzése, és tárolók közötti prioritás kezelés!

Fórumok

Sziasztok!

Ez az első hozzászólásom itt a HUP on, remélem megfelelő helyre és módon írok.

Az alábbi új illetve visszatérő problémákkal küzdök, immáron több hete.

1. Egyben legfrissebb hiba hogy az otthoni "házi" csomagtárolóm melyet apt-mirror segítségével hoztam létre "hash sum" hibát ír amennyiben az otthoni gépeimen ezt állítom be tárolóként (a kliens gép írja a hibát).
Csak a Debian Jessie tárolóival van gond.
Ugyanezen a gépen ugyan az az apt-mirror több más tárolót is szinkronizál (Debian Wheezy Debian Squeeze, Ubuntu és Linux Mint különböző verziói stb) de semelyik másik nem produkál hibát, megfelelően működnek kivéve a Debian Jessie.
A probléma Január legelején kezdődött, bár feledékenységből néhány hónapig nem frissített a rendszer (ki volt kapcsolva a chron.d).

Több helyen írtak hasonló problémát, ki is próbáltam a megoldási javaslatok többségét, kipróbáltam a Debian Jessie dists mappáinak törlését majd újra szinkronizálását, de a probléma nem oldódott meg.
Találkozott már valaki hasonló gonddal, tudjátok mi lehet a megoldás rá?

2. Szeretném ellenőrizni az összes apt-mirror -al letöltött fájl épségét a szerveren (kb 1 millió 6 ezer fájl kb 2.2TB) nem számít ha egy hétig ellenőriz de nem szeretnék belefutni olyan hibába hogy valami sérült. Már nem minden csomagtároló érhető ami nálam még megvan, de a meglévőket szeretném ellenőrizni még mielőtt azokat is lekapcsolják.
Erre létezik valamilyen módszer?, mert erről még nem sikerült érdemi információt találnom.

3. Visszatérő problémám (mert még sose sikerült megcsinálnom, mindig feladtam...) hogy néhány általam használt csomag csak a Debian előző verzióinak a csomagtárolójában van fent, ezért fel kellene vennem Jessie esetén is Wheezy, és Squeeze main tárolóját. Még Debian Wheezy használatakor ha felvettem a Squeeze tárolóját is, szépen megtalálta azt a néhány csomagot ami nem volt benne a Wheezy -ben. Sajnos Jessie esetén ha felveszem a Wheezy és Squeeze tárolókat összeakadnak.
Azt szeretném elérni hogy csak akkor nézze meg a régebbi csomagtárolót ha nincs benne az újabba a kért csomag.
Jómagam apt preferences el próbáltam megoldani melyről találtam leírást de nem sikerült semmilyen változást elérnem, mint ha nem is létezne a fájl.
Egy telepítő script alapján szoktam felpakolni az általam használt plusz csomagokat (kb 1000db) amit időközben sikerült úgy módosítanom hogy nem több 100 csupán kb egy tucat csomag van amit kézzel kel fel tennem a régi tárolókból.
Így használható a telepítő script, csak érdekel mit csináltam rosszul és hogyan kellene megvalósítani a tárolók közötti prioritás kezelést.

Bízom a segítségetekben.

Köszönettel: Novarobot.

Hozzászólások

Itt van egy érdekes megoldás (nem jó) https://github.com/apt-mirror/apt-mirror/issues/44

Ugye a Packages fájlok fen vannak bz2 gz xz vel tömörítve és "simán" is javaslata szerint csak a gz -s maradjon meg.

A helyzet változik, de számomra értelmezhetetlenül, ha kitörlöm pl a rm -rf debian/dists/jessie-updates/main/binary-amd64/Packages.bz2 akkor jó lesz a jessie-backports ( mindegyik ) ha kitörlök még valamit megint rossz.

Mintha a különböző kiterjesztésű Packages fájlok közül van ami jó és van ami hibás és véletlen szerű lenne melyiket olvassa be.

Végigpróbáltam rengeteg "kombinációt" és hol az egyik hol a másik bejegyzést mutatja helyesnek (és sokszor nem az a bejegyzés változik aminek a fájljait módosítottam) de pl a jessie main binary-amd64 mindig rossz.

A próbálgatások és az általa kiváltott hatás között nem sikerült összefüggést találnom.

Holnap felhúzok egy másik gépre egy mirror-t csak a Jessie -nek és megpróbálom annak a fájljaival felülírni a hibásakat. Leszedtem más tükrökről az egész dists mappát, azzal sem jó...

Az ellenőrzés egyre égetőbb kérdésnek tűnik ezek után, az egyetlen ötletem hogy kiszámítom az ellenkörző összeget egyesével minden fájlra és összevetem Packages meg a deb fájlokban lévő ellenőrző összeggel.

Már egy ideje agyalok hogy mySQL be kéne tölteni Packages fájlok tartalmát hogy olyan kereséseket lehessen futtatni mint "mely deb fájlokra nem hivatkozik egyik disztribúció egyik verziója se" (és pl akkor ezek törölhetők lennének), vagy "az ugyan olyan nevű deb fájlokat ellenőrizni hogy ugyan azok e" így pl az Ubuntu és Debian közötti egyező csomagok duplikálását meg lehetne szüntetni és symlink-kel helyettesíteni őket...

Ahogy láttam az azonos nevű deb csomagok egyeznek, ha valamiből külön deb et csinálnak Debian-ra és Ubuntu-ra akkor azt a fájlnévben is jelölik mint a verziószámot. Egyébként a legtöbb csomagból külön van fordítva a két rendszerre de még így is több 100GB -ot foglalhatnak a duplikált csomagok.

Hát az 1. pontot sikerült megoldani!

Nem elég az apt-mirror/mirror/[tároló pl ftp.hu.debian.org]/dists mappából törölni a Packages fájlokat (vagy pl én az egész dists mappát töröltem végül). Le kell törölni az apt-mirror/skel/[tároló pl ftp.hu.debian.org]/dists mappából is a Packages fájlokat (vagy pl én itt is az egész dists mappát töröltem), valamint biztos ami biztos a apt-mirror/var mappát is ürítettem.

Az apt-mirror/skel mind az apt-mirror/mirror mappában szépen strukturáltan vannak a disztribúciók adatai, tehát elég lehet pl a dists/jessie vagy a dists/jessie-update mappát törölni, ha a pl a wheezy vel nincs gond.

Miután így "tisztogattam" többször annyi ideig tartott a tükrözés, még úgy is hogy nem volt letöltendő adatmennyiség, de a Debian Jessie tárolói helyrerázódtak.

Ugyan ezzel a módszerrel próbáltam helyrerakni a extra.linuxmint.com ról készült tükröt, de ott már szükség volt a KLIENS gépen pár utasításra:

apt-get clean
rm -rf /var/lib/apt/lists/*
apt-get clean
apt-get update

Utasítások után a probléma megszűnt.

A másik hogy figyelni kell a helyre, én symlink-el az apt-mirror/mirror mappát tettem át a Storage disk re, de az apt-mirror/skel és apt-mirror/var mappa is több 10GB lehet aminek egy részét tükrözés végén letörli.
Ha pl sok csomagfájl változott akkor hatalmasra duzzadt apt-mirror/skel betelítheti a disk-et, így hibás fájlok generálódnak de lefut a tükrözés és a végén rá se jössz mi volt a gond. Persze utána már minden a hibásan generálódott fájlokra épül ha nem kényszeríted (egy törléssel) hogy generálja újra.

Lényegében e miatt szált el nálam az egész...

A maradék 2 kérdésre még keresem a választ.