Configuration dynamique des préférences par défaut de Firefox

10

Mes utilisateurs sont tous sur les répertoires personnels NFS et avec des centaines d'utilisateurs utilisant tous Firefox, cela génère un peu de trafic en lecture / écriture dans le cache disque. En conséquence, je voudrais déplacer le cache de disque Firefox par défaut sur un système de fichiers local juste pour réduire le trafic NFS étranger et alléger la charge sur mon serveur NFS également.

Je sais que je peux définir les préférences par défaut du système dans un fichier appelé my_firefox_path/defaults/pref/all.jsde la forme suivante:

pref ("browser.cache.disk.parent_directory", chaîne)

Pour les tests, je l'ai défini comme suit:

pref ("browser.cache.disk.parent_directory", "/ tmp / firefox /");

Malheureusement, cela ne fonctionne pas bien car il y a plusieurs utilisateurs sur chaque système. Existe-t-il un moyen d'inclure un utilisateur et un profil dans ce fichier de préférences afin que je puisse modifier ce système à grande échelle et qu'il s'appliquera à tous mes utilisateurs? Quelque chose comme:

pref ("browser.cache.disk.parent_directory", "/ tmp / firefox / $ USER / $ PROFILE");

Andrew Case
la source
Vous pourrez peut-être utiliser getenv () pour récupérer des variables d'environnement. Par exemple: getenv ("USER") pour le nom d'utilisateur; Je ne sais pas comment obtenir le chemin du profil. Les extensions peuvent facilement récupérer le chemin du profil, mais je m'attends à ce que rendre l'API d'extension disponible en dehors d'une extension soit un défi.
cyberx86
Impossible d'utiliser getenv () ou de récupérer le chemin du profil en l'exécutant dans le fichier .js: Components.classes ["@ mozilla.org/file/directory_service;1"]. GetService (Components.interfaces.nsIProperties) .get ( "ProfD", Components.interfaces.nsIFile) .path
Andrew Case
Selon la relation avec vos utilisateurs, pourquoi ne pas faire le changement (ou leur demander de faire le changement) une fois dans leur profil et en finir avec ça? Puisque, même si vous trouvez un moyen de le spécifier, ils peuvent le remplacer.
Patrick Mevzek
1
Il est peu probable que vous puissiez le faire directement dans ce fichier, selon cela . Avez-vous essayé d'en faire un lien symbolique? it = le dossier nfs.
Florin Asăvoaie

Réponses:

0

Vous pouvez essayer de créer un lien symbolique pour l'ancien dossier de cache vers le nouvel emplacement. La commande sera comme:

ln -s /tmp/firefox /path_to_cache_folder_on_share
ugly_animal
la source
Cela ne résout pas le problème, car ce ne serait toujours qu'un répertoire de cache pour tous les utilisateurs.
Andrew Schulman
cela résout cependant la moitié du problème, @AndrewSchulman, s'il y avait un script de connexion à créer /tmp/$USER/firefoxpour chaque utilisateur, puis créez le lien, le profil partagé pourrait utiliser le chemin du lien. Par exemple mkdir -p /tmp/$USER/firefox; ln -s /tmp/$USER/firefox /path_to_cache_folder_on_share
Mike