{#install-install-agensgraph} # AgensGraph 설치 경로는 세 가지입니다. Docker는 쿼리할 수 있는 서버에 가장 빨리 도달하는 방법입니다. 패키지는 워크스테이션이나 단일 서버에 흔히 쓰는 선택입니다. 무언가를 바꿔야 하거나 사용하는 플랫폼에 패키지가 없다면 소스에서 빌드하십시오. AgensGraph를 그저 시험해 보고 싶을 뿐이라면 Docker를 쓰고 [예제 데이터셋](example-dataset.md)으로 건너뛰십시오. {#install-docker} ## Docker ```shell docker run --name agensgraph -e POSTGRES_PASSWORD=agensgraph -d skaiworldwide/agensgraph:v2.18.6.0-bookworm ``` 그다음 컨테이너 안에서 클라이언트를 엽니다: ```shell docker exec -it agensgraph agens -U agens -d postgres ``` 이 이미지는 공식 `postgres` 이미지와 같은 환경 변수를 받습니다 — `POSTGRES_USER`, `POSTGRES_DB`, `PGDATA` 등입니다. 그러므로 포트를 공개하고 볼륨을 마운트하는 방식도 평소와 같습니다: ```shell docker run -d --name agensgraph \ -e POSTGRES_PASSWORD=agensgraph \ -p 5432:5432 \ -v agensgraph-data:/var/lib/postgresql \ skaiworldwide/agensgraph:v2.18.6.0-bookworm ``` 태그는 릴리스에 기반 이미지를 붙인 형태입니다: `v2.18.6.0-trixie`, `v2.18.6.0-bookworm`, `v2.18.6.0-rocky10`, `v2.18.6.0-rocky9`, `v2.18.6.0-alpine3.24`, `v2.18.6.0-alpine3.23`. 하나를 고정하십시오. `skaiworldwide/agensgraph` 만 쓰면 가리키는 대상이 계속 움직입니다. ```{warning} 2.18.6.0 이미지는 PostgreSQL 18의 배치 변경을 따릅니다. `PGDATA`의 기본값이 이제 `/var/lib/postgresql/18/docker`이고, 선언된 볼륨이 `/var/lib/postgresql/data`에서 `/var/lib/postgresql`로 옮겨졌습니다. 이전 태그가 초기화한 호스트 볼륨은 명시적으로 가리키지 않는 한 2.18.6.0 컨테이너가 찾지 못합니다: -e PGDATA=/var/lib/postgresql/data -v /custom/mount:/var/lib/postgresql/data 어느 경우든 기존 데이터 디렉터리를 다시 쓰기 전에 [2.18로 업그레이드하기](../release_notes/upgrade-to-2.18.md)를 읽으십시오 — 2.17 데이터 디렉터리는 2.18으로 기동할 수 없습니다. ``` {#install-packages} ## 패키지 [AgensGraph 다운로드 페이지](https://tech.skaiworldwide.com/downloads/)에서 사용하는 플랫폼용 빌드를 받아 원하는 곳에 풀어 놓으십시오. 예를 들어 `/usr/local/AgensGraph`입니다: ```shell tar xvf agensgraph-v2.18.6.0-build.tar.gz -C /usr/local ``` 어떤 빌드가 필요한지 확실하지 않다면: ```shell uname -sm ``` 그다음 [데이터베이스 준비](#install-set-up-a-database)로 이어 가십시오. {#install-build-from-source} ## 소스에서 빌드 {#install-install-the-build-dependencies} ### 빌드 의존성 설치 ::::{tab-set} :::{tab-item} Ubuntu / Debian ```shell sudo apt-get install build-essential libreadline-dev zlib1g-dev flex bison ``` ::: :::{tab-item} Rocky / RHEL ```shell sudo yum install gcc glibc glib-common readline readline-devel zlib zlib-devel flex bison perl ``` ::: :::{tab-item} Fedora ```shell sudo dnf install gcc glibc bison flex readline readline-devel zlib zlib-devel ``` ::: :::{tab-item} macOS ```shell xcode-select --install ``` ::: :::: {#install-build-and-install} ### 빌드와 설치 ```shell git clone https://github.com/skaiworldwide-oss/agensgraph.git cd agensgraph ./configure --prefix=$(pwd) make install ``` `--prefix`가 바이너리가 놓이는 곳을 결정합니다. 이것을 주지 않으면 `make install`이 `/usr/local/pgsql`에 씁니다. 위처럼 소스 트리를 가리키게 하면 이것저것 시험해 보는 동안 모든 것이 한곳에 모여 있습니다. contrib 모듈까지 함께 빌드하려면 — `pgvector`는 그중에 없지만, [적재 가이드](../guides/loading-data.md)가 사용하는 `file_fdw`는 있습니다: ```shell make install-world ``` `configure`가 필요한 헤더를 찾지 못하면 `--with-includes=/path/to/headers`로 어디를 볼지 알려 주십시오. `./configure --help`가 모든 옵션을 나열합니다. 그 옵션들은 PostgreSQL의 것이고, [PostgreSQL 설치 장](https://www.postgresql.org/docs/18/installation.html)이 그것들을 문서화하고 있습니다. {#install-put-the-binaries-on-your-path} ### 바이너리를 PATH에 넣기 ```shell export PATH=/path/to/agensgraph/bin:$PATH export LD_LIBRARY_PATH=/path/to/agensgraph/lib:$LD_LIBRARY_PATH ``` 계속 유지되게 하려면 위 내용을 `~/.bashrc`에, macOS라면 `~/.zshrc`에 추가하십시오. {#install-set-up-a-database} ## 데이터베이스 준비 도구는 PostgreSQL의 것이며, 두 개의 이름이 바뀌었습니다. `agens`가 대화형 클라이언트이고 `ag_ctl`이 서버를 기동하고 정지합니다. [agens 클라이언트](../reference/agens.md)를 참고하십시오. 데이터 디렉터리를 만듭니다: ```shell initdb -D /path/to/data ``` 서버를 기동합니다: ```shell ag_ctl -D /path/to/data -l /path/to/data/server.log start ``` 데이터베이스를 만듭니다: ```shell createdb mydb ``` `AGDATA`를 설정하면 이후 명령에서 `-D`를 생략할 수 있습니다: ```shell export AGDATA=/path/to/data ``` {#install-verify-the-install} ## 설치 확인 접속합니다: ```shell agens mydb ``` 서버에게 자신이 무엇인지 물어봅니다: ```sql SELECT version(); ``` ``` version ------------------------------------------------------------------------------------- PostgreSQL 18.6 (AgensGraph 2.18.6.0) on x86_64-pc-linux-gnu, compiled by gcc ... ``` 그다음 그래프 쪽이 있는지 확인합니다. 이 부분이 순수 PostgreSQL 빌드라면 실패하는 대목입니다: ```psql CREATE GRAPH check_install; SET graph_path = check_install; CREATE (:t {ok: true}); MATCH (n:t) RETURN n; ``` ``` n -------------------- t[3.1]{"ok": true} ``` ```sql DROP GRAPH check_install CASCADE; ``` 그래프가 그 안의 레이블과 시퀀스를 소유하고 있으므로 `CASCADE`가 필요합니다. {#install-next} ## 다음 이 매뉴얼의 모든 페이지가 사용하는 [예제 데이터셋을 적재](example-dataset.md)한 뒤, [첫 쿼리를 실행](first-query.md)하십시오. 운영 설치는 — 데이터 디렉터리를 어디에 둘지, `postgresql.conf`에 무엇을 설정할지, systemd 아래에서 어떻게 실행할지, 어떻게 잠글지 — [배포](../operations/deployment.md)와 [구성](../operations/configuration.md)을 참고하십시오.