Installation Terminus db server on Ubuntu on Windows

Hi all, i’ve just heard about TerminusDB on Solid Forum, and i wanted to try.
But my windows machine does’nt have enough mem to support docker, so i switched to Ubuntu on Windows.
using this install https://github.com/terminusdb/terminusdb-server/blob/master/docs/BUILD.md#debian-or-ubuntu

I encountered an ssl error … Any idea how i can resolve this issue ? thxs

Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 7.2.3)
Copyright (c) 1990-2015 University of Amsterdam, VU Amsterdam
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.
Please visit http://www.swi-prolog.org for details.

For help, use ?- help(Topic). or ?- apropos(Word).

?- pack_install(terminus_store_prolog).
% Contacting server at http://www.swi-prolog.org/pack/query ...
ERROR: SSL(14090086) ssl3_get_server_certificate: certificate verify failed
?-
1 Like

Hi @Smag0,

Just to confirm - Did you sudo apt update and sudo apt upgrade after installing Ubuntu on Windows?

Aram

1 Like

hi @aram, thxs for considering my issue.
Oh, sorry i was in ubuntu 16, i will try ubuntu 20 (from Microsoft Store)
-> some issue with rust install same as https://github.com/rust-lang/rustup/issues/2293
-> resolved by https://github.com/microsoft/WSL/issues/4898#issuecomment-633771079

then running pack_install(terminus_store_prolog). i encountered this issue swi-prolog.discourse.group/t/www-swi-prolog-org-goes-https/811/3

now i got this one

$ ./start.pl
[...]
ERROR: Run TerminusDB using SWI-Prolog version 8.1.11 or 8.1.10 or 8.0.3, you are on 7.6.4

