How to install Dukto in ubuntu 20.04? (Preferably using .deb)

I am having problems installing Dukto in ubuntu 20.04. I followed instruction posted for older Ubuntu versions and downloaded the .deb.

Then, I tried:

sudo dpkg -i dukto.deb

which gave dependency errors.

dpkg: dependency problems prevent configuration of dukto:
 dukto depends on libqt4-declarative (>= 4:4.7.0~rc1); however:
  Package libqt4-declarative is not installed.
 dukto depends on libqt4-network (>= 4:4.5.3); however:
  Package libqt4-network is not installed.
 dukto depends on libqtcore4 (>= 4:4.7.0~beta1); however:
  Package libqtcore4:amd64 is not installed.
 dukto depends on libqtgui4 (>= 4:4.6.1); however:
  Package libqtgui4 is not installed.

dpkg: error processing package dukto (--install):
 dependency problems - leaving unconfigured
Processing triggers for bamfdaemon (0.5.3+18.04.20180207.2-0ubuntu2) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for gnome-menus (3.36.0-1ubuntu1) ...
Processing triggers for desktop-file-utils (0.24-1ubuntu2) ...
Processing triggers for mime-support (3.64ubuntu1) ...
Errors were encountered while processing:
 dukto

Then I tried:

sudo apt-get install -f

but it doesn't seem to install anything.

I (still) tried the dpkg command again to install but it returns the same errors.

Can anyone explain what I should do to install the .deb package?


Solution 1:

dukto is available as a snap package in all currently supported versions of Ubuntu. To install it open the terminal and type:

sudo snap install dukto

Solution 2:

According to the search on repology.org the package is available in binary form in ArchLinux AUR as dukto-bin package.

And this package is Qt4-based, so it can not be installed on 20.04 LTS directly.

But you can install it inside Docker container or schroot. Below is schroot-based method.

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

Then download and install deb-package of Dukto:

cd ~/Downloads
wget -c http://download.opensuse.org/repositories/home:/colomboem/xUbuntu_16.04/amd64/dukto_6.0-1_amd64.deb
schroot -c bionic -u root apt-get install ./dukto_6.0-1_amd64.deb

To run the application use the command below:

schroot -c bionic -u $USER env DISPLAY=:0.0 dukto

Optionally you have to create desktop-file launcher with single long command below:

mkdir ~/.local/share/applications
cat <<EOF | tee ~/.local/share/applications/dukto.desktop
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Name=Dukto
Comment=Easy and multi-platform file transfer tool
Exec=schroot -c bionic -u $USER env DISPLAY=:0.0 dukto
Icon=/srv/chroot/bionic/usr/share/pixmaps/dukto.png
X-HildonDesk-ShowInToolbar=true
X-Osso-Type=application/x-executable
EOF

and then launch this application from its Dukto shortcut in dash or menu.

Solution 3:

You could add this ppa to get the qt4 dependencies...

This worked well for me, THX! Here is my "unattended one-line command" for installing Dukto (tested on Ubuntu 20.04/20.10rc) using that ppa, wget for download the .deb file and gdebi for the missing dependencies (available on the previous ppa):

sudo add-apt-repository -y ppa:rock-core/qt4 && sudo apt update && sudo apt upgrade && sudo apt install -y gdebi && wget -nv -c http://download.opensuse.org/repositories/home:/colomboem/xUbuntu_16.04/amd64/dukto_6.0-1_amd64.deb -ODukto.deb && sudo gdebi -n Dukto.deb

Best, Benny.