QT fajlokra mutató symlink eltűnik, és mindig újra kell csinálni.

Fórumok

Sziasztok!

A teljes QT könyvtárat ramdrive-ra teszem helyszűke miatt minden rendszerindításkor, eddig ez sosem okozott problémát. (a ramdrive-ot az fstabban hozom létre és ide csatolom: /mnt/tmpfs_1GB )

mkdir /mnt/tmpfs_1GB/usr/lib
tar xvf /usr/lib/qt-ramdrive.tar -C /mnt/tmpfs_1GB/usr/lib

A /usr/lib/qt fájl pedig egy symlink, ami ide mutat:
/mnt/tmpfs_1GB/usr/lib/qt

Van viszont egy programocska (qlandkarte), amely az *.so.4 végződésű hivatkozásokat kedveli, melyek a /usr/lib/qt/lib könyvtárban elhelyezkedő .so fájlokra mutatnak.
Ezeket a /usr/lib könyvtárba linkeltem ilyen módszerrel:

ln -s /usr/lib/qt/lib/libQtDBus.so.4 /usr/lib/libQtDBus.so.4

...és ezt elismételtem 9 fájlra.

Nos, ezek a /usr/lib/-ben keletkezett fájlok eltűnnek.
Rendszerindításkor nincsenek meg. A többi, amely az egyszerű .so fájlokra mutatnak, azok viszont megmaradnak.

Ez mitől jön szerintetek?

----------
/usr/lib/qt/lib/-ben futtatva:

bash-4.1# ln -s /usr/lib/qt/lib/libQtDBus.so.4 /usr/lib/libQtDBus.so.4

bash-4.1# ls -l libQtDBus.so libQtDBus.so.4 libQtDBus.so.4.7 libQtDBus.so.4.7.0
lrwxrwxrwx 1 a users 18 Nov 2 10:29 libQtDBus.so -> libQtDBus.so.4.7.0
lrwxrwxrwx 1 a users 18 Nov 2 10:29 libQtDBus.so.4 -> libQtDBus.so.4.7.0
lrwxrwxrwx 1 a users 18 Nov 2 10:29 libQtDBus.so.4.7 -> libQtDBus.so.4.7.0
-rwxr-xr-x 1 a users 502104 Mar 25 2011 libQtDBus.so.4.7.0

/usr/lib/-ben futtatva:

bash-4.1#
bash-4.1# ls -l libQtDBus.so libQtDBus.so.4
lrwxrwxrwx 1 root root 19 Oct 24 21:36 libQtDBus.so -> qt/lib/libQtDBus.so <----- ez mindig megmarad, mint fájl
lrwxrwxrwx 1 root root 30 Nov 2 11:09 libQtDBus.so.4 -> /usr/lib/qt/lib/libQtDBus.so.4 <----- ez mindig eltűnik, mintha nem is lett volna. (ez a problémám.)

bash-4.1#

Hozzászólások

Mit is csinalsz egesz pontosan? Az az erzesem, kihagytal par informativ lepest, amit meg valoban csinalsz.

tompos

...kicsit átírtam az elejét, de még átnézem, hogy érthető-e.
Lehet, hogy ma ködös vagyok kissé.

-------
Lerövidítem a problémámat:

bash-4.1# ln /mnt/tmpfs_1GB/usr/lib/qt/lib/libQtDBus.so.4 /usr/lib/libQtDBus.so.4
ln: creating hard link `/usr/lib/libQtDBus.so.4' => `/mnt/tmpfs_1GB/usr/lib/qt/lib/libQtDBus.so.4': Invalid cross-device link

bash-4.1#

Kezdek ráébredni, hogy nemcsak symlinkek, hanem hardlinkek is léteznek, hardlinket vuszont valamiértnem tudoklétrehozni (Invalid cross-device link).
L, f és P kapcsolókkal a hibaüzenet ugyanez.

---
--- A gond akkor van, ha látszólag minden működik. ---
---

Az ln(1) manualjat ajanlatos attanulmanyozni, illetve a http://en.wikipedia.org/wiki/Hard_link oldalt.

Valamint tessek a folyamatot az elejerol leirni. A tmpfs-re honnet jon az adat? Ez hogyan mukodik? Miert akarsz hardlinkeket?

Ja, es tessek megtanulni: Qt nem pedig QT (QuickTime).
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal 

Nem oldódott meg, visszarámoltam egy 1 hónappal ezelőtti rendszermentést.
Azóta rettegek minden upgrade meg új program felhúzásától, szerencsére nincsenek igényeim ilyesmire, csak ha nagyon indokolt.

A baj megint előjöhet, és tényleg ultragáz. De csupán azért, hogy jó legyen a repo meg az apt, nem fogok ubuntuzni, mert az nem minimálrendszerre való.
2GB-om van, meg fele ennyi ramdrive, melyre kicsomagolhatok boot után bármit...

Hardlinket végül nem hoztam létre, mivel korábban mentek a symlinkek is. Arra gyanakszom, hogy egyik Qt-s programom bezárása után takarítani kezd és kigyomlálja a *.so.4 végződésű symlinkeimet a /usr/lib-ből. Mert hogy eltűnik, az tény. Jelenleg rootként kiadok egy parancsot, ami a programjaim indítása előtt kitaroz a /usr/lib-be egy *.so.4 fájlokból álló symlink-kupacot. Síkhüje és kényelmetlen tüneti kezelés, de lassan megszokom.

---
--- A gond akkor van, ha látszólag minden működik. ---
---