FedoraRHEL Based

How To Install Snap on Fedora 43

Install Snap on Fedora 43

Fedora 43 arrives with impressive updates including GNOME 49, RPM 6.0, and Linux kernel 6.17, solidifying its position as a cutting-edge distribution. While Fedora champions RPM packages and promotes Flatpak as its universal packaging format, many users seek access to Snap’s extensive application ecosystem. Snap packages offer automatic updates, dependency bundling, and cross-distribution compatibility that make them valuable additions to any Linux system.

Installing Snap on Fedora 43 requires a straightforward process involving snapd installation, service configuration, and system integration. This guide walks you through every step, from initial system preparation to advanced troubleshooting, ensuring you can leverage Snap’s capabilities while maintaining your Fedora system’s stability. Whether you’re a system administrator managing multiple applications or a desktop user seeking access to specific software unavailable in official repositories, this tutorial provides the comprehensive knowledge you need.

Understanding Snap Package Manager

What is Snap?

Snap represents Canonical’s universal Linux packaging format designed to simplify application distribution across different distributions. Unlike traditional package managers that rely on system libraries, Snap packages bundle all required dependencies within self-contained units called snaps. This approach eliminates dependency conflicts and ensures applications run identically regardless of the underlying Linux distribution.

The snapd daemon manages Snap packages on your system, handling automatic updates in the background without user intervention. Each snap runs within a confined environment using AppArmor security policies, isolating applications from the rest of your system. This sandboxing mechanism enhances security by limiting what applications can access, though Fedora’s use of SELinux instead of AppArmor affects this implementation.

Snap’s automatic rollback capability stands out as a significant advantage. When updates cause problems, snapd automatically reverts to the previous working version, minimizing downtime and reducing troubleshooting needs. The system maintains multiple versions of installed snaps, allowing manual rollbacks when needed.

Snap vs. Other Package Formats on Fedora

Fedora users have three primary package format options: native RPM packages, Flatpak applications, and Snap packages. Each format serves specific purposes and offers distinct advantages depending on your requirements.

RPM packages integrate deeply with Fedora’s ecosystem, providing excellent performance and system-level access. The DNF package manager resolves dependencies from Fedora’s curated repositories, ensuring compatibility and stability. Choose RPM packages for system utilities, development tools, and applications where native performance matters most.

Flatpak represents Fedora’s preferred universal packaging format, offering better integration with SELinux policies than Snap. Applications installed through Flatpak work seamlessly with Fedora’s security framework and typically launch faster than their Snap counterparts. Fedora Workstation includes Flatpak support by default, making it the natural choice for desktop applications.

Snap excels when you need applications unavailable in RPM or Flatpak formats, require the absolute latest upstream versions, or want proprietary software distribution. The Snap Store hosts thousands of applications, many maintained directly by upstream developers, ensuring rapid access to new releases and features.

Prerequisites and System Requirements

System Requirements

Before installing Snap on Fedora 43, verify your system meets these basic requirements. You need a functioning Fedora 43 installation—any edition works, including Workstation, Server, KDE Spin, or alternative desktop environments. The installation process requires sudo privileges or root access to install packages and modify system configurations.

Ensure your system has an active internet connection for downloading packages and accessing repositories. Snap packages themselves can be large, so maintain adequate disk space—at least 2GB of free space ensures comfortable operation, though requirements vary based on the applications you install.

Important Considerations for Fedora

Fedora’s security-focused approach using SELinux affects Snap’s sandboxing behavior. While Snap relies on AppArmor for application confinement, Fedora systems use SELinux instead. The snapd-selinux package attempts to bridge this gap, but Snap’s security isolation functions differently on Fedora compared to Ubuntu-based distributions. This doesn’t prevent Snap usage but represents an important architectural difference to understand.

Fedora 43’s transition to Wayland-only for GNOME sessions affects some Snap applications designed primarily for X11. Most modern applications support Wayland natively, but occasional compatibility issues may arise with older software. Keep this consideration in mind when installing desktop applications through Snap.

Fedora Silverblue and other immutable variants present unique challenges for Snap installation due to their read-only filesystem architecture. While workarounds exist, this guide focuses on traditional Fedora installations where Snap integration works most reliably.

Pre-Installation Steps

Step 1: Update Your Fedora 43 System

Beginning with a fully updated system prevents potential conflicts and ensures you have the latest security patches. Updating your system before installing new software represents a fundamental best practice in Linux administration.

