Skip to main content
Cromite for Linux provides a privacy-focused browsing experience with support for modern Linux distributions. Special configuration is required for Ubuntu 24.04 and derivatives due to AppArmor restrictions.

System Requirements

  • Linux Distribution: Most modern distributions (Ubuntu, Debian, Fedora, Arch, etc.)
  • Architecture: x64 (64-bit)
  • Storage: ~200MB free space
  • Dependencies: Standard Linux libraries (usually pre-installed)

Installation

1

Download Linux Package

Download the latest Linux release:Save it to your preferred location, such as:
  • ~/Downloads/
  • /tmp/
2

Extract the Archive

Open a terminal and extract the tarball:
cd ~/Downloads
tar -xzf chrome-lin64.tar.gz
This creates a chrome-lin directory containing the Cromite browser.
3

Move to Installation Directory

Move Cromite to a permanent location:
Install for current user only (no sudo required):
mv chrome-lin ~/.local/share/cromite
Or create a custom location:
mkdir -p ~/Applications
mv chrome-lin ~/Applications/cromite
4

Launch Cromite

Run Cromite from the command line:
# If installed in ~/.local/share/cromite
~/.local/share/cromite/chrome

# If installed in /opt/cromite with symlink
cromite
On first launch:
  1. Choose your default search engine
  2. Review initial settings
  3. Grant necessary permissions if prompted

Ubuntu 24.04 and Derivatives

Ubuntu 24.04, Kubuntu, Xubuntu, and other Ubuntu derivatives implement AppArmor restrictions on unprivileged user namespaces. This prevents Chromium-based browsers from launching without additional configuration.
If you see an error like “namespace creation failed” or Cromite won’t start, you need to apply one of the solutions below.

Why This Happens

Starting with Ubuntu 24.04, AppArmor restricts the use of unprivileged user namespaces for security reasons. Chromium’s sandbox requires these namespaces to function properly. This solution allows Cromite to use namespaces while maintaining system security.
1

Create Profile File

Create the AppArmor profile file with sudo:
sudo nano /etc/apparmor.d/chrome
2

Add Profile Configuration

Paste the following configuration, replacing the path with your actual Cromite installation path:
abi <abi/4.0>,
include <tunables/global>

profile cromite /home/user/cromite/chrome-lin/chrome flags=(unconfined) {
  userns,

  include if exists <local/chrome>
}
Example paths:
  • User install: /home/username/.local/share/cromite/chrome
  • System install: /opt/cromite/chrome
  • Custom location: /home/username/Applications/cromite/chrome
Replace /home/user/cromite/chrome-lin/chrome with the absolute path to your chrome binary.
3

Save and Exit

Press Ctrl+O to save, then Ctrl+X to exit nano.
4

Apply the Profile

Load the new AppArmor profile:
sudo apparmor_parser -r /etc/apparmor.d/chrome
If successful, you’ll see no output. Any errors will be displayed.
5

Verify and Launch

Check the profile is loaded:
sudo aa-status | grep cromite
Launch Cromite normally:
~/.local/share/cromite/chrome
This profile persists across reboots and system updates. You only need to create it once.

Solution 2: Temporary Disable (Until Reboot)

Quickly disable the restriction for testing or temporary use:
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
Characteristics:
  • Takes effect immediately
  • No reboot required
  • Reverts on next reboot
  • Affects all applications, not just Cromite
This reduces system security. Use for testing only, not for permanent solutions.
Permanently disable unprivileged namespace restrictions:
1

Create Configuration File

sudo nano /etc/sysctl.d/60-apparmor-namespace.conf
2

Add Configuration

Add this single line:
kernel.apparmor_restrict_unprivileged_userns=0
3

Apply Configuration

sudo sysctl -p /etc/sysctl.d/60-apparmor-namespace.conf
This disables the restriction system-wide and permanently. It reduces security for all applications. Use Solution 1 (AppArmor profile) instead.

Creating Desktop Integration

Desktop Entry (Application Menu)

Create a .desktop file to add Cromite to your application menu:
1

Create Desktop Entry

nano ~/.local/share/applications/cromite.desktop
2

Add Desktop Entry Configuration

[Desktop Entry]
Version=1.0
Name=Cromite
Comment=Privacy-focused Chromium fork
Exec=/home/username/.local/share/cromite/chrome %U
Terminal=false
Icon=/home/username/.local/share/cromite/product_logo_256.png
Type=Application
Categories=Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;
StartupNotify=true
StartupWMClass=cromite
Replace /home/username/.local/share/cromite with your actual installation path.
3

Update Desktop Database

update-desktop-database ~/.local/share/applications
4

Launch from Application Menu

Cromite should now appear in your application menu under “Internet” or “Network”.

Command Line Alias

Add a convenient command-line alias:
Edit ~/.bashrc:
echo 'alias cromite="~/.local/share/cromite/chrome"' >> ~/.bashrc
source ~/.bashrc
Now you can launch with just:
cromite

Automatic Updates

