Sziasztok!
Volt pár végzetes félautomata upgrade kalandom más distribekkel kapcsolatban (gobo, zenwalk)
Ezek inkább a distro karbantaróinak meggondolatlansága, mintsem a netpkg hibái miatt lehettek.
De ezektől teljesen függetlenül, egy egyszerű (slackware) upgradepkg során mi történik a nyitott vagy más módon éppen használatban lévő file-okkal?
Ugye upgradepkg először törli a régi csomag file-jait, majd felmásolja az újakat.
Vagy ezt a kernel oldja meg filesystem szinten, és lehet törölni nyitott file-t, ami nem törlődik, csak ha már nem használja senki? De akkor hogy lehet ugyanolyan néven két file? És ha így is van, akkor meg fontos lenne komolyabb upgrade után újraindítani az egész gépet, hogy mindenből az új verzió fusson?
- 760 megtekintés
Hozzászólások
Hat ez nem lesz authentikus nagyon mert en sem vagyok benne 100%-ban biztos, joreszt azalapjan van sejtesem a dolgorol hogy en hogy csinalnam ha azt a mukodest kellene megvalositanom ahogy unixokon ez tapasztalatom szerint mukodik:
Unixokon a file "fogantyuja" az nem a neve hanem az inode-ja. file neve az leginkabb az adott inode-hoz tartozo metadata. Ha torlod a fajlt az azt jelenti hogy az inode-jat toroltre allitod, es amikor mar semelyik futo process nem "fogja" akkor kerul ki valojaban a listabol. Amikor egy letezo file megnyitasa a feladat, akkor valamilyen modszerrel kikeressuk a nem torlesre kijelolt inode-ok kozul azt aminek a neve megegyezik az alkalmazas altal megadott nevvel, es megnyitjuk. Fontos hogy csak a nem torlesre kijelolt inode-ok kozott keresunk. Uj file letrehozasanal detto, csak a nem torlesre kijelolt inode-ok szamitanak. Igy siman lehet egy vagy tobb torlesre kijelolt azonos nevu inode es ugyan azzal a nevvel egy ervenyes inode.
Asszem ;)
Erdekes kerdes hogy nem unix filerendszereken (pl FAT, NTFS) unix alatt ez hogyan mukodik, de ezeken erzesem szerint nem lehet torolni nyitott file-t mivel ezek nem inode alapuak.
Ismetlem, ez szintiszta spekulacio, nem tenyeket szerettem volna kozolni...
- A hozzászóláshoz be kell jelentkezni
az inode-nak nincs neve es nincs is "torlesre kijelolve". a torles az egy konyvtarmuvelet, az inode-okra a konyvtarszerkezet hivatkozik es itt van nyilvantartva a neve is. egy inode-ra barmilyen neven lehet hivatkozni es tobbszor is. tehat ugyanaz az inode szerepelhet kulonbozo neven, kulonbozo helyeken a filerendszerben. mint felhasznaloi program, nev alapjan nyitod meg, de az inode-ot olvasod. a "torlest" magyarul unlink -nek hivjak es annyit jelent hogy abbol a konyvtarbol azon a neven tobbe nem hivatkozol arra az inode-ra. ettol meg nyitva tarthatja a program, ami elozoleg megnyitotta, es lehet ra hivatkozas mas neven. amikor egy konyvtar sem hivatkozik az inode-ra es egy program sem tartja nyitva, letezese megszunik.
- A hozzászóláshoz be kell jelentkezni