Open your terminal and execute the following command:

sudo dnf upgrade --refresh

This command refreshes repository metadata and upgrades all installed packages to their latest versions. The --refresh flag ensures DNF downloads fresh repository information, catching recently released updates. The upgrade process typically takes several minutes depending on how many packages require updates and your internet connection speed.

DNF displays all packages scheduled for upgrade and requests confirmation before proceeding. Review the list to understand what changes the update brings, then type ‘y’ and press Enter to continue. Once completed, you’ll see a summary showing how many packages were upgraded, installed, or removed.

Step 2: Install Required Dependencies

Snap packages use the SquashFS filesystem format for compression and distribution. Fedora needs specific utilities to mount and access these compressed filesystems properly. The fuse and squashfuse packages provide this essential functionality.

Install these dependencies with this command:

sudo dnf install fuse squashfuse -y

The -y flag automatically confirms the installation, streamlining the process. These lightweight packages install quickly and establish the foundation for Snap’s operation. FUSE (Filesystem in Userspace) allows non-privileged users to mount filesystems, while squashfuse specifically handles SquashFS archives that Snap packages use.

After installation completes, verify the packages installed correctly:

rpm -q fuse squashfuse

This command returns the installed versions of both packages, confirming successful installation.

Installing Snapd on Fedora 43

Step 3: Install Snapd Package

Fedora maintains snapd in its official repositories, making installation straightforward through DNF. Unlike some distributions requiring third-party repositories, Fedora users access snapd directly from trusted Fedora infrastructure.

Execute the installation command:

sudo dnf install snapd

DNF resolves all snapd dependencies automatically, including snap-confine (which handles Snap’s security confinement) and snapd-selinux (which provides SELinux policy modules for Snap operation). The installation typically requires downloading approximately 30-50MB of packages.

When prompted, review the package list and confirm the installation. The process installs several components:

  • snapd: The main daemon managing Snap packages
  • snap-confine: Security confinement binary
  • snapd-selinux: SELinux policies for Snap integration
  • squashfuse: Already installed in the previous step

After installation completes, snapd is present on your system but not yet actively running.

Step 4: Enable and Start Snapd Services

Snapd operates as a systemd service, requiring explicit activation to begin functioning. Enabling the service ensures it starts automatically during system boot, while starting it immediately activates snapd for current session use.

Use systemd’s socket activation feature with this command:

sudo systemctl enable --now snapd.socket

The --now flag combines enable and start operations in a single command. Socket activation means systemd listens for Snap-related requests and launches the full snapd service on-demand, improving boot times and reducing resource consumption.

Verify the socket activated successfully:

sudo systemctl status snapd.socket

You should see “active (listening)” in the output, confirming the socket is ready to launch snapd when needed. Additionally, enable the main snapd service:

sudo systemctl enable --now snapd.service

Check its status similarly:

sudo systemctl status snapd.service

The service should show “active (running)” status. If you see any errors, review the troubleshooting section later in this article.

Step 5: System Reboot

Rebooting your system after installing snapd ensures all PATH modifications take effect and services initialize properly. While technically optional, rebooting prevents subtle issues that arise from incomplete environment updates.

Reboot with this command:

sudo reboot

Alternatively, if rebooting isn’t convenient, log out of your current session and log back in. This refreshes your user environment and loads the updated PATH configuration. However, rebooting remains the most reliable approach, particularly for server environments or when troubleshooting connection issues.

After your system restarts, the snapd service runs automatically and your environment includes necessary Snap paths.

Post-Installation Configuration

Step 6: Enable Classic Snap Support

Snap packages come in different confinement levels. Classic snaps require access to system resources outside the standard sandbox, necessitating a symbolic link that connects Snap’s expected directory structure with Fedora’s actual snapd paths.

Create the required symbolic link:

sudo ln -s /var/lib/snapd/snap /snap

This command creates a symbolic link at /snap pointing to /var/lib/snapd/snap, where snapd actually stores installed Snap packages. Without this link, classic snaps fail to install or run properly, displaying error messages about missing directories.

Verify the symbolic link exists:

ls -la /snap

The output should show the symlink pointing to /var/lib/snapd/snap. This configuration step is crucial for compatibility with many popular applications distributed as classic snaps, including development tools and IDEs.

Step 7: Configure PATH Environment Variable

