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」でログインする。
- 管理者(Conductor)でアクセス: http://localhost:8890/conductor
ログはコンテナ上の /share/logs/virtuoso.log に保存される。このログはホストのUbuntu 20.04の/home/gotoh/VirtuosoOSE/logs/virtuoso.log (gotohの部分は各自のユーザ名に置き換えること)から閲覧できる。
SPARQLエンドポイントからのデータの挿入許可設定_
標準ではSPARQLエンドポイントからのデータの挿入、更新が許可されていない。以下のページを参考に許可する。
- virtuoso事始め(Ubuntu編)の「SPARQLクエリでデータをUPDATE」の項
抜粋する。まず、Virtuosoにログインする。初期IDとパスワードはどちらも「dba」。

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

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