Missing libappindicator3-1 installing Slack
I had such issue with new version of Debian.
Here is what I did to install Slack desktop app on Debian 11.
I will use slack-desktop-4.19.2-amd64.deb
file for the example
dpkg-deb -x slack-desktop-4.19.2-amd64.deb unpack
dpkg-deb --control slack-desktop-4.19.2-amd64.deb unpack/DEBIAN
Open the file ./unpack/DEBIAN/control
and replace libappindicator3-1
with libayatana-appindicator3-1
After that do
dpkg -b unpack slack.deb
Now you should have slack.deb
file.
The last step is sudo apt install ./slack.deb
Or you can use below script
#!/bin/bash
package="$1"
name="$(basename ${package} .deb)"
dpkg-deb -x "$package" "$name"
dpkg-deb --control "$package" "$name"/DEBIAN
sed -i -- 's/libappindicator3-1/libayatana-appindicator3-1/g' ./"$name"/DEBIAN/control
new="${name}-debian.deb"
dpkg -b "$name" "$new"
rm -rf "$name"
sudo apt install ./"$new"
like this:
apt-install-libayatana BreakTimer.deb
Source is here https://github.com/rofrol/dotfiles/blob/master/bin/apt-install-libayatana
For Debian 11 (Bullseye), you can manually download the Debian 10 (Buster) version of the missing dependencies:
- Debian -- Package Download Selection -- libappindicator3-1_0.4.92-7_amd64.deb
- Debian -- Package Download Selection -- libindicator3-7_0.5.0-4_amd64.deb
You can then install these together with Slack:
sudo apt install \
./libappindicator3-1_0.4.92-7_amd64.deb \
./libindicator3-7_0.5.0-4_amd64.deb \
./slack-desktop-4.20.0-amd64.deb
You can include Sid in your /etc/apt/sources.list as follows:
###### Debian Main Repos
deb http://deb.debian.org/debian/ testing main contrib non-free
deb http://deb.debian.org/debian/ testing-updates main contrib non-free
deb http://deb.debian.org/debian-security testing-security main
# SID
deb http://deb.debian.org/debian/ sid main contrib non-free
Update your repos and install libappindicator3-1:
apt update
apt install libappindicator3-1
The next step is to remove Sid from your /etc/apt/sources.list:
###### Debian Main Repos
deb http://deb.debian.org/debian/ testing main contrib non-free
deb http://deb.debian.org/debian/ testing-updates main contrib non-free
deb http://deb.debian.org/debian-security testing-security main
# SID
#deb http://deb.debian.org/debian/ sid main contrib non-free
Remember to update your repos to avoid using Sid now on:
Finally install Slack from .deb file you had downloaded:
apt install /home/lgallard/Downloads/slack-desktop-4.14.0-amd64.deb
Alternatively you can use pinned packages explained in the Debian documentation, for pinning libappindicator3-1
You can try this:
wget http://ftp.us.debian.org/debian/pool/main/libi/libindicator/libindicator3-7_0.5.0-4_amd64.deb
wget http://ftp.us.debian.org/debian/pool/main/liba/libappindicator/libappindicator3-1_0.4.92-7_amd64.deb
sudo dpkg -i libindicator3-7_0.5.0-4_amd64.deb
sudo dpkg -i libappindicator3-1_0.4.92-7_amd64.deb
sudo dpkg -i slack-desktop-4.12.2-amd64.deb
It is better to use equivs:
It's no cruder than going in and munging the dependencies in a package file before you install it, and it has the substantial benefit of persisting the hack over package upgrades on both sides of the spoofed dependency. https://www.reddit.com/r/debian/comments/q7ymc7/convert_deb_to_use_libayatanaappindicator3/hgluc40/
$ sudo apt install equivs
$ equivs-control libappindicator3-1.equivs
$ $EDITOR libappindicator3-1.equivs
$ cat libappindicator3-1.equivs
Section: misc
Priority: optional
Standards-Version: 1.0
Package: libappindicator3-1
Description: dummy libappindicator3-1 package
Depends: libayatana-appindicator3-1
$ equivs-build libappindicator3-1.equivs
$ sudo dpkg -i libappindicator3-1_1.0_all.deb
$ sudo dpkg -i BreakTimer.deb
- https://www.reddit.com/r/debian/comments/q7ymc7/convert_deb_to_use_libayatanaappindicator3/
- https://wiki.debian.org/Packaging/HackingDependencies
- equivs dummy package version number syntax
- https://github.com/tom-james-watson/breaktimer-app/releases