sudo apt-get update
Debian carries pre-built binary packages of Virtuoso; you have the option of installing Virtuoso using these, or if a newer version is available upstream or you want to specify your own configuration options, you can build from source directly.
tim@debian:~$ apt-cache search '^virtuoso' virtuoso-opensource - high-performance database virtuoso-server - high-performance database - server dependency package virtuoso-minimal - high-performance database - core dependency package virtuoso-opensource-6.1-bin - high-performance database - binaries virtuoso-opensource-6.1-common - high-performance database - common files virtuoso-opensource-6.1 - high-performance database - support files virtuoso-vsp-startpage - high-performance database - web interface files virtuoso-vad-bpel - high-performance database - BPEL module virtuoso-vad-conductor - high-performance database - conductor module virtuoso-vad-demo - high-performance database - demo module virtuoso-vad-doc - high-performance database - documentation module virtuoso-vad-isparql - high-performance database - iSPARQL module virtuoso-vad-ods - high-performance database - Open Data Spaces module virtuoso-vad-cartridges - high-performance database - Cartridges module virtuoso-vad-sparqldemo - high-performance database - SPARQL demo module virtuoso-vad-syncml - high-performance database - SyncML module virtuoso-vad-tutorial - high-performance database - tutorial module
libvirtodbc0 - high-performance database - ODBC libraries libvirtuoso5.5-cil - high-performance database - Mono assemblies
tim@debian:~$ sudo aptitude install virtuoso-opensource [sudo] password for tim: The following NEW packages will be installed: dbus{a} fontconfig-config{a} ghostscript{a} gsfonts{a} libavahi-client3{a} libavahi-common-data{a} libavahi-common3{a} libcups2{a} libcupsimage2{a} libdbus-1-3{a} libfontconfig1{a} libglib2.0-0{a} libglib2.0-data{a} libgs8{a} libjasper1{a} libjbig2dec0{a} libjpeg62{a} liblcms1{a} liblqr-1-0{a} libltdl7{a} libmagickcore3{a} libmagickwand3{a} libpaper-utils{a} libpaper1{a} libpng12-0{a} libreadline5{a} libtiff4{a} libvirtodbc0{a} libwbxml2-0{a} odbcinst{a} odbcinst1debian2{a} shared-mime-info{a} ttf-dejavu-core{a} virtuoso-opensource virtuoso-opensource-6.1{a} virtuoso-opensource-6.1-bin{a} virtuoso-opensource-6.1-common{a} virtuoso-server{a} virtuoso-vad-conductor{a} virtuoso-vsp-startpage{a} 0 packages upgraded, 40 newly installed, 0 to remove and 0 not upgraded. Need to get 25.6 MB of archives. After unpacking 69.5 MB will be used. Do you want to continue? [Y/n/?]
Setting up libvirtodbc0 (6.1.2+dfsg1-1) ... Setting up virtuoso-opensource-6.1 (6.1.2+dfsg1-1) ... Starting Virtuoso OpenSource Edition 6.1 : virtuoso-opensource-6.1. Setting up virtuoso-opensource (6.1.2+dfsg1-1) ... Setting up virtuoso-server (6.1.2+dfsg1-1) ... Setting up virtuoso-vad-conductor (6.1.2+dfsg1-1) ... Setting up virtuoso-vsp-startpage (6.1.2+dfsg1-1) ... tim@debian:~$
/usr/bin/isql-vt
/usr/bin/isqlw-vt
/usr/bin/virt_mail
/usr/bin/virtuoso-t
/etc/virtuoso-opensource-6.1/virtuoso.ini
; the database itself lives in /var/lib/virtuoso-opensource-6.1/db/
(a similar layout to MySQL?, PostgreSQL?, etc.).
tim@debian:~$ sudo apt-get install virtuoso-vad-{isparql,ods,cartridges,tutorial} Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: virtuoso-vad-isparql virtuoso-vad-ods virtuoso-vad-cartridges virtuoso-vad-tutorial 0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded. Need to get 13.7 MB of archives. [...] Unpacking virtuoso-vad-tutorial (from .../virtuoso-vad-tutorial_6.1.2+dfsg1-1_all.deb) ... Setting up virtuoso-vad-isparql (6.1.2+dfsg1-1) ... Setting up virtuoso-vad-ods (6.1.2+dfsg1-1) ... Setting up virtuoso-vad-cartridges (6.1.2+dfsg1-1) ... Setting up virtuoso-vad-tutorial (6.1.2+dfsg1-1) ... tim@debian:~$
There are 2 ways to build Virtuoso from source: using Debian packges or the generic source build that works everywhere.
tim@debian:~/C$ sudo aptitude install dpkg-dev build-essential [sudo] password for tim: The following NEW packages will be installed: build-essential bzip2{a} dpkg-dev g++{a} g++-4.4{a} libalgorithm-diff-perl{a} libalgorithm-diff-xs-perl{a} libalgorithm-merge-perl{a} libdpkg-perl{a} libstdc++6-4.4-dev{a} libtimedate-perl{a} 0 packages upgraded, 11 newly installed, 0 to remove and 0 not upgraded. ...
tim@debian:~$ mkdir C tim@debian:~$ cd C tim@debian:~/C$ apt-get source virtuoso-opensource Reading package lists... Done Building dependency tree Reading state information... Done NOTICE: 'virtuoso-opensource' packaging is maintained in the 'Git' version control system at: git://scm.alioth.debian.org/git/pkg-virtuoso/pkg-virtuoso.git Need to get 69.4 MB of source archives. Get:1 http://ftp.uk.debian.org/debian/ squeeze/main virtuoso-opensource 6.1.2+dfsg1-1 (dsc) [3,260 B] dfsg1-1.dsc dpkg-source: info: extracting virtuoso-opensource in virtuoso-opensource-6.1.2+dfsg1 dpkg-source: info: unpacking virtuoso-opensource_6.1.2+dfsg1.orig.tar.gz dpkg-source: info: applying virtuoso-opensource_6.1.2+dfsg1-1.diff.gz
tim@debian:~/C/virtuoso-opensource-6.1.2+dfsg1$ sudo aptitude build-dep virtuoso-opensource The following NEW packages will be installed: autoconf automake autopoint{a} autotools-dev binfmt-support{a} bison cdbs ... update-alternatives: using /usr/bin/sn to provide /usr/bin/cli-sn (strong-name-tool) in auto mode. Setting up cli-common-dev (0.7.1) ...
tim@debian:~/C/virtuoso-opensource-6.1.2+dfsg1$ dpkg-buildpackage -rfakeroot dpkg-buildpackage: export CFLAGS from dpkg-buildflags (origin: vendor): -g -O2 dpkg-buildpackage: export CPPFLAGS from dpkg-buildflags (origin: vendor): dpkg-buildpackage: export CXXFLAGS from dpkg-buildflags (origin: vendor): -g -O2 dpkg-buildpackage: export FFLAGS from dpkg-buildflags (origin: vendor): -g -O2 ... dpkg-deb: building package `libvirtuoso5.5-cil' in `../libvirtuoso5.5-cil_6.1.2+dfsg1-1_i386.deb'. dpkg-genchanges >../virtuoso-opensource_6.1.2+dfsg1-1_i386.changes dpkg-genchanges: including full source code in upload dpkg-source --after-build virtuoso-opensource-6.1.2+dfsg1 dpkg-buildpackage: full upload (original source is included) tim@debian:~/C/virtuoso-opensource-6.1.2+dfsg1$
tim@debian:~/C$ ls libvirtodbc0_6.1.2+dfsg1-1_i386.deb libvirtuoso5.5-cil_6.1.2+dfsg1-1_i386.deb virtuoso-minimal_6.1.2+dfsg1-1_all.deb virtuoso-opensource-6.1.2+dfsg1 virtuoso-opensource_6.1.2+dfsg1-1_all.deb virtuoso-opensource_6.1.2+dfsg1-1.diff.gz virtuoso-opensource_6.1.2+dfsg1-1.dsc virtuoso-opensource_6.1.2+dfsg1-1_i386.changes virtuoso-opensource_6.1.2+dfsg1.orig.tar.gz virtuoso-opensource-6.1_6.1.2+dfsg1-1_i386.deb virtuoso-opensource-6.1-bin_6.1.2+dfsg1-1_i386.deb virtuoso-opensource-6.1-common_6.1.2+dfsg1-1_i386.deb virtuoso-server_6.1.2+dfsg1-1_all.deb virtuoso-vad-bpel_6.1.2+dfsg1-1_all.deb virtuoso-vad-conductor_6.1.2+dfsg1-1_all.deb virtuoso-vad-demo_6.1.2+dfsg1-1_all.deb virtuoso-vad-doc_6.1.2+dfsg1-1_all.deb virtuoso-vad-isparql_6.1.2+dfsg1-1_all.deb virtuoso-vad-ods_6.1.2+dfsg1-1_all.deb virtuoso-vad-cartridges_6.1.2+dfsg1-1_all.deb virtuoso-vad-sparqldemo_6.1.2+dfsg1-1_all.deb virtuoso-vad-syncml_6.1.2+dfsg1-1_all.deb virtuoso-vad-tutorial_6.1.2+dfsg1-1_all.deb virtuoso-vsp-startpage_6.1.2+dfsg1-1_all.deb tim@debian:~/C$ sudo dpkg -i *deb (Reading database ... 53725 files and directories currently installed.) Preparing to replace libvirtodbc0 6.1.2+dfsg1-1 (using libvirtodbc0_6.1.2+dfsg1-1_i386.deb) ... Virtuoso has been deleted (if it existed at all) because its usage count became zero Unpacking replacement libvirtodbc0 ... Selecting previously deselected package libvirtuoso5.5-cil. Unpacking libvirtuoso5.5-cil (from libvirtuoso5.5-cil_6.1.2+dfsg1-1_i386.deb) ... Selecting previously deselected package virtuoso-minimal. Unpacking virtuoso-minimal (from virtuoso-minimal_6.1.2+dfsg1-1_all.deb) ... Preparing to replace virtuoso-opensource 6.1.2+dfsg1-1 (using virtuoso-opensource_6.1.2+dfsg1-1_all.deb) ...
Note: Useful prior reading: please see the pages VOSBuild and VOSMake in the VOS Wiki.
Proceed to install the required build dependencies:
tim@debian:~$ sudo aptitude install dpkg-dev build-essential autoconf automake \ libtool flex bison gperf gawk m4 make odbcinst libxml2-dev libssl-dev \ libreadline-dev The following NEW packages will be installed: autoconf automake autotools-dev{a} bison build-essential bzip2{a} ...
Download the latest VOS archive (source tarball such as virtuoso-opensource-6.1.3.tar.gz
) from GitHub and unpack it:
tim@debian:~/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 virtuoso-opensource-6.1.3/bin/installer/demo.ini ...
tim@debian:~/C$ cd virtuoso-opensource-6.1.3/ tim@debian:~/C/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 Virtuoso provide a command `isql', used to access data-sources from the commandline (in unixODBC, an ODBC DSN; in Virtuoso, the SQL interface).
In order to allow both packages to coexist, Debian rename Virtuoso's isql command to isql-vt.
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@debian:~/C/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 ...
tim@debian:~/C/virtuoso-opensource-6.1.3$ nice make check
tim@debian:~/C/virtuoso-opensource-6.1.3$ sudo make install
tim@debian:~/C/virtuoso-opensource-6.1.3$ cd /usr/local/var/lib/virtuoso/db/ tim@debian:/usr/local/var/lib/virtuoso/db$ ls virtuoso.ini
tim@debian:/usr/local/var/lib/virtuoso/db$ virtuoso-t -df Thu Apr 28 2011 15:20:13 INFO: { Loading plugin 1: Type `plain', file `wikiv' in `/usr/local/lib/virtuoso/hosting' 15:20:13 INFO: WikiV version 0.6 from OpenLink Software 15:20:13 INFO: Support functions for WikiV collaboration tool 15:20:13 INFO: SUCCESS plugin 1: loaded from /usr/local/lib/virtuoso/hosting/wikiv.so } ... 15:20:23 INFO: Checkpoint started 15:20:23 INFO: Checkpoint finished, log reused 15:20:23 INFO: HTTP/WebDAV server online at 8890 15:20:23 INFO: Server online at 1111 (pid 23912)
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 (isql-v) tool:
tim@debian:~$ 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.