-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcontent_install.html
More file actions
238 lines (204 loc) · 8.98 KB
/
Copy pathcontent_install.html
File metadata and controls
238 lines (204 loc) · 8.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>SECONDO</title>
<meta name="description" content="extensible database system">
<link rel="stylesheet" type="text/css" href="secondo.css">
<link rel="shortcut icon" href="favicon.ico">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
ol li { margin-bottom: 1em; }
</style>
</head>
<body onload="window.status='SECONDO - An Extensible Database System'">
<div align="center">
<img alt="SECONDO" src="images/logo.gif" height="107" width="598"> </div>
<h1> Installation Instructions </h1>
This page explains how to install <span class="secondo">Secondo</span> and the tools it
requires on your computer. The currently supported and CI-verified paths are a build from
sources on <b>Ubuntu / Debian</b>, precompiled <tt>.deb</tt> binary packages for Ubuntu,
and a build on <b>macOS</b> using <a href="https://brew.sh/">Homebrew</a>. Older
distributions are covered by the
<a href="content_install_legacy.html">historical installation guides</a>. The build of
<span class="secondo">Secondo</span> from sources itself is explained on the
<a href="content_sources.html">Sources</a> page.
<h2> Which installation is right for you? </h2>
<ul>
<li> Just want to try <span class="secondo">Secondo</span> on Ubuntu →
<a href="#deb">binary <tt>.deb</tt> packages (apt-get)</a> </li>
<li> Build or extend <span class="secondo">Secondo</span> on Ubuntu / Debian →
<a href="#ubuntu">installation from sources</a> </li>
<li> macOS → <a href="#macos">installation with Homebrew</a> </li>
<li> Older distributions (Fedora, SuSE, older Ubuntu) →
<a href="content_install_legacy.html">historical installation guides</a> </li>
</ul>
<h2 id="ubuntu"> Installation on Ubuntu / Debian (from sources) </h2>
<p>
The steps below install the tools required to compile
<span class="secondo">Secondo</span> and then build the system from sources. They are
verified in continuous integration on <b>Ubuntu 22.04, 24.04 and 26.04</b> (on the
Intel/AMD <code>x86_64</code> architecture). <b>Debian 13 (Trixie)</b> works in exactly
the same way; the package names below are identical on Debian.
</p>
<ol>
<li>
<b>Install the build tools and libraries.</b> These include the C/C++ compiler, Berkeley DB,
the Boost libraries, a Java Development Kit (<code>default-jdk</code>) for the Java GUI and
optimizer server, and SWI-Prolog with its Java bridge (JPL) for the optimizer:
<pre>
sudo apt-get update
sudo apt-get install flex bison gcc g++ build-essential \
libdb5.3 libdb5.3-dev libdb5.3++ libdb5.3++-dev db5.3-util \
libjpeg-dev libgsl0-dev libreadline-dev librecode-dev \
libgmp-dev libgmp10 libncurses-dev libxml2-dev libboost-all-dev \
libbison-dev libfl-dev libquadmath0 nlohmann-json3-dev \
default-jdk swi-prolog swi-prolog-nox swi-prolog-java
</pre>
</li>
<li>
<b>Get the sources and build <span class="secondo">Secondo</span>.</b> The build
environment (compiler, Berkeley DB, SWI-Prolog and JPL paths, ...) is derived
automatically from the installed tools; you only have to set
<code>SECONDO_BUILD_DIR</code> and source the detection script:
<pre>
export SECONDO_BUILD_DIR=$HOME/secondo
source $SECONDO_BUILD_DIR/CM-Scripts/secondo-detect.sh
</pre>
It is convenient to add these two lines to your <code>~/.bashrc</code>, so the
environment is set up automatically in every new terminal:
<pre>
echo 'export SECONDO_BUILD_DIR=$HOME/secondo' >> ~/.bashrc
echo 'source $SECONDO_BUILD_DIR/CM-Scripts/secondo-detect.sh' >> ~/.bashrc
</pre>
Then download the sources and build the system as described on the
<a href="content_sources.html">Sources</a> page (in short: run <code>make</code>
in <code>$SECONDO_BUILD_DIR</code>).
</li>
</ol>
<h2 id="deb"> Binary Installation via <tt>.deb</tt> Packages (Ubuntu, apt-get) </h2>
<p>
For users who just want to try <span class="secondo">Secondo</span> without compiling it,
we provide precompiled <tt>.deb</tt> packages for Ubuntu 22.04, 24.04 and 26.04. They
install <span class="secondo">Secondo</span> and all of its dependencies within a few
minutes via <tt>apt-get</tt>, and are the recommended starting point for new users.
Developers who want to build their own extensions should instead build
<a href="#ubuntu">from sources</a> as described above.
</p>
<p>
See the
<a href="files/Installation/Ubuntu/content_Installation_repos.html">Ubuntu installation
guide using apt-get</a> for the full instructions. Note that these packages are built for
the <code>x86_64</code>/<code>amd64</code> architecture only; on other architectures
(e.g. arm64) please <a href="#ubuntu">build from sources</a>.
</p>
<h2 id="macos">Installation on macOS (Intel and Apple Silicon)</h2>
<p>
On macOS, all tools required by <span class="secondo">Secondo</span> are installed
with the <a href="https://brew.sh/">Homebrew</a> package manager — a separate
SDK download is no longer needed. The steps below are verified on
<b>macOS 15 (Sequoia)</b> and <b>macOS 26 (Tahoe)</b>, on both Intel
(x86_64) and Apple Silicon (arm64). Enter the commands
in a terminal.
</p>
<ol>
<li>
<b>Install the Xcode command line tools</b> (C/C++ compiler, <code>make</code>, system headers):
<pre>
xcode-select --install
</pre>
</li>
<li>
<b>Install Homebrew</b> (skip if it is already present); see
<a href="https://brew.sh/">brew.sh</a>:
<pre>
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
</pre>
</li>
<li>
<b>Install the build tools and libraries:</b>
<pre>
brew install flex bison berkeley-db gsl jpeg-turbo boost gmp libxml2 readline nlohmann-json
</pre>
Homebrew's <code>flex</code> and <code>bison</code> are "keg-only" and are not put
on the <code>PATH</code> automatically. Add them to your <code>~/.zshrc</code>:
<pre>
echo 'export PATH="$(brew --prefix bison)/bin:$(brew --prefix flex)/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
</pre>
</li>
<li>
<b>Install a Java Development Kit (JDK 21).</b> It is used to build the Java GUI
and the optimizer server:
<pre>
brew install openjdk@21
</pre>
Follow the <code>caveats</code> printed by Homebrew to make this JDK visible to the
system (or install an equivalent JDK 21, e.g. Temurin).
</li>
<li>
<b>Install SWI-Prolog with Java (JPL) support.</b> The Prolog
optimizer needs SWI-Prolog, and the
Java-based optimizer server additionally needs its JPL bridge
(<code>jpl.jar</code> and <code>libjpl.dylib</code>). Homebrew's
<code>swi-prolog</code> bottle is built <em>without</em> JPL, so build it from
source with the Java package enabled. Open the formula:
<pre>
brew edit swi-prolog
</pre>
change the CMake option <code>-DSWIPL_PACKAGES_JAVA=OFF</code> to
<code>-DSWIPL_PACKAGES_JAVA=ON</code>, save, and reinstall from source (the JDK
from the previous step must be installed):
<pre>
brew reinstall --build-from-source swi-prolog
</pre>
This places <code>jpl.jar</code> and <code>libjpl.dylib</code> in the SWI-Prolog
library directory, where <span class="secondo">Secondo</span> finds them
automatically. If you do not need the optimizer server, you can instead install
the plain bottle with <code>brew install swi-prolog</code>.
</li>
<li>
<b>Get the sources and build <span class="secondo">Secondo</span>.</b> The build
environment (compiler, Berkeley DB, SWI-Prolog and JPL paths, ...) is derived
automatically from the installed tools; you only have to set
<code>SECONDO_BUILD_DIR</code> and source the detection script:
<pre>
export SECONDO_BUILD_DIR=$HOME/secondo
source $SECONDO_BUILD_DIR/CM-Scripts/secondo-detect.sh
</pre>
It is convenient to add these two lines to your <code>~/.zshrc</code>, so the
environment is set up automatically in every new terminal:
<pre>
echo 'export SECONDO_BUILD_DIR=$HOME/secondo' >> ~/.zshrc
echo 'source $SECONDO_BUILD_DIR/CM-Scripts/secondo-detect.sh' >> ~/.zshrc
</pre>
Then download the sources and build the system as described on the
<a href="content_sources.html">Sources</a> page (in short: run <code>make</code>
in <code>$SECONDO_BUILD_DIR</code>).
</li>
</ol>
<h3>Upgrading the macOS version</h3>
After an upgrade of the macOS operating system, the Xcode developer tools
have to be reinstalled. If you have upgraded your system and the call of <code> make </code>
produces the following error message:
<pre>
xcrun: error: invalid active developer path
</pre>
then you have to reinstall the Xcode developer tools. To do so, start a
terminal and enter:
<pre>
xcode-select --install
</pre>
In the upcoming dialog, click on the button <code>Installation</code> and wait until the
installation is finished. After that, the <code>make</code> process should run
as before.
<h2> Installation Guides for Historical Distributions </h2>
<p>
Older operating-system releases (Fedora, SuSE, and older Ubuntu versions) were installed
with per-version scripts that are no longer maintained. They are kept for reference on the
<a href="content_install_legacy.html">historical installation guides</a> page.
</p>
<div class="footnote">
Last Changed: 2026-07-15 (JNI)
</div>
</body>
</html>