새로운 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
폴더는 변경할 수 없기 때문에 폴더 안에는 아무것도 쓸 수 없는 것 같습니다 . 이런 경우 위에 나열된 폴더(data, config)를 어디에 넣어야 하나요? 제가 생각하는 첫 번째 후보는 입니다 /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