gpt4 book ai didi

nix - 如何在 Nix 环境中安装 PostGIS

转载 作者:行者123 更新时间:2023-12-04 20:53:40 26 4
gpt4 key购买 nike

我有以下 shell.nix (设置我的开发环境,没有 NixOS):

with import <nixpkgs> {};

stdenv.mkDerivation {
name = "my-shiny-project";
buildInputs = [
jq
nodejs-6_x
#postgis {version="2.3.1";}
#postgis ("2.3.1")
#postgis "2.3.1"
postgresql96
zsh
];
shellHook = ''
export SHELL=zsh
export PATH="$PWD/node_modules/.bin/:$PATH"
'';
}

PostGIS 需要一个版本参数。我不确定如何传递该参数。我是否使用 postgis{version="2.3.1";} , postgis("2.3.1")postgis "2.3.1" ,我收到以下错误:

error: cannot coerce a set to a string, at /nix/store/0rj9y7gvzzahp93cvdmrwc2v2aznh61p-nixpkgs-18.03pre118061.69607d7662/nixpkgs/pkgs/stdenv/generic/make-derivation.nix:98:11



Nameless and single parameter section of functions and imports Nix pill , 我看到调用函数的语法很简单 NAME PARAM .

我有什么要补充的 buildInputs为特定版本的 PostgreSQL 安装 PostGIS?

最佳答案

最近可以使用 postgresql.withPackages :

with import <nixpkgs> {};

mkShell {
buildInputs = [
jq
nodejs
( postgresql11.withPackages (p: [ p.postgis ]) )
zsh
];
shellHook = ''
export SHELL=${zsh}/bin/zsh
export PATH="${builtins.toPath ./.}/node_modules/.bin/:$PATH"
export PGDATA=${builtins.toPath ./.}/pg
export PGHOST=$PGDATA

pg_ctl initdb
pg_ctl -o "-p 5555 -k $PGDATA" start
psql -p 5555 postgres -c 'create extension postgis' || true
'';
}

关于nix - 如何在 Nix 环境中安装 PostGIS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46811752/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com