{ "cells": [ { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ ".. index::\n", " single: Installation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Installation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Go and grab an installer package for your operating system and distribution from this [distribution's Latest Release page](https://github.com/canne/dashboard_tactics_pi/releases/latest), expand the _Assets_ tab below the description if you do not see any." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ">**NOTE**: The documentation you are reading is generated from the distribution. If you are adventuring and taking a beta version, make sure that you are reading also its documentation. See the version information on the page (depends of the platform where it can be found, sorry), available also in the page URL." ] }, { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ ".. index::\n", " single: Installation; Platforms" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The platforms and operating system supported:\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Windows 10 (.exe installer - fully tested platform)\n", "- MacOS (.pkg - **not tested as platform**, helper scripts missing)\n", "- Ubuntu 20.04LTS Focal Fossa and distributions similar to it (.deb - fully tested platform)" ] }, { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ ".. index::\n", " single: Installation; Requirements" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Mandatory requirements" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- OpenCPN v5.2 or greater\n", "- Linux: wxWidgets run-time support with wxWebView run-time library (GTK3, not available on GTK2 based Linux distributions by default)" ] }, { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ ".. index::\n", " single: Installation; Plug-In Manager" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## OpenCPN Plug-In Manager" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The plug-in manager of _OpenCPN_ is a great tool to unify the plug-in installation for the best user experience. The tool's catalogue and the plug-ins are pulled from a centralized data retrieval system, proper to OpenCPN.org. Whenever you can, use the OpenCPN Plug-In Manager." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Please be reminded that the OpenCPN Plug-In Manager is not installing the software from the repository from which this document is generated. Therefore you will need to pay attention which version you get and compare that to this document's version." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The features of _DashT_ described in this document are those obtained only - in a guaranteed manner - using an installer provided with a same version number and from the same repository this document has been generated from. You can reach that repository using the version navigation buttons visible somewhere around this page - depending of the format and the platform on which you are reading it." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Reporting issues" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you experience issues with the version of _DashT_ installed by the OpenCPN Plug-In Manager from the OpenCPN.org repository, please report about your issues in corresponding [DashT discussion thread](https://www.cruisersforum.com/forums/f134/dashboard-tactics-dash-t-226601.html) - **not** into the repository where this document has been generated from. Check carefully the version of _DashT_ which has been installed and the source of installation before reporting, no matter where you do report!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Before reporting for this particular software, see the troubleshooting sections for the corresponding software module or instrument. If you think you have found an issue, please describe it in the source software's repository [here](https://github.com/canne/dashboard_tactics_pi/issues) - make also a last attempt to search for your problem's keywords from the issue list, thank you." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Should you decide to open an issue to author's attention, please collect all information requested on the issue template *before* pressing that submit-button, thus avoiding time wasting messaging to collect the requested background information from you, one by one. All information requested is necessary, not to mentionthe screenshots alone! This is [FOSS](https://en.wikipedia.org/wiki/Free_and_open-source_software) and the community who has contributed to this project is proud to bring this software to you, free of charge. But the level of support can be only proportional to the `free` word of the definition - please contribute by making a considerable effort to explain your problem clearly." ] }, { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ ".. index::\n", " single: Installation; Windows\n", ".. index::\n", " single: Windows\n", ".. index::\n", " single: Windows; Installation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## DashT Windows installer" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ">**NOTE**: Unlike the [OpenCPN Plug-In Manager](#OpenCPN-Plug-In-Manager), the _\\*.exe_ installer creates a Windows uninstaller. This is required to uninstall also the [helper scripts](#Installed-helpers). If this is an issue, do not execute the installer but use the [OpenCPN Plug-In Manager](#OpenCPN-Plug-In-Manager). Of course, you may not necessarily get the same software version than this document is describing and the connections to third party systems managed by those helper scripts will not be available." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Inspection (Win)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The installer is an _\\*.exe_ installer which you have downloaded from the repository's _Releases_ (see [Installation](#Installation)). It can be inspected (if not yet done during the downlod) by scanning it with your Windows 10 Microsoft Defender antivirus program or other such product. More antivirus programs can found and used to scan the file in one go at [virustotal.com](http://virustotal.com/)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, to inspect what exactly is contained inside the _\\*.exe_ installer, one can use, for example [7z](https://www.7-zip.org/7z.html) archive manager." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You are also invited to read the [privacy statement](privacy.ipynb#Privacy) and [security policy](security.ipynb#Security) in this documentation. [DashT security page on GitHub](https://github.com/canne/dashboard_tactics_pi/security/policy) provides the latest security status and provides links to open issues." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Install (Win)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once you launch the _\\*.exe_ installer you need to get through the Windows security messages. They may vary and are not explained here. Once you get through, the [Nullsoft Scriptable Install System](https://en.wikipedia.org/wiki/Nullsoft_Scriptable_Install_System) - another great free and open source program - will be launched to install _DashT_ and its [helper scripts](#Installed-helpers)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ">**UPDATING** your _DashT_: If you are using [InfluxDB / Docker](./influxdb/influxdb.ipynb#InfluxDB-/-Docker) you must make sure all Docker services are stopped - it may well be that you are running them with automatic start (if you have shut down or rebooted your system with them running, the services are persistent). In order to **keep your database and other Docker settings safe** and, at the same time make sure that the installation does not stop because of a locked file system please rename the following directory: `\\Users\\Public\\DashT`. This is where all Docker-linked files are located, including your databse. Keep it safe! Do not start the installation/upgrade if you have issues with this point, the installation would also fail in the end." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[(zoom)](img/005_DashT_Installer_NSIS_Windows_Welcome.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ">**NOTE**: The installer does **not** install _OpenCPN_, it [requires OpenCPN](#Mandatory-requirements)! It is an installer which installs an _OpenCPN_ plug-in. Get yourself one from [OpenCPN.org](https://opencpn.org) if you do not have this great open source chart plotter yet." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[(zoom)](img/010_DashT_Installer_NSIS_Windows_License.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The license of the installed software is naturally the same as is it with the _OpenCPN_, [GPL v2](https://en.wikipedia.org/wiki/GNU_General_Public_License#Version_2) - _i.e._ free and open source. There are some dynamic components based on web technologies and third party open source software not using this particular license but they have adapted, and _DashT_ with them the even more permissive [MIT license](https://en.wikipedia.org/wiki/MIT_License). If you use the _DashT_ units which are under MIT-license, you will be asked to accept that license, but only if you actually use those instruments, and only once per instrument." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[(zoom)](img/015_DashT_Installer_NSIS_Windows_Location.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There is most likely no reason to change the default _OpenCPN_ installation location. If you do, probably you know better and do not need to read further." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[(zoom)](img/020_DashT_Installer_NSIS_Windows_Installing.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Installation is pretty fast, but you have still time after the installation to review, with _Show details_ button which files were installed and where, before terminating the installation with `Next >`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[(zoom)](img/025_DashT_Installer_NSIS_Windows_Completing.png)" ] }, { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ ".. index::\n", " single: Windows; Uninstall" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Uninstall (Win)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ">**NOTE**:The Windows uninstaller is registered in Windows under the name _dashboard_tactics_pi_ which is the catalogue name for it in _OpenCPN_." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[(zoom)](img/030_DashT_Installer_NSIS_Windows_Uninstalling.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Search for the uninstaller and launch it using Windows Settings `->` Apps `->` Apps & features." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[(zoom)](img/035_DashT_Installer_NSIS_Windows_Uninstall_dlg.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is very unlikely that you need to change anything in the above first uninstall dialog which appears." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[(zoom)](img/045_DashT_Installer_NSIS_Windows_Uninstall_complete.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Uninstallation should be really fast. This is not a big program, just a plug-in." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[(zoom)](img/055_DashT_Installer_NSIS_Windows_Uninstall_list.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can see which files were actually uninstalled and from where by pressing `Show details` button before pressing `Close`." ] }, { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ ".. index::\n", " single: Troubleshooting; Windows installation\n", ".. index::\n", " single: Windows; Installation troubleshooting" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Troubleshooting (Win)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Installation is pretty fast, and not very verbose if something goes wrong. That is why it is always a good idea use that _Show details_ button and to scan which files were installed and where, before terminating the installation with `Next >`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[(zoom)](img/050_DashT_Installer_NSIS_Windows_Show_Details.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There may be some errors along the way and the installation never finishes. This can be checked by comparing your installation's end to the expected, few last files depicted in the above screenshot." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The completion of the installation is best inspected by observing that a new directory, `\\Users\\Public\\DashT` has appeared. Also, you should have three new desktop buttons for all users, defined in `\\Users\\Public\\Desktop`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If everything looks right but you cannot find _DashT_ from _OpenCPN_ as described in [Getting Started](./gettingstarted.ipynb#Getting-started) chapter, you should get familiar with the _OpenCPN_ log file. On a Windows system it is located in: `\\ProgramData\\opencpn\\opencpn.log`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Take a look at the end of the log file where the most recent start-up logs are located. You can search lines having string \"_dashboard_tactics_pi_\" which is used by _DashT_ for its log messages. There are usually only few such log messages containing this identifier, but if you do not see any it means quite likely that _DashT_ never gets loaded by _OpenCPN_ and that either the installation has completely failed to copy files into right locations, or that there is some compatibility issue - have you [checked the versions](#Mandatory-requirements)? Otherwise the log messages can give you a hint what went wrong. Anyway, the log file is always reguested (zipped, thanks!) if you contact no matter who for community help." ] }, { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ ".. index::\n", " single: Installation; Linux\n", ".. index::\n", " single: Linux\n", ".. index::\n", " single: Linux; Installation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## DashT Linux (deb) package" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "_DashT_ local installation package contains post-installations scripts (see section below). Since the _Ubuntu Software_ tool in v20.04LTS seems to ignore `.deb` the suggested tool on it, and in general is is [gdebi](https://launchpad.net/gdebi)_(1)_ to install / uninstall the _DashT_ local file `.deb` package. If you do not have `gdebi` in your system, install it with `sudo apt install gdebi-core`. Another tool we are going to use below is `dpkg`_(1)_ which is available by default." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ">**NOTE**: There is a graphical tool available for `gdebi`, named `gdebi-gtk`. However, to make the document most suitable for all platforms without explaining the differences with distributions the choice is to concentrate on command line tools only. However, if you install the _DashT_ with `gdebi-gtk` the result will be the same - it a GUI to `gdebi`. Use the method which best suits your way of working with your Linux system, of course; you are not **obliged** to follow all verification steps below. They are provided only for total transparency - we respect your system's integrity and want to keep **you** on the driver's seat!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Inspection (Linux)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "After the download of the _\\*.deb_ file from the distribution repository we can list its contents to see what we can expect from the installation. To get the list without installing, we use:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```\n", "dpkg -c dashboard_tactics_pi_1.99.102-ov52-1_amd64.deb\n", "~/Downloads$ dpkg -c dashboard_tactics_pi_1.99.102-ov52-1_amd64.deb\n", "drwxr-xr-x root/root 0 2020-09-08 23:35 ./usr/\n", "drwxr-xr-x root/root 0 2020-09-08 23:35 ./usr/lib/\n", "drwxr-xr-x root/root 0 2020-09-08 23:35 ./usr/lib/opencpn/\n", "-rw-r--r-- root/root 2206200 2020-09-08 23:35 ./usr/lib/opencpn/libdashboard_tactics_pi.so\n", "...\n", "-rw-r--r-- root/root 25190 2020-09-08 23:30 ./usr/share/opencpn/\n", "plugins/dashboard_tactics_pi/data/streamout_template_http.json\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What about the post-install scripts, how I can study them before launching the installation?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```\n", "dpkg -e ../dashboard_tactics_pi_1.99.102-ov52-1_amd64.deb\n", "cd DEBIAN\n", "ls\n", "control md5sums postinst postrm\n", "cat postinst\n", "#!/usr/bin/env bash\n", "set -e\n", "# /* $Id: postinst, v1.0 2019/11/30 VaderDarth Exp $ */\n", "#\n", "# Post-install script for Debian package dashboard_tactics_pi.deb\n", "...\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can observe that the post-install scripts are only addressing the helper scripts, no third-party programs. Nor do they modify the configuration of the system in any way. They are only needed for configuration control." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You are also invited to read the [privacy statement](privacy.ipynb#Privacy) and [security policy](security.ipynb#Security) in this documentation. [DashT security page on GitHub](https://github.com/canne/dashboard_tactics_pi/security/policy) provides the latest security status and provides links to open issues." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Install (Linux)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Ready to install?** It is simple with `gdebi`:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```\n", "sudo gdebi dashboard_tactics_pi_1.99.102-ov52-1_amd64.deb\n", "[sudo] password for myname:\n", "Reading package lists... Done\n", "Building dependency tree\n", "Reading state information... Done\n", "Reading state information... Done\n", "\n", "dashboard_tactics_pi PlugIn for OpenCPN\n", " dashboard_tactics_pi PlugIn for OpenCPN\n", "Do you want to install the software package? [y/N]: y\n", "/usr/bin/gdebi:113: FutureWarning: Possible nested set at position 1\n", " c = findall(\"[[(](\\S+)/\\S+[])]\", msg)[0].lower()\n", "(Reading database ... 285733 files and directories currently installed.)\n", "Preparing to unpack dashboard_tactics_pi_1.99.102-ov52-1_amd64.deb ...\n", "Unpacking dashboard_tactics_pi (1.99.102-ov52) over (1.98.1061-ov51) ...\n", "postrm - Removing DashT scripted helper launchers from\n", "/usr/local/bin:\n", "- dashtengine\n", "- dashtdb\n", "postrm - Done.\n", "Setting up dashboard_tactics_pi (1.99.102-ov52) ...\n", "postinst - Installing DashT scripted helper launchers into\n", "/usr/local/bin:\n", "+ dashtengine\n", "+ dashtdb\n", "postinst - Enabling the execution of DashT system analysis script:\n", "/usr/share/opencpn/plugins/dashboard_tactics_pi/data/instrujs/scripts/\n", "linux/o-platforminfo.sh\n", "(enabled)\n", "postinst - Done.\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You may notice that the deb-package manager updated the previous version - the post-installation scripts did the same for the helper scripts." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now you can launch your _OpenCPN_ and look for _DashT_ plug-in in its plug-in manager." ] }, { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ ".. index::\n", " single: Troubleshooting; Linux installation\n", ".. index::\n", " single: Linux; Installation troubleshooting" ] }, { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ ".. index::\n", " single: Linux; Uninstall" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Uninstall (Linux)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ">**GUI Uninstall**: If you change your mind during the \"try-and-buy\" period, _i.e._ you want to uninstall immediately _DashT_ and you have still the _\\*.deb_ open under the _graphical_ `gdebi-gtk` you can use it to uninstall the package with a simple click. In Ubuntu 20.04LTS the _Ubuntu Software_ center seems to lack (_\"Show N technical items\"_) option, so it cannot be used for uninstall. However, below we explain the command-line method to be compatible with all systems:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Serch for the _dashboard_tactics_pi_ package:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```\n", "apt search dashboard_tactics_pi\n", "Sorting... Done\n", "Full Text Search... Done\n", "dashboard_tactics_pi/now 1.99.102-ov52 amd64 [installed,local]\n", " dashboard_tactics_pi PlugIn for OpenCPN\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Then remove completely the package from the system with `dpkg --purge` command:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```\n", " sudo dpkg --purge dashboard_tactics_pi\n", "[sudo] password for myname:\n", "(Reading database ... 285744 files and directories currently installed.)\n", "Removing dashboard_tactics_pi (1.99.102-ov52) ...\n", "postrm - Removing DashT scripted helper launchers from\n", "/usr/local/bin:\n", "- dashtengine\n", "- dashtdb\n", "postrm - Done.\n", "Purging configuration files for dashboard_tactics_pi (1.99.102-ov52) ...\n", "postrm - Removing DashT scripted helper launchers from\n", "/usr/local/bin:\n", "- dashtengine\n", "- dashtdb\n", "postrm - Done.\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Troubleshooting (Linux)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If everything looks right but you cannot find _DashT_ from _OpenCPN_ as described in [Getting Started](./gettingstarted.ipynb#Getting-started) chapter the same applies to Linux, Windows or any platform with _OpenCPN_ - first take a look at the end of the log-file, which contains all sorts of interesting information. In Linux systems it is located in: `~/.opencpn/opencpn.log`. Please skip back for a moment now in [Windows installation troubleshooting](#Troubleshooting-(Win)) to read about what to look from that file..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Did not find _any_ trace of _dashboard_tactics_pi_ in the log file?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This perhaps means that _OpenCPN_ has find out that _DashT_ plug-in distribution which has been installed is not compatible both with it and the system on which it installed. This is usually caused by incompatibilities in the libraries, mainly _wxWidgets_ version - for which [GTK](https://www.gtk.org)-library version it has been compiled for." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ">**NOTE**: **_DashT_ is supported only on GTK3-based systems** and it needs _wxWebView_ library. _OpenCPN_ installed on older GTK2 Linux distributions is naturally supporting GTK2 and would, correctly refuse GTK3-based _DashT_ - it would not work! However, with some basic Linux skills it is possible to make _DashT_ to work on GTK2 systems with the help of the kind author who has put such a \"unoffical\" version (handmade) into the distribution. This is the case for [Raspberry Pi/Buster](#wxWebView-and-GTK2), which is a GTK2 based system. So is, by default its 64-bit version while it has both GTK2 and GTK3 as `alternatives` installations. By default, OpenCPN v5.2.4 is build GTK2 if it is available. In this case, _DashT_ is incompatible with that version of OpenCPN." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can use the following script now on your system to dig out all the above information and figure out why the _DashT_ does not get loaded in your system:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```\n", "cd /usr/share/opencpn/plugins\n", "cd dashboard_tactics_pi/data\n", "cd instrujs/scripts/linux\n", "./o-platforminfo.sh\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The print is long and meant for an expert (see instructions at the end of output) but let's take out a few lines which gives you immediately knowledge will it work for you, or not:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```\n", "...\n", ">>>>> Displaying OpenCPN's dependencies on wxWidgets libraries <<<<<\n", "...\n", "libwx_gtk3u_core-3.0.so.0 =>\n", "/lib/x86_64-linux-gnu/libwx_gtk3u_core-3.0.so.0 \n", "...\n", "libwx_gtk3u_webview-3.0.so.0 =>\n", "/lib/x86_64-linux-gnu/libwx_gtk3u_webview-3.0.so.0\n", "...\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The above means that this is a GTK3 system and there _is_ _wxWebView_ installed for it. If GKT2 is indicated, or if _wxWebView_ is not found, there is not much hope to get prebuilt _DashT_ _\\*.deb_ package to work on this system." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Maybe your system is Ubuntu 18 or older, or one of their derivations? Please consider upgrading. Or [make the effort to compile everything from the source](#wxWebView-and-GTK2), including the _wxWidgets_ with _wxWebView_ library. It has been done, it works. But one can ask is the advanced, web technology enabled _DashT_ the right tool for your trusted but a bit outdated system? Of course, in navigation one seeks stability, but _DashT_ is not a navigational tool. It is mainly intended to increase the performance of you and your boat so it needs to follow its time." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you still think that _DashT_ **should** be recognized by _OpenCPN_ in your system, but it does not please use the following command in the above directory to make a reasonable size report file which you can attach to your issue post:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```\n", "./o-platforminfo.sh 2>&1 | gzip >~/Downloads/report.txt.gz\n", "```" ] }, { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ ".. index::\n", " single: Installation; Other" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Optional platforms" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Other platforms where installation is possible and an installer is provided:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Raspberry Pi4B Raspian Buster (_\\*.deb_ installer provided for **64-bit** Ubuntu 20.04LTS Focal Fossa version, not compatible with RaspberryOS64 which by default works with GTK2. GTK3 is available with `update-alternatives` but will the OpenCPN be GTK3, probably not: see below, [will not work out of the box](#wxWebView-and-GTK2)." ] }, { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ ".. index::\n", " single: Installation; Plug-in Manager" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Installed helpers" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Windows scripts" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The helper scripts and the supporting configuration files are installed in `\\Users\\Public\\DashT` folder. Three buttons to use those will be installed on the Desktop:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. Start web server (for EngineDJG only)\n", "2. Start DB (database _and_ web services for everything)\n", "3. Stop DB" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These buttons will do nothing, however, if you do not install yourself the third party software they are referring to. No third party software is pulled in without you wanting it to happen. See corresponding sections in this document" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Linux scripts" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Linux version installs just two helper scripts: _**dashtengine**_ and _**dashtdb**_ - try them out from the command line." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ">**NOTE**: we let fans of GNOME3, KDE, LXQT, xfce4 and alike to create their own desktop buttons!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Respecting the principle \"only if you want it you will get it\", no third party software is declared as automatic dependency in the _DashT_ package installation. Only if you launch one of the scripts, and if the supporting software is not there, you will be asked do you want to get it installed. This way, a person who is not interested in database functions will not get database software installed for nothing.\n", "\n", "Third-party programs installed are, for\n", "\n", "- _dashtengine_\n", " - nodejs, npm\n", " - signalk-server, http-server \n", "- dashtdb\n", " - docker, docker-compose\n", " - InfluxDB v2.0, Grafana, nginx web server" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ">**NOTE**: If you are running _dashtdb_ script on a _arm64/aarch64_ platform, and it proposes to install Docker with InfluxDB v2.0 it may fail to so - it is not necessarily available for _arm64/aarch64_ - only _amd64_. But the situation may evolve and you can try the installation." ] }, { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ ".. index::\n", " single: Installation; GKT2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## wxWebView and GTK2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you have a recent distro at level of Ubuntu 20.04 LTS (_Focal Fossa_) you do not have to read this section. For older versions, and upgrade is recommended to a GKT3 enabled version." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "_DashT_ requires _wxWebView_, which requires _libwx_gtk**3**u_webview_3.0_ or similar. Helas, on older, GTK2 based installations one cannot find anymore an equivalent _libwx_gtk**2**u_webview_3.0_ or such, for security reasons (_webkit2gtk_ is not maintained anymore)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Therefore, the logical decision is to maintain _DashT_ only for GTK3 based systems." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "However, it is possible to make it work by installing your own _wxWebView_ and compile it with _wxWebView_." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ">**NOTE**: you would be using a system with a **potentially unsecure** _wxWebView_ - make your own security assessement and assume your own risk before applying blindly the below method." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As an example, Raspberry Buster: compile your own wxWidgets stable installation from [source](https://github.com/wxWidgets/wxWidgets/releases/download/v3.0.5/wxWidgets-3.0.5.tar.bz2) and [install it](https://wiki.wxwidgets.org/WxWidgets_Build_Configurations). Make, say a `gtk2_build` folder for the build. In it, `../configure --with-opengl --with-gtk=2 --enable-debug`. Then `make -j4`. When you say `sudo make install` after the build, all the libraries will be go into `/usr/local/lib`, and will not be clashing with your distribution's wxWidget libraries, they will prevail. Only that the missing libraries, amongs them _libwx_gtk**2**u_webview_3.0_ is now found, after you run `ldconfig`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ">**Note**: Even with the above working, you would be limited to _EngineDJG_ dials and _Race DashT_ functions: the InfluxDB v2.0 does not yet exist for _armhf_ architecture in their docker repo. One needs to wait final release to see how this evolves. Meanwhile, if you are interested in the time series database functions you need to provide the InluxDB v2.0 service from another computer and use the HTTP method to write into it, see [InfluxDB Out](./idbout/idbout.ipynb#HTTP-Streamout)." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.2" } }, "nbformat": 4, "nbformat_minor": 4 }