Virtuoso Open Source Edition 7 on Docker with Debian 11

はじめに_

Dockerをインストール済みとする。

Virtuoso Open Source Edition 7のインストール_

ベースとなるコンテナを準備する。以下の例の /home/gotoh/の部分は自分の環境に合わせること(ユーザ名がhogehogeならば/home/hogehoge/となる)。

% docker pull debian:bullseye-slim
% mkdir -p ~/VirtuosoOSE/logs
% docker run -it -d -p 8890:8890 -v /home/gotoh/VirtuosoOSE/logs:/share/logs --name virtuso-debian debian:bullseye-slim

コンテナの動作を確認する。

% docker ps -a
CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS                      PORTS                     NAMES
ec190dd6873c   ubuntu:18.04   "/bin/bash"   10 seconds ago   Up 5 seconds                0.0.0.0:8890->8890/tcp   virtuso

Virtuoso Open Source Edition 7のソースコードをダウンロードする。

% cd /tmp/
% git clone git://github.com/openlink/virtuoso-opensource.git
% cd virtuoso-opensource
% git checkout develop/7
% git pull origin develop/7
% cd ..

Virtuoso Open Source Edition 7のソースコードをコンテナにコピーする。

% docker cp virtuoso-opensource virtuso-debian:/opt/

コンテナ上に移動する。

% docker exec -it virtuso-debian bash

まず、ソフトウェアをアップデートする。

# apt update
# apt upgrade

時刻を日本時間にする。Asia/Tokyoを選択する。インストール中に設定することになる。

# dpkg-reconfigure tzdata
# data
Sun Oct  3 22:37:36 JST 2021 (デフォルトはUTC、JSTとついていたらOK)

Virtuoso Open Source Edition 7をコンパイルするのに必要なソフトウェアのインストールをする。

# apt install autoconf libtool bison flex gawk gperf openssl libssl-dev make net-tools

コンパイルを行う。

# cd /opt/virtuoso-opensource
# ./autogen.sh
# export CFLAGS="-O2 -m64"
# ./configure --prefix=/usr/local/virtuoso --program-transform-name="s/isql/isql-v/" --enable-ruby |& tee configure.log
# make |& tee make.log
# make check (エラーと表示されるが気にしない)
# make install

使っているシェルの設定ファイル(~/.bashrcに)パスの追加。

# echo "export PATH=$PATH:/usr/local/virtuoso/bin" >> ~/.bashrc
# source ~/.bashrc
# which virtuoso-t
/usr/local/virtuoso/bin/virtuoso-t

ログの出力先を共有しているディレクトリ/share/logsに変更する。ここの例ではエディタとしてvimを利用する(viの基本操作

# apt install -y vim
# vi /usr/local/virtuoso/var/lib/virtuoso/db/virtuoso.ini

以下の部分を変更する。

変更前:ErrorLogFile = /usr/local/virtuoso/var/lib/virtuoso/db/virtuoso.log
変更後:ErrorLogFile = /share/logs/virtuoso.log

起動確認

# virtuoso-t -f -c /usr/local/virtuoso/var/lib/virtuoso/db/virtuoso.ini &

http://localhost:8890 でアクセスできる。Getting Startedに書いてあるとおり、デフォルトIDは「dba」、デフォルトパスワードは「dba」でログインする。

ログはコンテナ上の /share/logs/virtuoso.log に保存される。このログはホストのUbuntu 20.04の/home/gotoh/VirtuosoOSE/logs/virtuoso.log (gotohの部分は各自のユーザ名に置き換えること)から閲覧できる。

SPARQLエンドポイントからのデータの挿入許可設定_

標準ではSPARQLエンドポイントからのデータの挿入、更新が許可されていない。以下のページを参考に許可する。

抜粋する。まず、Virtuosoにログインする。初期IDとパスワードはどちらも「dba」。

「System Admin」→「User Account」へ進み「SPARQL」の「Edit」をクリックする。

「Account Roles」で「SPARQL_UPDATE」を右に移動させる。その後「save」する。

関連_

戻る_