Automatic updates for Linux are currently under development.
Linux auto-update development is tracked in Issue #771.

Manual Update Process

Until automatic updates are available, manually update Cromite:
1

Download Latest Release

cd ~/Downloads
wget https://github.com/uazo/cromite/releases/latest/download/chrome-lin64.tar.gz
2

Backup User Data (Optional)

Your profile data is separate from the application, but to be safe:
cp -r ~/.config/chromium ~/.config/chromium.backup
3

Extract New Version

tar -xzf chrome-lin64.tar.gz
4

Replace Installation

# For user installation
rm -rf ~/.local/share/cromite
mv chrome-lin ~/.local/share/cromite

# For system installation
sudo rm -rf /opt/cromite
sudo mv chrome-lin /opt/cromite
5

Update AppArmor Profile

If you created an AppArmor profile and the path changed:
sudo apparmor_parser -r /etc/apparmor.d/chrome

Update Notification Script

Create a simple script to check for updates:
#!/bin/bash
# Save as ~/bin/cromite-check-update.sh

CURRENT_VERSION=$(~/.local/share/cromite/chrome --version | awk '{print $2}')
LATEST_VERSION=$(curl -s https://api.github.com/repos/uazo/cromite/releases/latest | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/')

if [ "$CURRENT_VERSION" != "$LATEST_VERSION" ]; then
    notify-send "Cromite Update Available" "New version $LATEST_VERSION is available (current: $CURRENT_VERSION)"
fi
Make it executable and add to cron:
chmod +x ~/bin/cromite-check-update.sh

# Add to crontab (check daily at 9 AM)
(crontab -l 2>/dev/null; echo "0 9 * * * ~/bin/cromite-check-update.sh") | crontab -

Troubleshooting

Error messages:
  • “The namespace sandbox failed to initialize”
  • “Failed to move to new namespace”
  • Silent crash with no window
Solutions:
  1. Apply AppArmor profile (Solution 1 above) - recommended
  2. Temporarily disable restrictions for testing
  3. Check AppArmor logs: sudo journalctl -xe | grep apparmor
Verify profile path:
# Check where chrome binary actually is
which cromite
# or
ls -la ~/.local/share/cromite/chrome
Update profile path:
  1. Edit /etc/apparmor.d/chrome
  2. Fix the path to match your installation
  3. Reload: sudo apparmor_parser -r /etc/apparmor.d/chrome
Check for errors:
sudo aa-status | grep cromite
sudo journalctl -xe | grep apparmor
If Cromite won’t start due to missing libraries:
sudo apt update
sudo apt install -y libnss3 libatk1.0-0 libatk-bridge2.0-0 \
  libcups2 libdrm2 libxkbcommon0 libxcomposite1 \
  libxdamage1 libxrandr2 libgbm1 libpango-1.0-0 \
  libcairo2 libasound2 libxshmfence1
If you get “Permission denied” when trying to launch:
# Make the chrome binary executable
chmod +x ~/.local/share/cromite/chrome

# If installed system-wide
sudo chmod +x /opt/cromite/chrome
Refresh desktop database:
update-desktop-database ~/.local/share/applications

# Force cache refresh (may vary by desktop environment)
killall plasmashell && plasmashell &  # KDE
killall gnome-shell && gnome-shell &   # GNOME
Verify file syntax:
desktop-file-validate ~/.local/share/applications/cromite.desktop
Check audio libraries:
# Ubuntu/Debian
sudo apt install libasound2 pulseaudio

# Test if ALSA works
speaker-test -t wav -c 2
Verify Cromite can access audio:
  1. Launch Cromite from terminal to see error messages
  2. Visit a website with audio
  3. Check volume settings in system and Cromite

Advanced Configuration

Command Line Flags

Launch Cromite with additional flags:
# Custom user data directory
~/.local/share/cromite/chrome --user-data-dir=~/.config/cromite-custom

# Enable debug logging
~/.local/share/cromite/chrome --enable-logging --v=1

# Disable GPU acceleration (if graphics issues)
~/.local/share/cromite/chrome --disable-gpu

# Multiple profiles
~/.local/share/cromite/chrome --profile-directory="Profile 1"
Create a wrapper script with your preferred flags:
#!/bin/bash
# Save as ~/bin/cromite

exec ~/.local/share/cromite/chrome \
  --user-data-dir="$HOME/.config/cromite" \
  --disable-background-networking \
  "$@"

Wayland Support

For native Wayland support (better HiDPI, security):
~/.local/share/cromite/chrome --ozone-platform=wayland
Make it permanent by adding to your desktop entry or alias:
alias cromite="~/.local/share/cromite/chrome --ozone-platform=wayland"
Wayland support provides better security isolation and HiDPI scaling on supported desktop environments.

Next Steps

Privacy Features

Explore built-in privacy protections

Ad Blocking

Configure content blocking and filters

Settings Guide

Customize Cromite settings

FAQ

Find answers to common questions

Build docs developers (and LLMs) love