The /snap/bin directory contains executable files for installed Snap applications. Adding this directory to your PATH environment variable allows you to run Snap applications by name without typing full paths.

Modern Fedora systems typically configure this automatically after reboot. Verify your PATH includes the Snap binary directory:

echo $PATH

Look for /snap/bin or /var/lib/snapd/snap/bin in the output. If you don’t see these paths, add them manually to your shell configuration file.

For Bash users, edit your .bashrc file:

echo 'export PATH=$PATH:/snap/bin' >> ~/.bashrc

Then reload your configuration:

source ~/.bashrc

Zsh users should modify .zshrc instead, while Fish shell users need different syntax for their config.fish file. After configuration, newly opened terminal sessions recognize Snap applications immediately.

Step 8: Verify Snapd Installation

Confirm snapd installed correctly and operates properly by checking its version:

snap version

This command displays comprehensive version information including the snap command version, snapd version, snap series, and relevant release details. Successful output resembles:

snap    2.60.4
snapd   2.60.4
series  16
fedora  43

Additionally, verify the snapd service runs without issues:

sudo systemctl status snapd.service

You should see an “active (running)” status with recent log entries showing normal operation. Any error messages here indicate configuration problems requiring attention before proceeding.

Testing Your Snap Installation

Installing Your First Snap Package

The hello-world snap provides a simple way to test your Snap installation’s functionality. This minimal snap verifies that snapd can download, install, and execute applications properly.

Install the test snap:

sudo snap install hello-world

Snapd downloads the package, mounts it, and configures necessary system integration. The process typically completes within seconds for this small test package. You’ll see progress indicators and a confirmation message upon successful installation.

Run the test application:

hello-world

The command outputs a simple greeting message confirming successful execution. This test validates that Snap packages install correctly, executables reach your PATH, and the snapd daemon functions as expected.

Installing a Practical Application

Move beyond testing with a real-world application installation. VLC media player serves as an excellent example due to its popularity and availability through Snap.

Search for VLC in the Snap Store:

snap find vlc

This command queries the Snap Store and displays matching packages with their descriptions, publishers, and versions. You’ll see various VLC-related packages, with the official VLC snap typically appearing first.

Install VLC:

sudo snap install vlc

The installation downloads several hundred megabytes depending on the package size and configures desktop integration. After installation completes, launch VLC from your application menu or directly from the terminal:

vlc

The application launches normally, demonstrating successful Snap integration with your Fedora desktop environment.

Essential Snap Commands and Usage

Searching for Snap Packages

The Snap Store hosts thousands of applications across various categories. Searching efficiently helps you discover available software without browsing the web interface.

Search for packages using keywords:

snap find [keyword]

For example, searching for text editors:

snap find editor

Results display package names, versions, publishers, and brief descriptions. The “Notes” column indicates important characteristics like whether a package is a classic snap or comes from a verified publisher (marked with a checkmark).

Filter searches by categories or specific criteria using additional parameters. Explore the Snap Store website for more detailed browsing and application discovery.

Installing Snap Packages

Basic installation follows a simple syntax:

sudo snap install [package-name]

Snap packages distribute through different channels representing stability levels:

  • stable: Production-ready releases (default)
  • candidate: Release candidates for testing
  • beta: Beta versions with newer features
  • edge: Development builds with latest changes

Install from a specific channel:

sudo snap install [package-name] --channel=beta

Classic snaps require an additional flag acknowledging their broader system access:

sudo snap install --classic [package-name]

The --classic flag explicitly confirms you understand the package runs with reduced confinement. Many development tools and system utilities require classic confinement to function properly.

Listing Installed Snaps

View all installed Snap packages:

snap list

Output shows package names, versions, revisions, tracking channels, publishers, and notes about each installation. The revision number identifies the specific build installed, useful for troubleshooting and rollback operations.

Get detailed information about a specific snap:

snap info [package-name]

This command displays comprehensive details including available channels, installation status, snap description, and command aliases.

Updating Snap Packages

Snapd automatically checks for and installs updates in the background, typically four times daily. This automatic behavior ensures you receive security patches and new features without manual intervention.

Manually trigger updates for a specific package:

sudo snap refresh [package-name]

Update all installed snaps:

sudo snap refresh

Check for available updates without installing them:

snap refresh --list

Control automatic update timing:

sudo snap set system refresh.timer=4:00-7:00

This example restricts automatic updates to the 4:00-7:00 AM window, preventing unexpected updates during work hours.

