linux中2024新版virtuoso安装的详细步骤

前言

Virtuoso 是一个高性能的多模型数据库,支持关系型、文档型、图形型和RDF数据库操作。随着时间的推移,Virtuoso 数据库不断更新,尤其是2024年发布的新版本,带来了许多新特性和改进。本文将详细介绍如何在 Linux 环境下安装最新版的 Virtuoso 数据库。

1 virtuoso的选择和下载

1.1 virtuoso版本介绍

截止到目前(2024年9月),virtuoso的最新版本是7.2.13,可以通过https://sourceforge.net/projects/virtuoso/files/virtuoso/这个网址看到virtuoso的历史版本,其中7.2.13版本是2024年6月份发布的。

最新版本的virtuoso有针对不同操作系统的,如下图

我们采用的系统是centos,选取的virtuoso是virtuoso-opensource-7.2.13.tar.gz。

1.2 下载解压文件

Virtuoso可以安装到/usr/local目录,在/usr/local目录下新建virtuoso文件夹。

bash 复制代码
[root@flexusx-e724 local]# cd /usr/local

[root@flexusx-e724 local]# mkdir virtuoso

[root@flexusx-e724 local]# cd virtuoso/

在virtuoso目录下,用wget命令下载virtuoso-opensource-7.2.13.tar.gz压缩文件。

bash 复制代码
​
[root@flexusx-e724 virtuoso]# wget https://sourceforge.net/projects/virtuoso/files/virtuoso/7.2.13/virtuoso-opensource-7.2.13.tar.gz

++解压文件++

bash 复制代码
[root@flexusx-e724 local]# tar -zxvf virtuoso-opensource-7.2.13.tar.gz

切换到解压后的virtuoso-opensource-7.2.13目录

bash 复制代码
[root@flexusx-e724 virtuoso]# cd virtuoso-opensource-7.2.13

2 配置编译安装过程

我们将virtuoso-opensource-7.2.13.tar.gz下载到/usr/local/virtuoso目录,解压后进行编译安装,由于每个系统默认安装的依赖,插件各不相同,我们编译安装virtuoso采用直接进行编译安装,根据报错信息查看缺少的依赖,再安装依赖,然后重复编译安装,不断重复上面的过程,一直到没有报错,安装成功为止。

以下是详细安装步骤

2.1 ./configure进行配置

bash 复制代码
[root@flexusx-e724 virtuoso-opensource-7.2.13]# ./configure

checking OpenSSL version... configure: error: OpenSSL version 0.9.8e or greater is required.

上面的报错是缺少了OpenSSL,需要安装openssl依赖

bash 复制代码
[root@flexusx-e724 virtuoso-opensource-7.2.13]# yum install openssl-devel

openssl安装完成后,再次配置

bash 复制代码
[root@flexusx-e724 virtuoso-opensource-7.2.13]# ./configure

配置完成。

2.2 make构建编译

bash 复制代码
[root@flexusx-e724 virtuoso-opensource-7.2.13]# make
bash 复制代码
* WARNING *: You should have the yacc program installed on your system.

Please check the INSTALL and README files for package

dependencies, recommended versions and operating system dependent

instructions to build and install Virtuoso on your system.

However since the file jsonld_p.c exists on your system

we will try to use it, but all changes you made to the underlying

source files will be ignored.

Please rerun 'make'

make[2]: *** [Makefile:3835: jsonld_p.h] Error 1

make[2]: Leaving directory '/usr/local/virtuoso/virtuoso-opensource-7.2.13/libsrc/Wi'

make[1]: *** [Makefile:506: all-recursive] Error 1

make[1]: Leaving directory '/usr/local/virtuoso/virtuoso-opensource-7.2.13/libsrc'

make: *** [Makefile:702: all-recursive] Error 1

从上面的报错信息,可以看出系统缺少了yacc依赖,所以需要安装yacc依赖。

bash 复制代码
[root@flexusx-e724 virtuoso-opensource-7.2.13]# yum install byacc -y

Yacc依赖安装完成后,再次进行构建

bash 复制代码
[root@flexusx-e724 virtuoso-opensource-7.2.13]# make
bash 复制代码
WARNING: 'flex' is missing on your system.

         You should only need it if you modified a '.l' file.

         You may want to install the Fast Lexical Analyzer package:

         <https://github.com/westes/flex>

make[2]: *** [Makefile:911: graphql_l.c] Error 127

make[2]: Leaving directory '/usr/local/virtuoso/virtuoso-opensource-7.2.13/binsrc/graphql'

make[1]: *** [Makefile:502: all-recursive] Error 1

make[1]: Leaving directory '/usr/local/virtuoso/virtuoso-opensource-7.2.13/binsrc'

make: *** [Makefile:702: all-recursive] Error 1

再次报错,缺少了flex依赖,继续安装flex依赖

bash 复制代码
[root@flexusx-e724 virtuoso-opensource-7.2.13]# yum install flex

安装完成后,再次make构建

bash 复制代码
[root@flexusx-e724 virtuoso-opensource-7.2.13]# make

没有报错,构建成功

2.3 make install安装

bash 复制代码
[root@flexusx-e724 virtuoso-opensource-7.2.13]# make install

命令make install运行后,花费的时间会比较长,大概有5-6分钟,需要耐心等待。

信息一直在屏幕上滚动,没有信息滚动,说明安装完成,也没有报错,说明安装成功。

bash 复制代码
See any operating system documentation about shared libraries for

more information, such as the ld(1) and ld.so(8) manual pages.

----------------------------------------------------------------------

make[5]: Leaving directory '/usr/local/virtuoso/virtuoso-opensource-7.2.13/appsrc/ODS-Wiki/plugin'

make[4]: Leaving directory '/usr/local/virtuoso/virtuoso-opensource-7.2.13/appsrc/ODS-Wiki/plugin'

make[3]: Leaving directory '/usr/local/virtuoso/virtuoso-opensource-7.2.13/appsrc/ODS-Wiki/plugin'

make[3]: Entering directory '/usr/local/virtuoso/virtuoso-opensource-7.2.13/appsrc/ODS-Wiki'

make[4]: Entering directory '/usr/local/virtuoso/virtuoso-opensource-7.2.13/appsrc/ODS-Wiki'

make[4]: Nothing to be done for 'install-exec-am'.

make[4]: Leaving directory '/usr/local/virtuoso/virtuoso-opensource-7.2.13/appsrc/ODS-Wiki'

make[3]: Leaving directory '/usr/local/virtuoso/virtuoso-opensource-7.2.13/appsrc/ODS-Wiki'

make[2]: Leaving directory '/usr/local/virtuoso/virtuoso-opensource-7.2.13/appsrc/ODS-Wiki'

make[2]: Entering directory '/usr/local/virtuoso/virtuoso-opensource-7.2.13/appsrc'

make[3]: Entering directory '/usr/local/virtuoso/virtuoso-opensource-7.2.13/appsrc'

make[3]: Nothing to be done for 'install-exec-am'.

make[3]: Nothing to be done for 'install-data-am'.

make[3]: Leaving directory '/usr/local/virtuoso/virtuoso-opensource-7.2.13/appsrc'

make[2]: Leaving directory '/usr/local/virtuoso/virtuoso-opensource-7.2.13/appsrc'

make[1]: Leaving directory '/usr/local/virtuoso/virtuoso-opensource-7.2.13/appsrc'

3 配置virtuoso数据库

安装完成后,需要对 Virtuoso 进行一些基础配置。

3.1 virtuoso配置文件virtuoso.ini

Virtuoso会将程序自动安装到/usr/local/virtuoso-opensource目录下,其中配置文件virtuoso.ini位于/usr/local/virtuoso-opensource/var/lib/virtuoso/db目录。

以下是virtuoso配置文件的部分参数及说明

[Database] 部分:

DatabaseFile:数据库文件路径。

NumberOfBuffers 和 MaxDirtyBuffers:影响内存缓存,适合设置为服务器内存的 50-70%。

CheckpointInterval:控制检查点的时间间隔,默认 60 秒。

[Parameters] 部分:

ServerPort 和 HTTPPort:数据库和 Web 控制台端口。

ThreadsPerQuery:查询并发线程数,根据 CPU 核数调整。

[SPARQL] 部分:

ResultSetMaxRows 和 MaxQueryExecutionTime:控制查询结果集大小和执行时间。

配置应根据系统性能和需求进行优化。

3.2 放开端口8890和1111

默认情况下,virtuoso有两个端口,一个server的api端口,1111,一个是http端口,8890,如果想要正常访问virtuoso数据库,需要将这两个端口开放。

开放端口涉及到两个层面,一个是系统层面,如果使用的是centos操作系统,使用命令

bash 复制代码
firewall-cmd --zone=public --add-port=8890/tcp --permanent

firewall-cmd --zone=public --add-port=1111/tcp --permanent

放开防火墙对两个端口的限制。

一个是服务器层面,需要在供应商提供的安全管理页面进行设置,一般是安全组设置,在入站规则中,放开这两个端口。

4 运行virtuoso

bash 复制代码
 [root@flexusx-e724 bin]# nohup /usr/local/virtuoso-opensource/bin/virtuoso-t -fd +configfile /usr/local/virtuoso-opensource/var/lib/virtuoso/db/virtuoso.ini &

这个命令在后台启动 Virtuoso 数据库,并指定使用特定的配置文件。以下是各个部分的解释:

nohup:命令前缀,表示忽略挂断信号(SIGHUP),即使关闭终端,进程也会继续运行。nohup 的输出通常会保存到 nohup.out 文件中,除非指定了其他输出文件。

/usr/local/virtuoso-opensource/bin/virtuoso-t:这是 Virtuoso 数据库的主可执行文件,virtuoso-t 是 Virtuoso 数据库服务器的启动程序。

-fd:表示前台运行服务器并显示调试输出,但这里使用了 nohup 将其推到后台。

+configfile /usr/local/virtuoso-opensource/var/lib/virtuoso/db/virtuoso.ini:指定 Virtuoso 数据库使用的配置文件路径。这里明确告知数据库使用位于 /usr/local/virtuoso-opensource/var/lib/virtuoso/db/virtuoso.ini 的配置文件。

&:将命令放到后台运行,允许继续使用当前终端窗口进行其他操作。

通过ps命令,查看启动情况

bash 复制代码
[root@flexusx-e724 bin]# ps aux|grep virtuoso

root      596231 12.9 35.8 9726432 4334636 pts/0 Sl   11:04   0:02 /usr/local/virtuoso-opensource/bin/virtuoso-t -fd +configfile /usr/local/virtuoso-opensource/var/libvirtuoso/db/virtuoso.ini

root      596253  0.0  0.0  22112  2108 pts/0    S+   11:04   0:00 grep --color=auto virtuoso

说明virtuoso启动成功。

5 测试连接

5.1 使用isql测试连接

使用 `isql` 客户端来测试数据库连接。默认用户名和密码分别是 `dba` 和 `dba`。

bash 复制代码
/usr/local/virtuoso-opensource/bin/isql 1111 dba dba

你将进入 Virtuoso 命令行界面,尝试运行 SQL 命令测试是否正常工作:

bash 复制代码
SELECT * FROM DB.DBA.SYS_USERS;

如果返回用户表的内容,则表示 Virtuoso 已成功安装并正在运行。

5.2 web登录测试

然后在浏览器中输入,服务器IP:8890,进行访问测试,如果出现web页面,没有报错。

则说明virtuoso安装成功,也能够正常访问了。

总结

2024年新版的 Virtuoso 在性能和功能上都有所提升。本文详细介绍了如何在 Linux 中安装 Virtuoso 数据库,包括依赖安装、编译、配置和优化等内容。通过这些步骤,你可以成功部署 Virtuoso 并根据实际需要进行调整和优化。Virtuoso 的多功能性使它适用于各种场景,如 RDF 数据处理、SPARQL 查询、以及传统的关系型数据库应用。在实际使用中,根据系统性能和业务需求对 Virtuoso 进行定期的优化,将确保数据库能够以最佳状态运行。

相关推荐
Mr_Xuhhh1 小时前
重生之我在学环境变量
linux·运维·服务器·前端·chrome·算法
朝九晚五ฺ8 小时前
【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
linux·运维·学习
Kkooe10 小时前
GitLab|数据迁移
运维·服务器·git
久醉不在酒10 小时前
MySQL数据库运维及集群搭建
运维·数据库·mysql
虚拟网络工程师11 小时前
【网络系统管理】Centos7——配置主从mariadb服务器案例(下半部分)
运维·服务器·网络·数据库·mariadb
BLEACH-heiqiyihu11 小时前
RedHat7—Linux中kickstart自动安装脚本制作
linux·运维·服务器
MXsoft61813 小时前
华为服务器(iBMC)硬件监控指标解读
大数据·运维·数据库
19004313 小时前
linux6:常见命令介绍
linux·运维·服务器
Camellia-Echo13 小时前
【Linux从青铜到王者】Linux进程间通信(一)——待完善
linux·运维·服务器
嚯——哈哈13 小时前
轻量云服务器:入门级云计算的最佳选择
运维·服务器·云计算