This repository contains a Python program for installing and maintaining FaithLife's Logos Bible (Verbum) Software on Linux.
This program is created and maintained by the FaithLife Community and is licensed under the MIT License.
The main program is a distributable executable and contains Python itself and all necessary Python packages.
When running the program, it will attempt to determine your operating system and package manager. It will then attempt to install all needed system dependencies during the install of Logos. When the install is finished, it will place two shortcuts on your computer: one will launch Logos directly; the other will launch the Control Panel.
To access the GUI version of the program, double click the executable in your file browser or on your desktop, and then follow the prompts.
The program can also be run from source and should be run from a Python virtual environment. See below.
By default the program installs Logos, but you can pass the -C|--control-panel
optarg to access the Control Panel, which allows you to install Logos or do various maintenance functions on your install.
In time, you should be able to use the program to restore a backup.
Usage: ./LogosLinuxInstaller.sh
Installs ${FLPRODUCT} Bible Software with Wine on Linux.
Options:
-h --help Prints this help message and exit.
-v --version Prints version information and exit.
-V --verbose Enable extra CLI verbosity.
-D --debug Makes Wine print out additional info.
-C --control-panel Open the Control Panel app.
-c --config Use the Logos on Linux config file when
setting environment variables. Defaults to:
\$HOME/.config/Logos_on_Linux/Logos_on_Linux.conf
Optionally can accept a config file provided by
the user.
-b --custom-binary-path Set a custom path to search for wine binaries
during the install.
-F --skip-fonts Skips installing corefonts and tahoma.
-s --shortcut Create or update the Logos shortcut, located in
HOME/.local/share/applications.
-d --dirlink Create a symlink to the Windows Logos directory
in your Logos on Linux install dir.
The symlink's name will be 'installation_dir'.
-e --edit-config Edit the Logos on Linux config file.
-i --indexing Run the Logos indexer in the
background.
--remove-all-index Removes all index and library catalog files.
--remove-library-catalog Removes all library catalog files.
-l --logs Turn Logos logs on or off.
-L --delete-install-log Delete the installation log file.
-R --check-resources Check Logos's resource usage while running.
-b --backup Saves Logos data to the config's
backup location.
-r --restore Restores Logos data from the config's
backup location.
-f --force-root Sets LOGOS_FORCE_ROOT to true, which permits
the root user to run the script.
-P --passive Install Logos non-interactively .
-k --make-skel Make a skeleton install only.
This section is a WIP.
You can either run the program from the CLI for a CLI-only install, or you can double click the icon in your file browser or on your desktop for a GUI install. Then, follow the prompts.
You can clone the repo and install the app from source. To do so, you will need to ensure a few prerequisites:
- Install Python 3.12 and Tcl/Tk
- Clone this repository
- Set up a virtual environment
Your system might already include Python 3.12 built with Tcl/Tk. This will verify the installation:
$ python3 --version
Python 3.12.1
$ python3 -m tkinter # should open a basic Tk window
If your Python version is < 3.12, then you might want to install 3.12 and tcl/tk using
your system's package manager or compile it from source using the following guide
or the script provided in scripts/ensure-python.sh
. This is because the app is
built using 3.12 and might have errors if run with other versions.
# install build dependencies; e.g. for debian-based systems:
$ apt install build-essential tcl-dev tk-dev libreadline-dev
# install & build python 3.12
$ wget 'https://www.python.org/ftp/python/3.12.1/Python-3.12.1.tar.xz'
$ tar xf Python-3.12.1.tar.xz
$ cd Python-3.12.1
Python-3.12.1$ ./configure --prefix=/opt --enable-shared
Python-3.12.1$ make
Python-3.12.1$ sudo make install
Python-3.12.1$ LD_LIBRARY_PATH=/opt/lib /opt/bin/python3.12 --version
Python 3.12.1
The script scripts/ensure-python.sh
is not yet fully tested. Feedback is welcome!
Both methods install python into /opt to avoid interfering with system python installations.
$ git clone 'https://github.com/FaithLife-Community/LogosLinuxInstaller.git'
$ cd LogosLinuxInstaller
LogosLinuxInstaller$
Use the following guide or the provided script at scripts/ensure-venv.sh
to set
up a virtual environment for running and/or building locally.
LogosLinuxInstaller$ LD_LIBRARY_PATH=/opt/lib /opt/bin/python3.12 -m venv env # create a virtual env folder called "env" using python3.12's path
LogosLinuxInstaller$ echo "LD_LIBRARY_PATH=/opt/lib" >> env/bin/activate # tell python where to find libs
LogosLinuxInstaller$ echo "export LD_LIBRARY_PATH" >> env/bin/activate
LogosLinuxInstaller$ source env/bin/activate # activate the env
(env) LogosLinuxInstaller$ python --version # verify python version
Python 3.12.1
(env) LogosLinuxInstaller$ python -m tkinter # verify that tkinter test window opens
(env) LogosLinuxInstaller$ pip install -r requirements.txt # install python packages
(env) LogosLinuxInstaller$ ./LogosLinuxInstaller.py --help # run the script
[WIP] For an install guide with pictures and video, see the wiki's Install Guide.
NOTE: You can run Logos on Linux using the Steam Proton Experimental binary, which often has the latest and greatest updates to make Logos run even smoother. The script should be able to find the binary automatically, unless your Steam install is located outside of your HOME directory.
If you want to install your distro's dependencies outside of the script, please see the following.
sudo apt install mktemp patch lsof wget find sed grep gawk tr winbind cabextract x11-apps bc
If using wine from a repo, you must install wine staging. Run:
sudo dpkg --add-architecture i386
sudo mkdir -pm755 /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
CODENAME=$(lsb_release -a | grep Codename | awk '{print $2}')
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/"${CODENAME}"/winehq-"${CODENAME}".sources
sudo apt install --install-recommends winehq-staging
See https://wiki.winehq.org/Ubuntu for help.
If using the AppImage, run:
sudo apt install fuse3
sudo pacman -S patch lsof wget sed grep gawk cabextract samba bc
If using wine from a repo, run:
sudo pacman -S wine
sudo pamac install patch lsof wget sed grep gawk cabextract samba bc
If using wine from a repo, run:
sudo pamac install wine
You may need to install pamac if you are not using Manjaro GNOME:
sudo pacman -S pamac-cli
The steam deck has a locked down filesystem. There are some missing dependencies which cause irregular crashes in Logos. These can be installed following this sequence:
- Enter Desktop Mode
- Use
passwd
to create a password for the deck user, unless you already did this. - Disable read-only mode:
sudo steamos-readonly disable
- Initialize pacman keyring:
sudo pacman-key --init
- Populate pacman keyring with the default Arch Linux keys:
sudo pacman-key --populate archlinux
- Get package lists:
sudo pacman -Fy
- Fix locale issues
sudo pacman -Syu glibc
- then
sudo locale-gen
- Install dependencies:
sudo pacman -S samba winbind cabextract appmenu-gtk-module patch bc lib32-libjpeg-turbo
Packages you install may be overwritten by the next Steam OS update, but you can easily reinstall them if that happens.
After these steps you can go ahead and run the your install script.
sudo dnf install patch mod_auth_ntlm_winbind samba-winbind cabextract bc samba-winbind-clients
If using wine from a repo, run:
sudo dnf install winehq-staging
If using the AppImage, run:
sudo dnf install fuse3
sudo yum install patch mod_auth_ntlm_winbind samba-winbind cabextract bc
If using wine from a repo, run:
sudo yum install winehq-staging
If using the AppImage, run:
sudo yum install fuse3
TODO
sudo zypper install …
TODO
sudo apk add …
TODO.
doas pkg install …
TODO.