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.