How to install Discord

Manual

Download - https://discordapp.com/api/download?platform=linux&format=tar.gz

  • Unpack
  • cd into unpack folder
  • Run Discord
./Discord

Prepare to build Discord

Import the GPG key needed for building llvm, libcxx and libcxxabi

gpg --recv-keys A2C794A986419D8A

You need some tools to be able to build

sudo pacman -Syu --needed base-devel git

Build using makepkg

Download - https://aur.archlinux.org/cgit/aur.git/snapshot/discord.tar.gz

  • Unpack
  • cd into unpack folder
  • Build and install Discord
makepkg -sri

Build using Pamac

Install Pamac if needed (most KDE and LXQt except beta)

sudo pacman -Syu pamac

Build Discord

pamac build discord
14 Likes

Issues not mentioned in the tutorial

  • One of the dependencies is libc++ (which in turn depends on libc++abi). These require you to manually import their signature keys to install them.

  • Compiling libc++ and libc++abi will take quite a while. You can substantially cut the install time down to just a couple minutes by using the --nocheck flag when running makepkg.

One-liner solution

This installs discord and it's problem dependencies without requiring any intervention or manual steps. This also automatically imports necessary PGP keys.
(This assumes you have yay installed):

yay -S --needed --noconfirm --mflags --nocheck libc++abi libc++ discord

NOTE: If libc++ and libc++abi need an update, you may need to update those outside of pamac. You can use the same command above to do that as needed.

Alternative

You can install the flatpak version which doesn't have any dependency (or PGP) hassles with:

sudo pacman -S --needed --noconfirm flatpak
flatpak install -y flathub com.discordapp.Discord

NOTE: Because the flatpak app is isolated, some features may not work correctly. In my testing, the only issue I came across was uploading pictures from outside your Pictures folder.

EDIT: I swear this was on the first page...I guess if the original post is modified that counts as a new post and brings it back to the top of the stack.

1 Like

Two things to be aware of:

This allows anyone with physical access to your computer to cancel the process and gain root.

This bypasses any checks that the software archives you're downloading are the correct ones.

And the correction is not needed as pamac takes care of everything during build.

The same can be said for running commands with sudo (which is something recommended quite often on these forums without any mention of security risk). The only difference is: the authentication for sudo expires after 15 minutes by default, while with --sudoloop, the authentication remains active throughout the entirety of the package prep and install (which could be more than 15 minutes). Granted, that should be kept in mind if you plan to walk away and don't trust the people around you.

(If you're suggesting that --sudoloop remains running indefinitely after cancelling the install, that's both a security issue and a bug that should be reported upstream.)

However, I'll remove it, since it's not needed in this instance when you pass the --nocheck flag (unless you have an extremely old and slow computer, where 2 minute tasks take longer than 15 minutes, in which case you'd just have to watch the install and enter your password when necessary).

That is inaccurate. From makepkg:

--nocheck        Do not run the check() function in the PKGBUILD

Which, in the case of libc++ and libc++abi means the following won't be run:

check() {
  cd build
  ninja check-cxx
}

This seems to walk through various compiler functions to make sure they are there and working (correct me if I'm wrong). These are not needed for the build, and already confirmed working on a fresh install of Manjaro. If the build doesn't go correctly, then this could potentially be used to debug what didn't build properly (specifically, by checking if required compiler functions are not available)

As previously pointed out it doesn't...the reason those steps fail is the same reason you can't just use the pamac GUI to install discord. This is what happens when you follow those directions on a fresh install of Manjaro:

$ pamac build discord
Preparing...
Resolving dependencies...
Checking inter-conflicts...
To install (7):
  compiler-rt            6.0.1-2                           2.0 MB 
  clang                  6.0.1-2                          14.9 MB 
  jsoncpp                1.8.4-2                           1.1 MB 
  libuv                  1.23.0-1                        191.2 kB 
  rhash                  1.3.6-1                         115.4 kB 
  cmake                  3.12.1-1                          6.3 MB 
  ninja                  1.8.2-1                          94.4 kB 
To build (3):
  libc++abi              6.0.1-1            
  libc++                 6.0.1-1            
  discord                0.0.5-5            

Total download size: 24.8 MB
Total installed size: 146.1 MB
Commit transaction ? [y/N] y
--snip--
    llvm-6.0.1.src.tar.xz ... Passed
    llvm-6.0.1.src.tar.xz.sig ... Skipped
    libcxx-6.0.1.src.tar.xz ... Passed
    libcxx-6.0.1.src.tar.xz.sig ... Skipped
    libcxxabi-6.0.1.src.tar.xz ... Passed
    libcxxabi-6.0.1.src.tar.xz.sig ... Skipped
==> Verifying source file signatures with gpg...
    llvm-6.0.1.src.tar.xz ... FAILED (unknown public key A2C794A986419D8A)
    libcxx-6.0.1.src.tar.xz ... FAILED (unknown public key A2C794A986419D8A)
    libcxxabi-6.0.1.src.tar.xz ... FAILED (unknown public key A2C794A986419D8A)
==> ERROR: One or more PGP signatures could not be verified!

This is a frequent error message and covered in the FAQ. And yet the forums get complaints about this fairly frequently. No harm in mentioning this expected error, so people don't think they did something wrong when they follow your instructions.

The security concern of automatically importing unknown PGP keys is also why I provided the alternative of using the flatpak package instead. Best of both worlds: no potential security concerns of trusting unknown PGP keys, and no issues expected during the install process.

Well - I tested on a fresh install of Openbox - and discord build and installs just nice using pamac.

I don't know why you get these errors - but I will test on a fresh install of xfce 18.0-beta7

EDIT: September 30, 2018 4:23 PM

I stand corrected - this fresh install requires import of the key.

Wonder why I haven't seen that before. I have installed Discord on my system several times - never had this issue before.

I will add to the instructions to import the said GPG key.

2 Likes

Ah, good spot. I'm just so used to people wanting to bypass signature checks... :sob:

Forum kindly sponsored by