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#
- 3963 megtekintés
Hozzászólások
Mit is csinalsz egesz pontosan? Az az erzesem, kihagytal par informativ lepest, amit meg valoban csinalsz.
tompos
- A hozzászóláshoz be kell jelentkezni
...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. ---
---
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
Man-okkal együtt épp itt ülök 3 könyv előtt, QT helyesírása ok.
Nemsokára leírok az elejétől mindent..
Akkor is, ha közben megoldom az anomáliát
---
--- A gond akkor van, ha látszólag minden működik. ---
---
- A hozzászóláshoz be kell jelentkezni
Na, nekem ez vegul kimaradt. Megoldodott?:)
O arra gondolt egyebkent, hogy hard linket nem lehet ket mount point kozott letrehozni.
tompos
- A hozzászóláshoz be kell jelentkezni
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. ---
---
- A hozzászóláshoz be kell jelentkezni