Removing Snap Packages

Uninstall packages you no longer need:

sudo snap remove [package-name]

By default, snapd retains user data and configuration even after removal, allowing clean reinstallation later. Completely remove a package including all data:

sudo snap remove --purge [package-name]

The --purge flag deletes application data, preferences, and configurations permanently. Use this option carefully, ensuring you’ve backed up important information first.

Managing Snap Revisions

Snapd maintains multiple revisions of installed packages, enabling rollbacks when updates cause problems. View all revisions:

snap list --all [package-name]

Disabled revisions appear in the output, showing previous versions still stored on your system. Revert to the previous version:

sudo snap revert [package-name]

This command switches back to the last-used revision, useful when new versions introduce bugs or compatibility issues. Reversion happens instantly since the previous version remains cached locally.

Installing Snap Store GUI (Optional)

Graphical Interface for Snap Management

Command-line management works perfectly for many users, but graphical interfaces provide convenient alternatives for desktop users preferring visual application browsing.

Install the Snap Store application:

sudo snap install snap-store

This official Snap Store client provides a user-friendly interface for discovering, installing, and managing Snap applications. The installation takes a few moments and integrates with your application menu.

Launch Snap Store from your desktop environment’s application launcher or terminal:

snap-store

The interface displays featured applications, categories, and search functionality. Browse available software visually, read full descriptions, view screenshots, and manage installations through point-and-click operations.

Note that some Fedora installations include GNOME Software, which can also manage Snap packages when snapd is installed. However, the dedicated Snap Store application often provides better integration and more detailed package information.

Troubleshooting Common Issues

Issue 1: “unknown filesystem type ‘squashfs'” Error

This error occurs when kernel modules for SquashFS aren’t loaded, particularly in minimal installations, container environments, or cloud images.

Verify squashfuse installation:

rpm -q squashfuse

If missing, install it:

sudo dnf install squashfuse

For minimal or container installations, ensure kernel modules are available:

sudo dnf install kernel-modules

After installation, reboot your system to load the necessary modules. Check if the squashfs module loaded:

lsmod | grep squashfs

If the module doesn’t appear, manually load it:

sudo modprobe squashfs

Issue 2: Snap Commands Not Found After Installation

PATH configuration issues cause this problem, preventing your shell from locating Snap executables.

Verify the /snap/bin directory exists:

ls -la /snap/bin

Check your current PATH:

echo $PATH

If /snap/bin or /var/lib/snapd/snap/bin don’t appear in your PATH, add them manually. For Bash:

echo 'export PATH=$PATH:/snap/bin' >> ~/.bashrc
source ~/.bashrc

Alternatively, log out and back in or reboot your system. These actions ensure environment variables reload with updated configurations. After PATH updates take effect, test by running:

snap version

Issue 3: Classic Snap Installation Fails

Classic snaps fail when the /snap symbolic link doesn’t exist, causing installation errors mentioning missing directories or paths.

Verify the symbolic link:

ls -la /snap

If the link doesn’t exist or points to the wrong location, create it:

sudo ln -s /var/lib/snapd/snap /snap

Remove broken links first if necessary:

sudo rm /snap
sudo ln -s /var/lib/snapd/snap /snap

Retry the classic snap installation after fixing the symbolic link. Permission issues may also cause failures; ensure you’re using sudo for installation commands.

Issue 4: SELinux Denials and Permission Errors

Fedora’s SELinux policies may conflict with Snap’s expected behavior, generating AVC (Access Vector Cache) denials that appear in system logs.

Check your SELinux status:

getenforce

View recent SELinux denials:

sudo ausearch -m avc -ts recent

The snapd-selinux package installed with snapd provides SELinux policies designed to work with Snap. Verify it’s installed:

rpm -q snapd-selinux

If SELinux denials persist, check for snapd-selinux updates:

sudo dnf upgrade snapd-selinux

Important: Avoid setting SELinux to permissive mode as a workaround. This compromises your system’s security without solving the underlying problem. If specific applications experience persistent SELinux conflicts, consider using their Flatpak or RPM versions instead, which integrate better with Fedora’s security framework.

Issue 5: Slow Snap Application Launch Times

Snap applications often launch slower than native packages due to mounting overhead and sandboxing initialization. This represents expected behavior rather than a configuration error.

First launches take longer as snapd performs initial setup and caching. Subsequent launches improve but may still feel slower than RPM-packaged alternatives. Several factors contribute to this:

  • SquashFS filesystem mounting adds overhead
  • Sandbox initialization requires additional processing
  • Dependency resolution happens within the snap

Optimization strategies include:

  • Allow snaps to remain open rather than repeatedly launching them
  • Use native RPM packages for frequently-used applications where available
  • Consider Flatpak alternatives for better performance on Fedora
  • Upgrade to faster storage (SSD over HDD) to reduce mount times

No configuration changes significantly improve Snap launch times; the architecture inherently includes this overhead.

Issue 6: Fedora Silverblue Compatibility

Fedora Silverblue’s immutable filesystem architecture presents fundamental compatibility challenges for Snap. The read-only root filesystem prevents creating the required /snap symbolic link in its expected location.

While workarounds exist using overlay layers or toolbox containers, they involve complexity that undermines Silverblue’s core design. For Fedora Silverblue users:

  • Use Flatpak as the primary universal package format (already integrated)
  • Access Snap-only applications through toolbox containers
  • Consider traditional Fedora if Snap usage is essential

Ongoing development aims to improve Snap’s compatibility with immutable distributions, but reliable support doesn’t currently exist.

Security Considerations

Understanding Snap Sandboxing on Fedora

Snap’s security model relies on AppArmor for application sandboxing, creating mandatory access control policies that restrict what applications can access. However, Fedora uses SELinux rather than AppArmor for security policy enforcement, creating a fundamental architectural mismatch.

The snapd-selinux package attempts to bridge this gap by providing SELinux policy modules that approximate Snap’s intended security boundaries. While functional, this translation doesn’t provide identical security guarantees that Ubuntu-based distributions achieve with native AppArmor support.

Understand that Snap’s sandbox security operates in a degraded state on Fedora compared to Ubuntu. Applications still run in isolation, but the security mechanisms function differently and may have different strengths and weaknesses.

Snap Confinement Modes

Snap packages use three confinement levels, each with different security implications:

Strict confinement represents the most secure mode, running applications in complete isolation with access only to explicitly granted resources. Strictly confined snaps interact with the system through defined interfaces, maintaining strong security boundaries.

Classic confinement provides applications nearly unrestricted access to system resources, similar to traditionally packaged software. Development tools, system utilities, and applications requiring deep system integration typically use classic confinement. These snaps sacrifice sandboxing benefits for compatibility.

Devmode runs applications without confinement for development and testing purposes. Never use devmode snaps in production environments—they offer no security isolation whatsoever.

Check confinement levels of installed snaps:

snap list

The output’s “Notes” column indicates classic snaps. Prefer strictly confined applications when possible for better security.

Verifying Snap Publishers

The Snap Store allows anyone to publish packages, making publisher verification crucial for security. Verified publishers display checkmarks next to their names, indicating identity confirmation by the Snap Store team.

Before installing any snap, review its information:

snap info [package-name]

Look for:

  • Verified publisher: Checkmark indicates verified identity
  • Publisher name: Official applications typically come from recognizable organizations
  • Installation count: Popular applications have many installs
  • Update frequency: Regular updates suggest active maintenance

Exercise caution with unverified publishers or applications with few installs. Research unfamiliar publishers before installing their packages.

Automatic Updates and Security

Snap’s automatic update mechanism ensures rapid security patch deployment, reducing vulnerability windows compared to manual update workflows. Background updates apply without user intervention, maintaining current versions across all installed applications.

However, automatic updates also introduce risks. Malicious actors compromising a publisher account could push harmful updates automatically to all users. While Canonical monitors the Snap Store for suspicious activity, risks remain.

Control automatic updates for sensitive systems:

sudo snap refresh --hold [package-name]

Held packages skip automatic updates until explicitly refreshed. Review held packages regularly to avoid missing critical security patches.

Congratulations! You have successfully installed Snapcraft. Thanks for using this tutorial for installing the Snap package manager on Fedora 43 Linux system. For additional help or useful information, we recommend you check the official Snapcraft website.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!

r00t

r00t is an experienced Linux enthusiast and technical writer with a passion for open-source software. With years of hands-on experience in various Linux distributions, r00t has developed a deep understanding of the Linux ecosystem and its powerful tools. He holds certifications in SCE and has contributed to several open-source projects. r00t is dedicated to sharing her knowledge and expertise through well-researched and informative articles, helping others navigate the world of Linux with confidence.
Back to top button