2012. április 8., vasárnap

Chromium-browser helyi cache kimozgatása a /home/$USER alól

A napokban volt róla szó, hogy miként kapcsolja ki az ember a helyi cache-t Firefox-ban, meg aztán azt is kitárgyaltuk, hogy mit tehetünk akkor, ha nem akarjuk kikapcsolni, de szívesen mozgatnánk ki a /home/$USER alól.

Most hasonlót igyekszünk művelni Chromiummal is. Az alábbiakat az Ubuntu 12.04 bétájában lévő Chromium-browser 18.0.1025.142.... verziójú Chromiummal kísérletezgetve tapasztaltam meg.
Szóval az úgy volt, hogy először ki akartam kapcsolni a cache-t. A Google egyik találata szerint két parancssori kapcsolót (errefelé ezt FLAG-nek mondják) kell elhelyezni az /etc/chromium-browser/default fájlban. A cikk némi kétséget ébreszt az emberben, miszerint nem elég csak a cache méretének 0-ra, vagy 1-re állítása. Na lássuk:
  1. Először is kipróbáljuk, hogy a Chromiumunk megeszi-e a parancssori kapcsolókat. A kapcsolók listájából válasszunk olyat, aminek azonnal látható a hatása: ilyen például a "én vagyok-e az alapértelmezett böngésző" ellenőrzésének - és így a panaszkodó üzenetnek a tiltása. Ezt a chromium-browser --no-default-browser-check paranccsal oldhatjuk meg. Megy, azaz a parancsot eszi a Chromium.
  2. Adjuk ki a chromium-browser --disk-cache-size=0 parancsot, majd figyeljük, hogy mekkora a /home/felhasználó/.cache/chromium/Default/ mappa. Hát, hízik. Ha letöröljük, újra létrejön és hízik. Ha 0 helyett 1-et, 100-at, 1000-et írok, akkor sem működik. Hmmm.
  3. Ha a chromium-browser --disk-cache-dir=/dev/null paranccsal indulunk, akkor kapunk egy sor "unable to create cahce / unable to move cache folder" üzenetet, de ami a rosszabb, hogy lesz egy OpenGL-hiba is, miszerint a 3D acceleration is felejtős. Nem teccik.
  4. Akkor tegyük máshová a cache-t, például kis kedvencembe, a /tmp alatti, az adott felhasználó tulajdonában lévő mappába. Erre ugye a fenti default file szerkesztése nem jó, mert ott nem tudom érzékelni a felhasználót. Semmi gond, a fájl mellett van két könyvtár, a managed meg a recommended. Használatukról klassz segítség van, és elvileg megy az is, hogy felhasználónként más és más könyvtárat adjunk meg. Én azonban más utat választottam időközben: mozgassuk el az egész /home/felhasználó/.cache/ mappát - elvégre a cache a program lefutása, illetve a felhasználó kijelentkezése után úgyis csak a bajnak van. 
A nyomon ez a cikk indított el. De ő nem rendszerszinten oldja meg, hanem felhasználónként. Ez nekem nem jó, de a pam_env sokat segít. Kiderül, hogy a fájl rendszerszintű megfelelője az /etc/security/pam_env.conf. Jó, akkor induljunk innen, szúrjuk be ide az
XDG_CACHE_HOME DEFAULT="/tmp/${USER}-cucc/"
sort. Aztán látjuk, hogy nem jó a helyzet, hiszen ha friss bejelentkezés után az export parancs kiadásával ellenőrizzük a környezeti változóinkat, az XDG_CACHE_HOME értéke /tmp/-cucc/, ami nem épp oké. Az ${USER} nem értékelődik ki, mert túl korán érünk el eddig a pontig, és akkor még nincs is ilyen változó. Mit írjak ide?
Nos, nem tudom már, hogy hol találtam rá, de a megoldás ez a sor:
XDG_CACHE_HOME  DEFAULT=/tmp/@{PAM_USER}-cucc/
Így - ha jól emlékszem, csak egy restart után - létrejön a mappa, ami csak a felhasználó számára olvasható, és minden cache-cucc ide megy - mármint az XDG-t használó programoké. Például a Chromiumé is. Kalssz.

Nincsenek megjegyzések: