We start from a fresh Fedora Core Linux (14) installation.
bash$ su bash# yum update bash# yum install openssh-server sudo bash# visudo bash# /etc/init.d/sshd start bash# chkconfig sshd on bash# setup
Fedora carries pre-built binary packages of Virtuoso, although they only give a minimalist server installation; you have the option of installing Virtuoso using these packages, or if a newer version is available upstream or you want to experience more of Virtuoso, you can build from source directly.
[tim@fedora ~]$ yum search virtuoso Loaded plugins: langpacks, presto, refresh-packagekit [...] ============================== Matched: virtuoso =============================== redland-virtuoso.i686 : Virtuoso storage support for Redland virtuoso-opensource.i686 : A high-performance object-relational SQL database virtuoso-opensource-utils.i686 : Utilities
virtuoso-opensource
-- the bare minimum to run the Virtuoso server with a default config file virtuoso-opensource-utils
-- the isql command for commandline interaction and the virt_mail SMTP handler redland-virtuoso
-- a backend to use Virtuoso for storage behind the Redland RDF libraries
[tim@fedora ~]$ sudo yum install redland-virtuoso virtuoso-opensource{,-utils} [sudo] password for tim: Loaded plugins: langpacks, presto, refresh-packagekit Adding en_GB to language list Setting up Install Process Resolving Dependencies [...] Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: redland-virtuoso i686 1.0.12-1.fc14 updates 26 k virtuoso-opensource i686 6.1.2-1.fc14 fedora 3.8 M virtuoso-opensource-utils i686 6.1.2-1.fc14 fedora 99 k Installing for dependencies: libiodbc i686 3.52.7-1.fc12 fedora 163 k Transaction Summary ================================================================================ Install 4 Package(s) Total download size: 4.0 M Installed size: 13 M [tim@fedora ~]$
/etc/virtuoso/
, for future reference; and a symbolic link in /var/lib/virtuoso/db/virtuoso.ini
so the instance can be run under /var/lib/
where it belongs.
/var/lib/virtuoso/db/
accordingly:
[tim@fedora db]$ cd /var/lib/virtuoso/db [tim@fedora db]$ sudo chown tim . [sudo] password for tim: [tim@fedora db]$ ls -la total 8 drwxr-xr-x. 2 tim root 4096 May 18 12:55 . drwxr-xr-x. 3 root root 4096 May 18 12:55 .. lrwxrwxrwx. 1 root root 37 May 18 12:55 virtuoso.ini -> ../../../../etc/virtuoso/virtuoso.ini
[tim@fedora db]$ cd /var/lib/virtuoso/db [tim@fedora db]$ virtuoso-t -df Wed May 18 2011 16:33:22 INFO: { Loading plugin 1: Type `plain', file `wikiv' in `/usr/lib/virtuoso/hosting' 16:33:22 ERROR: FAILED plugin 1: Unable to locate file } 16:33:22 INFO: { Loading plugin 2: Type `plain', file `mediawiki' in `/usr/lib/virtuoso/hosting' 16:33:22 ERROR: FAILED plugin 2: Unable to locate file } 16:33:22 INFO: { Loading plugin 3: Type `plain', file `creolewiki' in `/usr/lib/virtuoso/hosting' 16:33:22 ERROR: FAILED plugin 3: Unable to locate file } 16:33:22 INFO: OpenLink Virtuoso Universal Server 16:33:22 INFO: Version 06.01.3127-pthreads for Linux as of Jul 22 2010 16:33:22 INFO: uses parts of OpenSSL, PCRE, Html Tidy 16:33:22 INFO: SQL Optimizer enabled (max 1000 layouts) 16:33:23 INFO: Compiler unit is timed at 0.003372 msec 16:33:26 INFO: Checkpoint started 16:33:26 INFO: Roll forward started 16:33:26 INFO: Roll forward complete 16:33:26 INFO: Checkpoint started 16:33:26 INFO: Checkpoint finished, log reused 16:33:27 INFO: Checkpoint started 16:33:27 INFO: Checkpoint finished, log reused 16:33:27 INFO: Checkpoint started 16:33:27 INFO: Checkpoint finished, log reused 16:33:27 INFO: Checkpoint started 16:33:27 INFO: Checkpoint finished, log reused 16:33:27 INFO: HTTP/WebDAV server online at 8890 16:33:27 INFO: Server online at 1111 (pid 2260)
http://hostname:8890/
.
/etc/odbc.ini
to contain the following configuration:
[Local Virtuoso] Driver=/usr/lib/virtodbc_r.so Address=127.0.0.1 Port=1111 UID=dba
[tim@fedora ~]$ /usr/libexec/virtuoso/isql "DSN=Local Virtuoso;UID=dba;PWD=dba" OpenLink Interactive SQL (ODBC), version 0.9849b. Type HELP; for help and EXIT; to exit. SQL> tables; connected with connection string "DSN=Local Virtuoso;UID=dba;PWD=dba". Completed as: "DSN=Local Virtuoso;UID=dba;PWD=dba;HOST=127.0.0.1", length=49. Connected to OpenLink Virtuoso Driver: 06.01.3127 OpenLink Virtuoso ODBC Driver Showing SQLTables of tables like 'NULL.NULL.NULL', tabletype/colname like 'NULL' TABLE_QUALIFIER TABLE_OWNER TABLE_NAME TABLE_TYPE REMARKS VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR _______________________________________________________________________________ DB DBA ADMIN_SESSION SYSTEM TABLE NULL DB DBA ADM_OPT_ARRAY_TO_RS_PVIEW SYSTEM TABLE NULL DB DBA ADM_XML_VIEWS SYSTEM TABLE NULL DB DBA ALL_COL_HIST SYSTEM TABLE NULL
Note: Useful prior reading: please see the pages VOSBuild and VOSMake in the VOS Wiki.
Proceed to install the required build dependencies:
[tim@fedora C]$ sudo yum install autoconf automake libtool flex bison gperf \ gawk m4 make openssl-devel readline-devel [sudo] password for tim: Loaded plugins: langpacks, presto, refresh-packagekit Adding en_GB to language list Setting up Install Process Package gawk-3.1.8-3.fc14.i686 already installed and latest version Package m4-1.4.14-1.fc14.i686 already installed and latest version Package 1:make-3.82-3.fc14.i686 already installed and latest version Resolving Dependencies --> Running transaction check ---> Package autoconf.noarch 0:2.66-2.fc14 set to be installed ... Installing : autoconf-2.66-2.fc14.noarch 28/31 Installing : automake-1.11.1-5.fc14.noarch 29/31 Installing : libtool-2.2.10-3.fc14.i686 30/31 Installing : openssl-devel-1.0.0d-1.fc14.i686 31/31 Installed: autoconf.noarch 0:2.66-2.fc14 automake.noarch 0:1.11.1-5.fc14 bison.i686 0:2.4.3-1.fc14 flex.i686 0:2.5.35-11.fc14 gperf.i686 0:3.0.4-2.fc14 libtool.i686 0:2.2.10-3.fc14 openssl-devel.i686 0:1.0.0d-1.fc14 ...
Download the latest VOS archive (source tarball such as virtuoso-opensource-6.1.3.tar.gz
) from GitHub and unpack it:
[tim@fedora C]$ tar xvpfz virtuoso-opensource-6.1.3.tar.gz virtuoso-opensource-6.1.3/ virtuoso-opensource-6.1.3/bin/ virtuoso-opensource-6.1.3/bin/installer/ virtuoso-opensource-6.1.3/bin/installer/virtuoso.ini ... [tim@fedora C]$ cd virtuoso-opensource-6.1.3 [tim@fedora virtuoso-opensource-6.1.3]$
[tim@fedora virtuoso-opensource-6.1.3]$ ./configure --prefix=/usr/local/ \ > --with-readline --program-transform-name="s/isql/isql-v/" checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk ...
/usr/local/lib/
/usr/local/bin
/usr/local/share/virtuoso/vad
/usr/local/share/virtuoso/doc
/usr/local/var/lib/virtuoso/db
/usr/local/var/lib/virtuoso/vsp
--bindir
, --libdir
, etc.
--with-layout={GNU|Debian|Gentoo|RedHat|FreeBSD|opt|OpenLink}
opt
" means a prefix of /opt
and OpenLink
is the default, detailed above).Unfortunately, both unixODBC and Virtutoso provide a command `isql', used to access data-sources from the command-line (in unixODBC, an ODBC datasource; in Virtuoso, the SQL interface).
In order to allow both packages to coexist, it is reasonable to rename Virutoso's isql command to isql-v.
Given that we are installing Virtuoso from source to a different prefix (/usr/local
), it is not absolutely necessary to do the same here, but to avoid having to specify different PATH considerations and make life easier, the configure command above reflects this as well.
[tim@fedora virtuoso-opensource-6.1.3]$ nice make Making all in . make[1]: Entering directory `/home/tim/C/virtuoso-opensource-6.1.3' make[1]: Nothing to be done for `all-am'. make[1]: Leaving directory `/home/tim/C/virtuoso-opensource-6.1.3' Making all in docsrc make[1]: Entering directory `/home/tim/C/virtuoso-opensource-6.1.3/docsrc' ... make[2]: Nothing to be done for `all-am'. make[2]: Leaving directory `/home/tim/C/virtuoso-opensource-6.1.3/appsrc' make[1]: Leaving directory `/home/tim/C/virtuoso-opensource-6.1.3/appsrc' [tim@fedora virtuoso-opensource-6.1.3]$
[tim@fedora virtuoso-opensource-6.1.3]$ nice make check
[tim@fedora virtuoso-opensource-6.1.3]$ sudo make install [sudo] password for tim: Making install in . make[1]: Entering directory `/home/tim/C/virtuoso-opensource-6.1.3' make[2]: Entering directory `/home/tim/C/virtuoso-opensource-6.1.3' make[2]: Nothing to be done for `install-exec-am'. test -z "/usr/local/share/virtuoso/doc" || /bin/mkdir -p "/usr/local/share/virtuoso/doc" /usr/bin/install -c -m 644 AUTHORS COPYING CREDITS INSTALL ...
[tim@fedora virtuoso-opensource-6.1.3]$ cd /usr/local/var/lib/virtuoso/db/ [tim@fedora db]$ ls virtuoso.ini virtuoso.ini.sample
[tim@fedora db]$ virtuoso-t -df Thu May 19 2011 01:33:03 INFO: { Loading plugin 1: Type `plain', file `wikiv' in `/usr/local/lib/virtuoso/hosting' 01:33:03 INFO: WikiV version 0.6 from OpenLink Software 01:33:03 INFO: Support functions for WikiV collaboration tool 01:33:03 INFO: SUCCESS plugin 1: loaded from /usr/local/lib/virtuoso/hosting/wikiv.so } 01:33:03 INFO: { Loading plugin 2: Type `plain', file `mediawiki' in `/usr/local/lib/virtuoso/hosting' ... 01:33:17 INFO: Checkpoint finished, log reused 01:33:17 INFO: Checkpoint started 01:33:18 INFO: Checkpoint finished, log reused 01:33:18 INFO: HTTP/WebDAV server online at 8890 01:33:18 INFO: Server online at 1111 (pid 27873)
You can access the Conductor menu by pointing your web-browser at http://localhost:8890/conductor/ (substitute hostname as appropriate).
From the Conductor you can manage users and automated backups, install VAD packages, execute SQL commands in a web-based iSQL tool, configure the RDF Sponger and loads more.
There are two system users of immediate importance: dba (the relational data administrative account) and dav (the WebDAV adminstrative account). By default both these accounts have their passwords set the same as the respective usernames; it is highly advised that you change these as soon as possible for security reasons.
Virtuoso provides a SQL/ODBC listener on port 1111/tcp. You can connect directly to this and execute SQL statements using the isql tool:
[tim@fedora ~]$ /usr/local/bin/isql-v OpenLink Interactive SQL (Virtuoso), version 0.9849b. Type HELP; for help and EXIT; to exit. SQL> tables; Connected to OpenLink Virtuoso Driver: 06.01.3127 OpenLink Virtuoso ODBC Driver Showing SQLTables of tables like 'NULL.NULL.NULL', tabletype/colname like 'NULL' TABLE_QUALIFIER TABLE_OWNER TABLE_NAME TABLE_TYPE REMARKS VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR _______________________________________________________________________________ DB DBA ADMIN_SESSION SYSTEM TABLE NULL DB DBA ADM_OPT_ARRAY_TO_RS_PVIEW SYSTEM TABLE NULL [...]
Virtuoso is highly configurable: the same executables and packages will service anything from a small "lite-mode" installation with a database of 10Mb up to a huge multi-user enterprise installation with terabytes of data.
The defaults with Virtuoso Open-Source give a 160MB process size in memory, about 29MB database and total 237MB footprint on disk; this has 20 threads running for database and/or web-server use.
The wiki document VOSScale describes how to scale Virtuoso in some detail.