How to install Chromium without snap?

You can use Chromium from the Debian buster repository.
For example, if your Ubuntu release is eoan (19.10):

  1. Remove Ubuntu chromium packages:

    sudo apt remove chromium-browser chromium-browser-l10n chromium-codecs-ffmpeg-extra
    
  2. Add Debian buster repository. Create a file /etc/apt/sources.list.d/debian.list with the following content:

    deb http://ftp.debian.org/debian buster main
    deb http://ftp.debian.org/debian buster-updates main
    deb http://ftp.debian.org/debian-security buster/updates main
    
  3. Add the Debian signing keys:

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DCC9EFBF77E11517
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AA8E81B4331F7F50
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 112695A0E562B32A
    
  4. Configure apt pinning. Create a file /etc/apt/preferences.d/chromium.pref with the following content:

    # Note: 2 blank lines are required between entries
    Package: *
    Pin: release a=eoan
    Pin-Priority: 500
    
    Package: *
    Pin: origin "ftp.debian.org"
    Pin-Priority: 300
    
    # Pattern includes 'chromium', 'chromium-browser' and similarly
    # named dependencies:
    Package: chromium*
    Pin: origin "ftp.debian.org"
    Pin-Priority: 700
    
  5. Install Chromium again

    sudo apt update
    sudo apt install chromium
    

This should install the latest chromium from the debian-security repository and look like this:

$ sudo apt install chromium
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  chromium-common chromium-sandbox libjpeg62-turbo libminizip1 libre2-5
Suggested packages:
  chromium-l10n chromium-shell chromium-driver
The following NEW packages will be installed:
  chromium chromium-common chromium-sandbox libjpeg62-turbo libminizip1 libre2-5
0 upgraded, 6 newly installed, 0 to remove and 9 not upgraded.
Need to get 56,6 MB of archives.
After this operation, 202 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://de.archive.ubuntu.com/ubuntu eoan/universe amd64 libminizip1 amd64 1.1-8build1 [20,2 kB]
Get:2 http://ftp.de.debian.org/debian buster/main amd64 libjpeg62-turbo amd64 1:1.5.2-2+b1 [134 kB]
Get:3 http://de.archive.ubuntu.com/ubuntu eoan/universe amd64 libre2-5 amd64 20190801+dfsg-1 [162 kB]
Get:4 http://ftp.de.debian.org/debian-security buster/updates/main amd64 chromium-common amd64 79.0.3945.130-1~deb10u1 [257 kB]
Get:5 http://ftp.de.debian.org/debian-security buster/updates/main amd64 chromium amd64 79.0.3945.130-1~deb10u1 [55,9 MB]
Get:6 http://ftp.de.debian.org/debian-security buster/updates/main amd64 chromium-sandbox amd64 79.0.3945.130-1~deb10u1 [141 kB]

As you can see, only Chromium related packages are fetched from the Debian repository, but all others like libminizip1 still come from your Ubuntu repository.


For the time being, the chromium-beta PPA also works fine & does not require snap: https://launchpad.net/~saiarcot895/+archive/ubuntu/chromium-beta

To add this PPA:

sudo add-apt-repository ppa:saiarcot895/chromium-beta
sudo apt-get update

For completeness: Another option is to use nix:

# Install nix
curl -L https://nixos.org/nix/install | sh
. /home/$USER/.nix-profile/etc/profile.d/nix.sh
nix-env --install chromium
chromium

Unfortunately, for getting chromium into your launcher, you'll need to execute whereis chromium and, supposed the outcome is /nix/store/bpmjh6lpsfn3fwrkqx9kp1013x4hqk2y-user-environment/bin/chromium, create ~/.local/share/applications/chromium.desktop (e.g. by gedit ~/.local/share/applications/chromium.desktop) like

[Desktop Entry]
Name=chromium
Exec=/nix/store/bpmjh6lpsfn3fwrkqx9kp1013x4hqk2y-user-environment/bin/chromium
Comment=
Terminal=false
Icon=gnome-panel-launcher
Type=Application

While this basically works, chromium sometimes hangs with this solution, I have no clue why. So if you are ok with the Debian-solution, stick to it.