2017-06-24 4 views
4

Disons que j'ai besoin PostgreSQL 9.6.3 et Ruby 2.3.1 et divers autres outils. Je ne trouve pas de tutoriel expliquant ce que je dois faire.Comment utiliser Nix pour installer un environnement de développement?

Du manuel Nix, il me semble avoir besoin d'écrire un Nix expression pour installer les dépendances nécessaires, mais je ne peux pas faire le saut de:

{ stdenv, fetchurl, perl }: 

stdenv.mkDerivation { 
    name = "hello-2.1.1"; 
    builder = ./builder.sh; 
    src = fetchurl { 
    url = ftp://ftp.nluug.nl/pub/gnu/hello/hello-2.1.1.tar.gz; 
    md5 = "70c9ccf9fac07f762c24f2df2290784d"; 
    }; 
    inherit perl; 
} 

à l'expression qui va installer le PostgreSQL ™ et Les versions Ruby. Je ne sais absolument pas où placer le fichier qui installe PostgreSQL et Ruby, ni comment exécuter un seul fichier dans un répertoire donné.

Quelqu'un peut-il fournir des indications à ces tutoriels, ou me diriger dans la bonne direction?

Répondre

9

Vous pouvez utiliser nix-shell pour cela. Il vous dépose dans un shell configuré pour l'expression nix donnée. Initialement, cette expression pourrait simplement être le long de buildInputs = [ pkgs.ruby ]; et vous pouvez le développer à partir de cela. Il y a un certain nombre d'articles utiles en ligne écrits par les utilisateurs de nix qui donnent plus d'exemples d'utilisation de nix-shell, comme celui-ci de garbas.si

Vous pouvez également trouver utile de mieux comprendre le fonctionnement des paquets nix. Il y a un manuel séparé nixpkgs qui couvre plus en détail l'utilisation de nix pour créer des expressions de paquet. Un survol rapide de la 3ème section devrait être utile pour donner un peu plus de compréhension. Il y a aussi un chapitre sur l'utilisation de nix avec bundy ruby ​​qui pourrait vous être utile. Encore une fois il y a des articles qui donnent plus d'exemples de son utilisation, comme celui de stesie.github.io.

Si vous avez besoin en cours d'exécution postgresql réellement dans votre environnement nix ne gérer que pour vous; sa fonction est uniquement la construction et la gestion des paquets, pas leur activation. Vous pouvez simplement activer manuellement postgres, utilisez le crochet nix-shell, ou créer une autre intégration avec nix, mais je pense que l'option la plus solide est d'utiliser la distribution Linux qui est construit au-dessus de Nix - NixOS. NixOS s'intègre avec les packages nix et gère les services fournis par les packages. Vous pouvez créer une configuration NixOS avec postgres active et votre environnement de développement présent. Cet utilitaire de github.com/chrisfarms peut également être intéressant.

+0

Whoa! Ce sont exactement les types de blogs que je cherchais! Merci beaucoup! –