Nix 新用户在这里。
Blazegraph
我正在尝试从tgz
可用版本创建派生这里。
里面有bin/
、conf/
、data/
、lib/
、log/
、pid/
等多个文件夹war/
。可以使用命令启动 blazegraph 数据库./bin/blazegraph.sh start
。
这是我的初始default.nix
:
# { stdenv, fetchurl, makeWrapper, jre }:
with import <nixpkgs> {};
stdenv.mkDerivation rec {
name = "blazegraph-${version}";
version = "2.1.5";
src = fetchurl {
url = "https://github.com/blazegraph/database/releases/download/BLAZEGRAPH_RELEASE_2_1_5/blazegraph.tar.gz";
sha256 = "440cecbe1714fc8eba9ec4e798f44eecb41529394323cae9027c8d1944acd9e4";
};
phases = "installPhase";
installPhase = ''
mkdir -p $out
cd $out
cp ${src} $out
tar xvf $out/*blazegraph.tar.gz
cp -r $out/blazegraph-tgz-2.1.5/* $out
mv $out/bin/blazegraph.sh $out/bin/blazegraph
chmod +x $out/bin/blazegraph
'';
}
之后,我跑去nix-build
创建result
文件夹,然后nix-shell --pure
.
然后,当我尝试运行时./result/bin/blazegraph start
,出现错误
result/log/blazegraph.out: Permission denied
我猜result
文件夹内不能写入任何内容,因为它是不可变的。在这种情况下,我应该将上面列出的文件夹(数据、配置)放在哪里?我能想到的第一个候选人是/var/lib/blazegraph
。有什么建议 ?
编辑
它default.nix
被放在我的主目录中。输出操作系统ls -l result
是:
total 49952
dr-xr-xr-x 2 xxx xxx 4096 Dec 31 1969 bin
dr-xr-xr-x 9 xxx xxx 4096 Dec 31 1969 blazegraph-tgz-2.1.5
dr-xr-xr-x 2 xxx xxx 4096 Dec 31 1969 conf
dr-xr-xr-x 2 xxx xxx 4096 Dec 31 1969 data
dr-xr-xr-x 2 xxx xxx 4096 Dec 31 1969 lib
dr-xr-xr-x 2 xxx xxx 4096 Feb 13 17:21 log
dr-xr-xr-x 2 xxx xxx 4096 Feb 13 17:50 pid
dr-xr-xr-x 5 xxx xxx 4096 Dec 31 1969 war
-r--r--r-- 1 xxx xxx 51114828 Dec 31 1969 x5p8m36z8da5zvwarjhrkh22fdk3s1hf-blazegraph.tar.gz
的输出ls -l result/log
是:
total 16
-rw-r--r-- 1 xxx xxx 15300 Feb 13 17:19 blazegraph.out