Question

Quelles sont les variables d'environnement mis à la disposition debian/rules (make souvent) lorsque donné naissance par apt-get lors de l'installation d'un paquet sous Ubuntu?

Je suis particulièrement après les variables d'environnement qui se rapportent aux répertoires de configuration de Gnome. Je voudrais éviter « hardcoding » des choses comme ~/.conf/apps/ ... depuis que je dit ceux-ci pourraient changer comme ils ont tendance à ...

J'ai été googler comme un fou!

Était-ce utile?

La solution

Vous cherchez le XDG_CONFIG_HOME et connexes? En particulier, notez que XDG_CONFIG_HOME ne pas exister, et une valeur de ~ / .config est supposé dans ce cas.

Exemple Python

import os
from os import path

app_name = "my_app"
home_config = path.join(
  os.environ.get("XDG_CONFIG_HOME") or path.expanduser("~/.config"),
  app_name,
)

print "User-specific config:", home_config

C ++ exemple

#include <cstdlib>
#include <iostream>
#include <stdexcept>
#include <string>

std::string get_home_config(std::string const& app_name) {
  // also look at boost's filesystem library
  using namespace std;
  string home_config;
  char const* xdg_config_home = getenv("XDG_CONFIG_HOME");
  if (xdg_config_home && xdg_config_home[0] != '\0') {
    home_config = xdg_config_home;
  }
  else {
    if (char const* home = getenv("HOME")) {
      home_config = home;
      home_config += "/.config";
    }
    else throw std::runtime_error("HOME not set");
  }
  home_config += "/";
  home_config += app_name;
  return home_config;
}

int main() try {
  std::cout << "User-specific config: " << get_home_config("my_app") << '\n';
  return 0;
}
catch (std::exception& e) {
  std::clog << e.what() << std::endl;
  return 1;
}

Autres conseils

debian/rules s'invoqué au moment de la construction du paquet (soit la source ou paquet binaire) Finalité pas s'appelle pendant apt-get.

En fait, le fichier .deb (== paquet binaire), ne contient pas de copie de debian / rules plus. Ce fichier est seulement dans le paquet source.

En outre, les emballages doivent normalement pas essayer de faire des choses pour un utilisateur particulier, ou utiliser la configuration d'un utilisateur. les paquets Debian sont destinés à un logiciel installé système.

Bien qu'il soit théoriquement possible de faire un paquet personnel qui installe quelque chose dans / home, un tel paquet est de valeur très limitée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top