TransWikia.com

How to install LDOCE5 Viewer on Ubuntu 20.04 64 bit?

Ask Ubuntu Asked on January 30, 2021

I have installed ldoce5 viewer on Ubuntu 18.04 and Ubuntu 16.04 following this guide before with no problem at all, but now I have installed Ubuntu 20.04.

And so I wanted to install ldoce5 viewer following the same guide, but I it seems that some required packages for installing ldoce5 viewer, are missing or deleted from Ubuntu 20.04 repository, and therefor I can not install ldoce5 viewer.

So now that Ubuntu 20.04 has been released, How can we install this dictionary on it, without using Wine?

EDIT:
and my output is

mustafa@T440p:~$ export | grep SESSION
declare -x DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"
declare -x DESKTOP_SESSION="ubuntu"
declare -x GDMSESSION="ubuntu"
declare -x GNOME_DESKTOP_SESSION_ID="this-is-deprecated"
declare -x GNOME_SHELL_SESSION_MODE="ubuntu"
declare -x SESSION_MANAGER="local/T440p:@/tmp/.ICE-unix/8283,unix/T440p:/tmp/.ICE-unix/8283"
declare -x XDG_SESSION_CLASS="user"
declare -x XDG_SESSION_DESKTOP="ubuntu"
declare -x XDG_SESSION_TYPE="x11"

2 Answers

I have used qt4-based version of LDOCE5 viewer for a long time. I originally asked this question How to install LDOCE5 Viewer on Ubuntu) and N0rbert helped me to install it on Ubuntu 18.04. I just installed Ubuntu 20.04 and since the qt4-based libraries are obsolete I tried to install the qt5-based version. I followed the instructions for installing the qt5-based version (answered by n0rbert in the original question), but I came across some new issues with Ubuntu 20.04. I spent some time to resolve those issues and could install the software successfully. Unfortunately I could not find a way to fix the issue reported in the original question regarding the sound not playing. This requires further knowlege of Python/Qt and I hope someone else will help to resolve the issue.

Instructions for installing LDOCE5 viewer on Ubuntu 20.04:

  1. Install some dependencies:

    sudo apt-get install git make python pyqt5-dev-tools python3-pyqt5 
    python3-pyqt5.qtwebkit python3-lxml python3-whoosh  qtgstreamer-plugins-qt5
    
  2. Install further dependencies for python3.8 on Ubuntu 20.04:

    sudo apt-get install python3-pip python3-setuptools python3-distutils
    
  3. Download ldoce5viewer-pyqt5 into ~/Downloads:

    cd ~/Downloads && git clone https://github.com/purboo/ldoce5viewer-pyqt5.git
    
  4. Open the Makefile in the download folder and change python to python3 on line 2:

    gedit ~/Downloads/ldoce5viewer-pyqt5/Makefile
    
  5. There is an obsolete library in the ldoce5viewer-pyqt5 called cgi.escape() which has been removed from python3.8. this library is used in three files. in order to fix the issue, we need to change cgi to html where we see from cgi import escape in the following three files:

    gedit ~/Downloads/ldoce5viewer-pyqt5/ldoce5viewer/ldoce5/transform.py 
    gedit ~/Downloads/ldoce5viewer-pyqt5/ldoce5viewer/qtgui/indexer.py 
    gedit ~/Downloads/ldoce5viewer-pyqt5/ldoce5viewer/ldoce5/extract.py 
    
  6. This step is based on an answer in the original question which suggested a fix for the sound issue. it did not work for me, but it may work for you. Open the following file and change

    'appsrc.emit('push-buffer', Gst.Buffer.new_wrapped(self._data[:size]))'
    

    to

    'appsrc.emit('push-buffer', Gst.Buffer.new_wrapped(self._data[:size].data()))'
    

    on line 114:

    gedit ~/Downloads/ldoce5viewer-pyqt5/ldoce5viewer/qtgui/utils/soundplayer.py
    
  7. Final step:

    make && sudo make install
    

Now you can find the software in the installed applications (press Super key and search for ldoce5).

Answered by Opt on January 30, 2021

The Qt4 library is obsolete, so it was removed from Ubuntu 20.04 LTS. Its manual installation is very difficult and long process.

So I would recommend to use schroot in this case.
We will install Ubuntu 18.04 LTS into it and follow my previous method.

We need to create and configure schroot first:

sudo apt-get install schroot debootstrap -y

cat <<EOF | sudo tee /etc/schroot/chroot.d/bionic.conf
[bionic]
description=Ubuntu 18.04 bionic
directory=/srv/chroot/bionic
root-users=$USER
type=directory
users=$USER
EOF

sudo mkdir -p /srv/chroot/bionic
sudo debootstrap bionic /srv/chroot/bionic

cat <<EOF | sudo tee /srv/chroot/bionic/etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu bionic main universe multiverse
deb http://security.ubuntu.com/ubuntu bionic-security main restricted universe multiverse
EOF

schroot -c bionic -u root apt-get update
schroot -c bionic -u root apt-get install git make pyqt4-dev-tools python-lxml 
python-whoosh libqt4-opengl python-gst-1.0 wget sudo 
libcanberra-gtk3-module libcanberra-gtk-module desktop-file-utils

cd ~/Downloads
wget http://archive.ubuntu.com/ubuntu/pool/universe/p/python-qt4/pyqt4-dev-tools_4.11.4+dfsg-1build4_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/p/python-qt4/python-qt4_4.11.4+dfsg-1build4_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/s/sip4/python-sip_4.17+dfsg-1build1_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/q/qtwebkit-source/libqtwebkit4_2.3.2-0ubuntu11_amd64.deb
wget http://security.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.54-1ubuntu1.1_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/p/python-qt4/python-qt4-phonon_4.11.4+dfsg-1build4_amd64.deb

schroot -c bionic -u root apt-get install ./*.deb

Then download source code of Ldoce:

schroot -c bionic -u root git clone https://github.com/ciscorn/ldoce5viewer.git /usr/local/ldoce5viewer
schroot -c bionic -u root -d /usr/local/ldoce5viewer/ make
schroot -c bionic -u root -d /usr/local/ldoce5viewer/ make install

To run LDOCE 5 Viewer use

schroot -c bionic -u $USER env DISPLAY=$DISPLAY ldoce5viewer

Optionally you can create desktop application shortcut with this command inside.

Answered by N0rbert on January 30, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP