Arch Linux

How to Install Slack on Arch Linux

Real-time communication and collaboration are made possible via the well-known messaging and collaboration platform, Slack. Companies and organizations typically utilize it to ease communication and teamwork between people, teams, and departments. Instant messaging, file sharing, phone and video conferencing, as well as interaction with other services and applications are just a few of the capabilities that Slack offers. Users can directly contact other users or groups of users in addition to creating channels for certain subjects, projects, or teams. To improve the platform’s functioning, Slack also provides a broad range of third-party connections including those with Google Drive, Trello, and GitHub.

Install Slack Using AUR

AUR is used by Arch Linux users to download and install the packages that are not officially supported by Arch Linux. Before starting with the installation, we should update our system. For this, we use the instructions that are attached in the following. In this command, the “pacman” is the package manager, “-S” is used to synchronize the package database, and “-y” is used to update all packages. Before continuing, the user is asked to confirm the installation.

[omar@omar ~]$ sudo pacman -Syu

:: Synchronizing package databases...

core 152.2 KiB 71.4 KiB/s 00:02 [######################] 100%

extra 1746.0 KiB 688 KiB/s 00:03 [######################] 100%

community 7.2 MiB 239 KiB/s 00:31 [######################] 100%

:: Starting full system upgrade...

Total Installed Size: 324.54 MiB

Net Upgrade Size: 0.37 MiB

:: Proceed with installation? [Y/n] y

:: Retrieving packages...

The following command is used to install the “git” package and the “base-devel” package group on an Arch Linux system. The “git” package is a version control system that allows the users to track the changes in files and collaborate on projects. The “base-devel” package group contains a set of packages that are commonly used to build and develop the software on Arch Linux.

[omar@omar ~]$ sudo pacman -S git base-devel

[sudo] password for omar:

warning: git-2.39.1-1 is up to date -- reinstalling

:: There are 26 members in group base-devel:

:: Repository core

Enter a selection (default=all):

looking for conflicting packages...

Packages (27) archlinux-keyring-20221220-1 autoconf-2.71-1 automake-1.16.5-1

Total Installed Size: 309.36 MiB

Net Upgrade Size: 0.00 MiB

:: Proceed with installation? [Y/n]

:: Processing package changes...

It’s time to clone a repository called “slack-desktop” from the Arch Linux User Repository (AUR) using the version control system, Git. The command starts by creating a new directory called “slack-desktop” and then proceeds to download all of the files from the remote repository. It shows the progress of the clone operation including the number of objects that are being downloaded, the percentage of completion, and the speed at which the objects are being downloaded. Once the clone operation is complete, the command confirms that all of the deltas (changes) are resolved and the cloned repository is ready for use.

[omar@omar ~]$ git clone https://aur.archlinux.org/slack-desktop.git

Cloning into 'slack-desktop'...

remote: Enumerating objects: 430, done.

remote: Counting objects: 100% (430/430), done.

remote: Compressing objects: 100% (286/286), done.

remote: Total 430 (delta 143), reused 430 (delta 143), pack-reused 0

Receiving objects: 100% (430/430), 88.02 KiB | 248.00 KiB/s, done.

Resolving deltas: 100% (143/143), done.

The “cd slack-desktop/” command is used to change the current working directory to a directory called “slack-desktop” on the local machine.

[omar@omar ~]$ cd slack-desktop/

The “makepkg” is a tool that is used to create the Arch Linux packages from the source code, and “-sri” are options that are passed to the makepkg command. Therefore, we use it here. The “-s” option stands for “–syncdeps” which is used to install the missing dependencies before building the package. The “-r” option stands for “–rmdeps” which is used to remove the dependencies that are no longer needed after the package is built. The “-i” option stands for “-install” which is used to install the package after it is built. The command starts by checking the runtime dependencies, installing the missing dependencies, and resolving any conflicts that might occur. It then proceeds to download the package files, check the package integrity, and load them.

[omar@omar slack-desktop]$ makepkg -sri

==> Making package: slack-desktop 4.29.149-1 (Mon Jan 23 00:58:36 2023)

==> Installing missing dependencies...

resolving dependencies...

Total Download Size: 0.01 MiB

Total Installed Size: 0.03 MiB

:: Proceed with installation? [Y/n] y

-> Downloading slack-desktop-4.29.149-amd64.deb...

% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed

100 69.5M 100 69.5M 0 0 336k 0 0:03:31 0:03:31 --:--:-- 448k

==> Installing package slack-desktop with pacman -U...

Total Installed Size: 250.04 MiB

:: Proceed with installation? [Y/n] y

:: Running post-transaction hooks...

(1/2) Arming ConditionNeedsUpdate...

(2/2) Updating the desktop file MIME type cache...

The following “yay -S slack-desktop” command is used to install the “slack-desktop” package from the Arch Linux User Repository (AUR) using the “yay” AUR helper. “Yay” is a command line utility to manage the packages on Arch Linux that can be used to search for, install, and remove the packages from the AUR. The command first checks for conflicts and inner conflicts. Then, it lists the package that is going to be installed and its version number. However, the command output shows that “slack-desktop-4.29.149-1 is up to date” which means that the package is already installed on the system. Therefore, it prompts the user to confirm the installation before proceeding. After a while, it is installed successfully.

[omar@omar ~]$ yay -S slack-desktop

:: Checking for conflicts...

:: Checking for inner conflicts...

[Aur:1] slack-desktop-4.29.149-1

1 slack-desktop (Installed) (Build Files Exist)

==> Packages to cleanBuild?

:: PKGBUILD up to date, Skipping (1/0): slack-desktop

1 slack-desktop (Installed) (Build Files Exist)

==> Diffs to show?

==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)

==>

-> Found slack-desktop-4.29.149-amd64.deb

Packages (1) slack-desktop-4.29.149-1

Total Installed Size: 250.04 MiB

:: Proceed with installation? [Y/n]

slack-desktop: /usr/share/pixmaps/slack.png exists in filesystem

Install Slack Using Snap

The “git clone https://aur.archlinux.org/snapd.git” command is used to clone a package from the Arch Linux User Repository (AUR) using the version control system, Git. The command starts by specifying the repository location which, in this case, is “https://aur.archlinux.org/snapd.git” which is the official AUR repository for the “snapd” package. The command then creates a new directory named “snapd” and copies the entire repository to that directory. It shows the progress of the cloning process including the number of objects being cloned, the total size of the repository, and the speed at which the cloning takes place.

[omar@omar ~]$ git clone https://aur.archlinux.org/snapd.git

Cloning into 'snapd'...

remote: Enumerating objects: 652, done.

remote: Counting objects: 100% (652/652), done.

remote: Compressing objects: 100% (429/429), done.

remote: Total 652 (delta 231), reused 636 (delta 218), pack-reused 0

Receiving objects: 100% (652/652), 238.40 KiB | 455.00 KiB/s, done.

Resolving deltas: 100% (231/231), done.

The “cd snapd” command is used to navigate to the “snapd” directory in the local file system. After this command is executed, all the subsequent commands are executed within the snapd directory, allowing the user to access and manipulate the files within that directory.

[omar@omar ~]$ cd snapd

The “makepkg -si” command is used once again to build and install a package from the Arch Linux User Repository (AUR) using the makepkg utility. In this case, the command starts by building the “snapd” package from the sources that are present in the snapd directory. After the user’s confirmation, the command installs the package and runs the post-transaction hooks.

[omar@omar snapd]$ makepkg -si

==> Making package: snapd 2.58-1 (Mon Jan 23 01:41:17 2023)

-> Downloading snapd-2.58.tar.xz...

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0

100 6817k 100 6817k 0 0 447k 0 0:00:15 0:00:15 --:--:-- 529k

==> Validating source files with sha256sums...

Total Installed Size: 62.04 MiB

:: Proceed with installation? [Y/n] y

(1/1) checking keys in keyring [###########################################] 100%

:: Running post-transaction hooks...

It’s time to enable the snapd service in our Arch Linux system. The “systemctl” command is used to control and check the status of the systemd units (services, sockets, etc.). Therefore, we use it here to enable and start the snapd.socket service on the system. The service creates a symlink to the service in the /etc/systemd/system/sockets.target.wants/ directory so that it is automatically started at boot time.

[omar@omar snapd]$ sudo systemctl enable --now snapd.socket

Created symlink /etc/systemd/system/sockets.target.wants/snapd.socket → /usr/lib/systemd/system/snapd.socket.

The "sudo ln -s /var/lib/snapd/snap /snap" command is used to create a symbolic link from the /var/lib/snapd/snap directory to the /snap directory. The /var/lib/snapd/snap directory is where the snapd service stores all of the snaps that are installed on the system.

[omar@omar snapd]$ sudo ln -s /var/lib/snapd/snap /snap

Last but not least, the attached instructions install the Slack app from the Snap Store. It installs the Slack package from the “stable” channel and shows the progress of the installation. Once the installation is complete, the command shows that the Slack package version 4.29.149 from Slack is installed and also warns about 1 new warning that can be viewed by running the “snap warnings” command.

[omar@omar ~]$ sudo snap install slack

[sudo] password for omar:

2023-01-23T01:49:49-05:00 INFO Waiting for automatic snapd restart...

Download snap "slack" (68) from channel "stable" 32% 131kB/s 10.5m

Download snap "slack" (68) from channel "stable" slack 4.29.149 from Slack✓ installed

WARNING: There is 1 new warning. See 'snap warnings'.

Conclusion

Because it makes real-time communication and collaboration easy for developers and system administrators who are operating on Arch Linux projects, it can be very helpful to them. It may be used, for instance, to promote communication and cooperation among team members who are engaged in the same project. Slack for Arch Linux can help the teams collaborate more effectively, communicate more effectively, and speed up the overall development.

About the author

Omar Farooq

Hello Readers, I am Omar and I have been writing technical articles from last decade. You can check out my writing pieces.