so i upgraded h ttps://wwu-pi .github.io /tutorials/lectures/lsp/010_install_swi_prolog.html
(as new contrib i can’t post more than 2 links :zipper_mouth_face:
I continue :wink:

prolog 8.2.0 was installed but

david@smag:~/terminus-server$ swipl --version
SWI-Prolog version 8.2.0 for x86_64-linux
david@smag:~/terminus-server$ ./start.pl
ERROR: /home/david/terminus-server/library/triplestore.pl:14:
ERROR:    source_sink `library(terminus_store)' does not exist
Warning: /home/david/terminus-server/library/triplestore.pl:14:
Warning:    Goal (directive) failed: triplestore:reexport(library(terminus_store),except([create_named_graph/3,open_named_graph/3]))
% Started server at http://localhost:6363/
ERROR: /home/david/terminus-server/start.pl:21: Initialization goal raised exception:
ERROR: Unknown procedure: triplestore:open_directory_store/2
ERROR: In:
ERROR:   [36] triplestore:open_directory_store('/home/david/terminus-server/storage/db/',_2564)
ERROR:   [35] '<meta-call>'((triplestore: ...,triplestore: ...)) <foreign>
ERROR:   [34] triplestore:db_path('/home/david/terminus-server/storage/db/'),triplestore:(...,...) at /usr/lib/swi-prolog/boot/init.pl:322
ERROR:   [33] <meta call>
ERROR:   [32] with_mutex(sync_storage,(db_path('/home/david/terminus-server/storage/db/'),...,...)) <foreign>
ERROR:   [29] '<meta-call>'(server:(sync_backing_store,...)) <foreign>
ERROR:   [28] setup_call_catcher_cleanup(server:http_handler(...,busy_loading,...),server:(sync_backing_store,...),_2816,server:http_delete_handler(...)) at /usr/lib/swi-prolog/boot/init.pl:564
ERROR:   [26] server:server([]) at /home/david/terminus-server/library/server.pl:50
ERROR:   [25] main([]) at /home/david/terminus-server/start.pl:159
ERROR:   [24] catch(user:main([]),_2952,user:throw(_2974)) at /usr/lib/swi-prolog/boot/init.pl:482
ERROR:   [23] catch_with_backtrace(user:main([]),_3006,user:throw(_3028)) at /usr/lib/swi-prolog/boot/init.pl:532
ERROR:
ERROR: Note: some frames are missing due to last-call optimization.
ERROR: Re-run your program in debug mode (:- debug.) to get more detail.
ERROR: Run TerminusDB using SWI-Prolog version 8.1.11 or 8.1.10 or 8.0.3, you are on 8.2.0

and I can’t install 8.1.11 as needed :

david@smag:~/terminus-server$ sudo apt list swi-prolog
Listing... Done
swi-prolog/focal 8.2.0-4-gaf1ad4bf8-focalppa2 amd64
N: There is 1 additional version. Please use the '-a' switch to see it
david@smag:~/terminus-server$ sudo apt list swi-prolog -a
Listing... Done
swi-prolog/focal 8.2.0-4-gaf1ad4bf8-focalppa2 amd64
swi-prolog/focal 7.6.4+dfsg-2ubuntu2 amd64

david@smag:~/terminus-server$

Any idea ? Do you plan to migrate to Prolog 8.2.0 ?

which must i install ? http s://launchpad.net/~swi-prolog/+archive/ubuntu/devel

1 Like

Thank you for such a detailed post, @Smag0, that’s very helpful.

It seems the only solution is to replicate the steps in the Terminus team’s Dockerfiles in your Ubuntu install.

I’ve followed these build steps (based on swi-prolog-docker/Dockerfile - I can’t post github links anymore either lol) on a fresh Ubuntu 18.04 LTS install in WSL to install SWI Prolog 8.0.3:

sudo apt update
sudo apt upgrade
sudo apt-get install -y --no-install-recommends libarchive13 libgmp10 libossp-uuid16 libssl1.1 ca-certificates libpcre3 libedit2 libncurses5
sudo apt-get install -y --no-install-recommends make cmake gcc g++ wget git autoconf libarchive-dev libgmp-dev libossp-uuid-dev libpcre3-dev libreadline-dev libedit-dev libssl-dev zlib1g-dev libdb-dev
wget http://www.swi-prolog.org/download/stable/src/swipl-8.0.3.tar.gz
tar -xzf swipl-8.0.3.tar.gz
mkdir swipl-8.0.3/build
cd swipl-8.0.3/build
cmake -DCMAKE_BUILD_TYPE=Release  -DSWIPL_PACKAGES_X=OFF -DSWIPL_PACKAGES_JAVA=OFF -DCMAKE_INSTALL_PREFIX=/usr ..
make
sudo make install

Verify that SWI Prolog v 8.0.3 is now installed by running swipl.

Then continuing with terminus_store_prolog/Dockerfile, install rust and terminus_store_prolog:

sudo apt-get install -y --no-install-recommends git build-essential curl ca-certificates make
curl https://sh.rustup.rs -sSf | bash -s -- -y
echo 'export PATH="$HOME/.cargo/bin:${PATH}"' >> ~/.profile
source ~/.profile
swipl
?- pack_install(terminus_store_prolog).

Finally follow terminusdb-server/docs/BUILD.md to install Terminus Server:

git clone https://github.com/terminusdb/terminusdb-server
cd terminusdb-server
git submodule init
git submodule update
utils/db_util -k "my_password_here" -s "my_server_name_here"
./start.pl

Terminus is now running on http://localhost:6363/console.

Now this is where I get stuck: The page is asking for a “Server API Key”. Let me know if you figure out how to get past that. :sweat_smile:. I figured out that this is solved somehow by passing in the AUTO_LOGIN setting to db_util (that’s what works for the Docker image), but I still can’t figure out how to make it work natively.

1 Like

for “The page is asking for a “Server API Key”” the build.md says “You need to set the admin user password which is used as a super-user API key for access”

So , now, i’m in , THXS

But were to go now ? Any good tuto to suggest or those https://github.com/terminusdb/terminus-tutorials ?

2 Likes

Hooray, great job!

I recommend the Bike Share Data Tutorial.

1 Like

Great job @aram and welcome @Smag0! We are planing a windows native release in the not too distant future so hopefully all these Docker on windows problems will be behind us soon. I had to upgrade to windows pro (and give MSFT 150) to install docker desktop - and then it ate all my memory - not a great experience!

Launch of the alpha version of 2.0 with a new console and some great new features is imminent.

Nice to see you here, @Smag0 and great you got this running :+1:

1 Like

@luke
Well docker is a good option for those who have a machine with sufficient resource. And I don’t so it’s cool to have an alternative to docker
@aschrijver if you share cool projects, I take a look even if we are on different boats, we go to the same direction :blush:

Nb: Prolog 8.0.3 does not seem to be a stable/ easy to install version

2 Likes

Unfortunately a git pull for v2 broke my install

Hi @Smag0 sorry to hear that. Do you mind raising an issue at the quickstart repo: https://github.com/terminusdb/terminusdb-quickstart/issues/new?assignees=&labels=&template=bug_report.md&title= so I can pass it to the ops team to have a look?