如何在不使用snap的情况下安装Chromium?

我刚刚发现,Chromium将只以Snap软件包的形式发布。 我如何继续获取Chromium,而不使用Snap?是否可以在不从源代码构建的情况下实现?
备注:
  • 请按照问题的陈述来回答,不要问“你对Snap有什么意见?”
  • 我不是在问如何移除Snap,只是想知道如何使用当前的deb版本的Chromium。

更新
不,这不是那个链接问题的重复。我不需要知道“为什么它很简单”。我想知道如何在没有快照的情况下使用它。
目前有从源代码构建和下面提到的一些随机PPA。我希望有人能告诉我们可靠的替代方法。

我不使用Chromium,但是https://askubuntu.com/a/1200343/248158对你有用吗? - DK Bose
5@DKBose 我非常(非常!)想要使用那个ppa,但并不是冒犯它的维护者...只是一个随机的ppa而已。如果它有更多的“关注度”,我会使用它的。目前只有3个维护者。不过我会继续关注它...谢谢! - lonix
1这个回答是否解答了你的问题?为什么apt软件包chromium-browser安装snap软件包? - N0rbert
6@N0rbert 不,谢谢。那就是为什么——我想知道如何在没有快照的情况下继续获取它(希望作为deb)。也许随着时间的推移,有人会在这里发布一个不错的解决方案,或者那个PPA会得到一些关注(我现在对它有点谨慎)。 - lonix
这是一个PPA看起来不像是随机的。但他们只提供开发和测试版本。稳定版本已经很久没有更新了。https://launchpad.net/~chromium-team/+archive/ubuntu/dev - hrzhu
1我也不喜欢Snap - 我只是从我目前使用的Ubuntu中将其移除了。它似乎没有造成任何问题,我也不再有东西占用我的环回设备。 - j4nd3r53n
@j4nd3r53n 你从Ubuntu桌面中移除了Snap吗?我以为那是不可能的...如果完全移除Snap,会导致某些功能失效。你是怎么做到的?有什么好的链接等资料吗? - lonix
3@lonix 不是的,我刚刚试过了 - 它似乎不是系统的必要部分。当然,这取决于你认为什么是必要的。如果你执行 apt remove ... 命令,你应该会看到所有即将消失的东西的列表。在我的情况下,有一两个东西我也不会想念。 - j4nd3r53n
@lonix 卸载了,没有问题。只有当你安装依赖于它的东西时,它才会重新出现。 - Sqerstet
这对于在Docker镜像中安装非常有用。 - Mitar
问题是很有道理的,因为通过snap安装的应用程序存在奇怪的文件系统访问限制。顺便说一下,google-chrome-stable可能具备你所需的功能(尽管缺少--temp-profile选项,所以你需要使用--user-data-dir自己创建)。然而,如果你需要Chromium因为它是开源的,那为什么不从源代码构建呢?我能想到的一个原因是更新不会自动进行。 - Brent Bradburn
卸载掉 Snap 吧!然后,恶心的家伙就会消失不见了。这个卸载过程简直太顺利了,就像开发者们知道 Snap 是多么可怕可怕一样。 - Stephen Boston
这个回答解决了您的问题吗?如何完全移除Snap而不丢失Chromium浏览器? - Piotr Henryk Dabrowski
@PiotrHenrykDabrowski 这个问题与之无关。 - lonix
15个回答

你可以从Debian的"buster"软件源中使用Chromium。
例如,如果你的Ubuntu版本是Eoan(19.10):
  1. 删除Ubuntu的Chromium软件包:

    sudo apt remove chromium-browser chromium-browser-l10n chromium-codecs-ffmpeg-extra
    
  2. 添加Debian“buster”存储库。创建一个名为/etc/apt/sources.list.d/debian.list的文件,内容如下:

    deb [arch=amd64 signed-by=/usr/share/keyrings/debian-buster.gpg] http://deb.debian.org/debian buster main
    deb [arch=amd64 signed-by=/usr/share/keyrings/debian-buster-updates.gpg] http://deb.debian.org/debian buster-updates main
    deb [arch=amd64 signed-by=/usr/share/keyrings/debian-security-buster.gpg] http://deb.debian.org/debian-security buster/updates main
    
  3. 添加Debian签名密钥:

    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 112695A0E562B32A
    
  4. 将GPG密钥存储在/usr/share/keyrings

    sudo apt-key export 77E11517 | sudo gpg --dearmour -o /usr/share/keyrings/debian-buster.gpg
    sudo apt-key export 22F3D138 | sudo gpg --dearmour -o /usr/share/keyrings/debian-buster-updates.gpg
    sudo apt-key export E562B32A | sudo gpg --dearmour -o /usr/share/keyrings/debian-security-buster.gpg
    
  5. 配置apt pinning。创建一个名为/etc/apt/preferences.d/chromium.pref的文件,内容如下:

    # 注意:条目之间需要2个空行
    Package: *
    Pin: release a=eoan
    Pin-Priority: 500
    
    Package: *
    Pin: origin "deb.debian.org"
    Pin-Priority: 300
    
    # 模式包括“chromium”、“chromium-browser”和类似的依赖项:
    Package: chromium*
    Pin: origin "deb.debian.org"
    Pin-Priority: 700
    
  6. 重新安装Chromium

    sudo apt update
    sudo apt install chromium
    
这应该从debian-security存储库安装最新的Chromium,并且看起来像这样:
$ 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]

正如你所看到的,只有与Chromium相关的软件包从Debian仓库中获取,而其他所有的软件包,比如libminizip1,仍然来自于你的Ubuntu仓库。

太棒了,正是我在寻找的聪明才智!我要把采纳答案改成这个!谢谢! - lonix
2我采用了类似的方法。详细信息请参考: https://askubuntu.com/a/1206502/164224 - ʇsәɹoɈ
@ʇsәɹoɈ 谢谢。我看到了那种方法,但不确定是否要尝试。据我所知,如果移除snap本身,Ubuntu会出现问题,因为它将各种系统组件作为snap进行分发。所以这不仅仅是针对Chromium的。你有过类似的经历吗? - lonix
4@lonix 我还没有从我的系统中移除snapd,但是snap list告诉我它目前只管理它自己和gtk-common-themes。我可能会保留它的安装,以防Canonical用snap替换更重要的deb软件包。(如果他们这样做,我可能会放弃Ubuntu。)只要没有一个snap目录杂乱地出现在我的主目录中,我可以容忍snapd暂时潜伏在后台。如果他们修复了bug 1575053并从那里的错误中吸取教训,它甚至对我有用。 - ʇsәɹoɈ
16我可能也会放弃Ubuntu... 对此也在考虑。无论是切换到Debian还是其他系统,都觉得太麻烦了。 - lonix
我怀疑Snap不会被用于重要的系统包或安全关键的系统更新。无论如何,现在完全可以安全地将其移除。将来如果另一个Ubuntu deb包需要它作为依赖,并要求重新安装时,你会注意到的。 - pruflyos
1除了snapd作为一个额外的系统服务一直在后台运行之外,每个snap都被挂载为一个单独的循环设备。从用户体验的角度来看,我不认为这是可扩展的。有这么多Linux程序突然被snapd创建的所有这些循环设备所干扰。df -h只是其中一个例子。想象一下,有一天你安装了30个snap应用程序 :-)Ubuntu将不得不修改许多不同的应用程序,以隐藏输出中的snap循环设备。 - pruflyos
5安全deb给了我一个错误,必须使用:deb http://security.debian.org/ buster/updates main contrib non-free。 - Ferroao
1我想知道为什么Ubuntu在其软件仓库中没有提供那个Debian软件包? - jarno
添加这些仓库会对其他软件包产生任何副作用吗? - Eyeslandic
3谢谢@Ferroao。当我将"deb http://security.debian.org/debian-security buster/updates main contrib non-free"添加到debian.list中,而不是上面的最后一行时,它起作用了! - James Bradbury
@jamesBradbury 我最终卸载了这个软件,因为Debian的依赖关系给其他Ubuntu包带来了一场依赖噩梦。 - Ferroao
@jamesBradbury 我觉得我在安装libssl-dev和libsasl2-dev或者它们的Ubuntu版本时遇到了问题。 - Ferroao
5此回答发布后,Debian已将其存储库从ftp子域更改为deb。请参见https://wiki.debian.org/SourcesList#Example_sources.list - Zouppen
只需安装 Flatpak!我解决了所有这个答案的问题,结果却发现我安装的是一个疫情前的 Chrome 版本... 在 RPi4 上与 Disco Donkey 一起使用时崩溃得像个妈妈。flatpak install org.chromium.chromium 真是太棒了! - Ray Foss
2如何更新这个版本? - Heisenberg
无论使用何种方法,snapd都会被重新安装。 - lucian303
@Zouppen,域名从ftp更改为deb是否也涉及到apt pinning /etc/apt/preferences.d/chromium.pref - Timo
@Ferroao,你的解决方案没有起作用,我保留了列表原样,没有改变第三个(security)条目。 - Timo
1@lonix 我现在使用的是Ubuntu 20.04.2 LTS,已经移除了snapd,一切运行正常。Chromium目前版本为90.0.4430.212,使用良好。我还写了一篇关于使用Debian软件包而非snap的方法:https://www.inx.one/blog/debian-repo-on-ubuntu - ʇsәɹoɈ
这在最新的20.04版本上有效,我在安装后删除了仓库和密钥,因为我不经常更新浏览器。 - Liso
请查看当前的Debian sources.list页面,以获取最新的软件源。默认的Bullseye示例在Impish上适用于我! - kontextify
3有人成功在Ubuntu 22.04上运行了吗? - lonix
7在22.04.1 LTS上,我使用bullseye而不是buster,这对我起作用了。 - ternary
铬:错误代码159!怎么办? - Porcupine
错误代码:RESULT_CODE_INVALID_SANDBOX_STATE... 还没搞清楚。以前是好的。编辑:apt autoremove;apt install chromium 让它崩溃得更严重了。 - Dagelf
对我也没用:当我从控制台运行时,出现ERROR:gpu_init.cc(426)] Passthrough is not supported,GL is desktopERROR:sandbox_linux.cc(374)] InitializeSandbox() called with multiple threads in process gpu-process。应用程序启动,但无法访问网页或进行网站渲染(尽管我只尝试过buster)。 - Mario
非常感谢您的反馈。Snap破坏了Slack的认证和KeePassXC的集成,这使得作为snap包的Chromium对我来说无法使用。 - Earl Ruby
1你漏掉了一步。如果Chromium是以snap方式安装的,你需要移除软件包和snap:sudo snap remove chromium - Earl Ruby
如果你遇到了libwebpmux3的依赖问题,请尝试从Debian软件源中安装所需的确切版本,例如apt-get install libwebpmux3=0.6.1-2.1 - bartolo-otrit
1你能告诉我们在哪里找到所有这些密钥吗?我想使用bullseye而不是buster,而且这些密钥不再起作用(或者我搞砸了什么)。这些错误出现在apt update过程中(GPG错误,签名无法验证)。 - undefined

如果你可以接受使用Chrome而不是Chromium,你可以使用Google官方提供的Debian软件包。
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
apt install ./google-chrome-stable_current_amd64.deb

你可以从正常的Chrome下载页面获取下载URL,然后滚动到页面底部并选择“其他平台”。 URL没有直接显示,但您可以在下载历史记录中看到它。
使用apt而不是dpkg也会负责安装所有依赖项-其中snap不是依赖项之一。
从阅读该软件包中的几个文件,我有印象它安装了一个定时任务自动更新Chrome安装,就像我们从Windows中知道的那样。因此,对我来说,这看起来是一个非常可靠的解决方案,无需修补其他发行版或甚至个人PPA的包源。而且它可能长期可用,不需要使用新发行版版本进行过程更新。
我已经在Ubuntu 20.04 LTS上安装了它,并且对我有用,但我仅在Web服务器上以headless方式使用它。 软件包还包括图形桌面环境的配置文件。

在Ubuntu 20.04的标准软件源中有一个名为google-chrome-stable的软件包(我可能最初是通过"Software Boutique"安装的),所以你不需要做任何奇特的操作。 - Brent Bradburn
2@nobar 我看到我系统上安装了那个软件包。我也注意到它在一段时间前已经更新过了。所以我认为我下载的只是那个软件包的一个副本,而且通过apt更容易获取。 - ygoe
@nobar,我的Lubuntu 20.04 LTS的apt无法找到Chrome软件包。 - Timo
@Timo:我做了一些实验,显然只有在通过“软件精品店”安装之后,“google-chrome-stable”才会出现在apt中。Lubuntu有“Discover”,似乎有不同的可用软件包 - 所以我的方法可能对Lubuntu不适用。 - Brent Bradburn
问题是apt install <deb>.debLubuntu上不起作用,我猜你只需要安装软件包。所以我应该使用dpkg,但是依赖关系怎么办呢?我按照这里顶部帖子的手册进行了安装。如果能更新就好,如果不能,我会回到你的解决方案作为一个基础来安装图形化的Chromium。 - Timo
谢谢,对我来说在22.04.1 LTS上运行正常。 - Mario


15这已经在上面提到过了。对于一些人来说可能是一个选择,但请记住它只是一些随机的PPA - 谁知道它是否安全可靠?接受答案中的方法可以确保您获得没有恶意软件的Chromium。 - lonix
1@lonix 他们的项目是开源的 - https://github.com/saiarcot895/chromium-ubuntu-build。而且它是完全更新的,如果对某人来说这很重要,那么接受的答案将安装Chromium 80。 - Sachin
6总的来说,对于像浏览器这样庞大的软件来说,使用随机的PPA可能不是一个好主意。即使它是开源的,可审计性几乎为零。 - Sqerstet
同意关于使用随机PPA的风险的观点。然而,基于snap的Chromium无法访问我单独挂载在/opt文件系统上的文件。非snap版本的Chromium没有这样的限制。除非snap版本能够访问我设备上的所有文件系统,否则我愿意冒着使用基于PPA的版本的风险。 - HippoMan

另一种选择是使用来保证完整性。
# Install nix
curl -L https://nixos.org/nix/install | sh
. /home/$USER/.nix-profile/etc/profile.d/nix.sh
nix-env --install chromium
chromium

不幸的是,要将Chromium放入启动器中,您需要执行whereis chromium命令,并假设结果是/nix/store/bpmjh6lpsfn3fwrkqx9kp1013x4hqk2y-user-environment/bin/chromium,创建~/.local/share/applications/chromium.desktop(例如通过gedit ~/.local/share/applications/chromium.desktop),并添加以下内容:
[Desktop Entry]
Name=chromium
Exec=/nix/store/bpmjh6lpsfn3fwrkqx9kp1013x4hqk2y-user-environment/bin/chromium
Comment=
Terminal=false
Icon=gnome-panel-launcher
Type=Application

虽然这个基本上是有效的,但是使用这种解决方案时,Chromium有时会出现卡顿的情况,我不知道为什么。所以如果你对Debian的解决方案满意的话,就坚持使用它吧。

1对我来说没有起作用。现在你怎么移除所有这些组件? - Pynchia
2只需删除nix文件夹:https://stackoverflow.com/questions/51929461/how-to-uninstall-nix 如果您能进一步说明为什么使用nix安装chromium对您无效,或许可以提供解决方案,以防其他人也遇到同样的问题。 - David Georg Reichelt


1它要快得多...但是AUR和Flatpak存在一个严重的同步错误。Snap已经过时了3个版本。真是让人烦恼。我猜我会尝试一下beta版的Flatpak。如果Xenial是一个选择,我可以直接拥有一个deb文件。 - Ray Foss

没有必要为了使用Flatpak、添加软件源和其他奇怪的东西而烦恼。官方提供了Chromium的二进制文件。
只需直接从源头下载二进制文件并运行即可。

https://download-chromium.appspot.com/

https://www.chromium.org/getting-involved/download-chromium/

解压到你的$HOME/bin目录或/opt或/usr/local/,任何你想要的位置。可从chrome-linux/chrome运行二进制文件。

唯一更好的选择就是使用不带snap的其他Ubuntu版本,并获取自动更新。


1对于一些人来说,这是一个非常好的选择,除非他们自己管理更新。大多数用户更喜欢依赖软件包管理器。 - lonix

在 Ubuntu 22.04 中,您可以使用 Rob Savoury 的软件仓库,并按照 这里 的说明进行操作。
首先移除 snap。
sudo snap remove chromium

然后安装仓库,再次安装Chromium。
  sudo add-apt-repository ppa:savoury1/ffmpeg4
  sudo add-apt-repository ppa:savoury1/chromium
  sudo apt-get update
  sudo apt-get install chromium-browser

注意:我个人不认识Rob,从他人的仓库安装软件总是有风险。

3这已经被提到很多次了 - 虽然对于一些人来说这是一个选择,但要记住它只是一些随机的PPA - 谁知道它是否安全可靠?接受答案中的方法可以确保您获得没有恶意软件的Chromium。 - lonix

另一个选择是从Linux Mint的软件仓库中获取,因为他们自己构建了Chromium,而不是使用snap,你可以立即安装它。

enter image description here

[Downloads]$ apt-cache policy chromium
chromium:
  Installed: 96.0.4664.45~linuxmint1+uma
  Candidate: 96.0.4664.45~linuxmint1+uma
  Version table:
 *** 96.0.4664.45~linuxmint1+uma 100
        100 /var/lib/dpkg/status
     90.0.4430.212-1~deb10u1 500
        500 http://kartolo.sby.datautama.net.id/debian-security buster/updates/main amd64 Packages
     89.0.4389.114-1~deb10u1 500
        500 http://kartolo.sby.datautama.net.id/debian buster/main amd64 Packages

手动安装

  1. 前往 → http://packages.linuxmint.com/pool/upstream/c/chromium/

  2. 下载文件名中包含uma的软件包,这是最新的Mint发行版。

  3. 等待下载完成。

  4. 打开终端,运行以下命令。

    cd ~/Downloads
    sudo apt install ./chromium_96.0.4664.45~linuxmint1+uma_amd64.deb
    

    假设您的下载目录是/home/user/download

从终端安装

此代码片段截至今天(2021年11月28日)仍然有效。如果有新版本发布,您需要相应地更改命令。

wget http://packages.linuxmint.com/pool/upstream/c/chromium/chromium_96.0.4664.45%7elinuxmint1%2buma_amd64.deb
sudo apt install ./chromium_96.0.4664.45~linuxmint1+uma_amd64.deb

这种方法的唯一缺点是,如果有新版本的Chromium发布,你必须手动安装它。不过,你可以选择使用他们的ppa,这样就可以自动接收更新了。

您可以在此处下载适用于Ubuntu 20.04 LTS(Focal)、21.04(Hirsute)和21.10(Impish)的最新官方.deb构建: https://launchpad.net/~phd/+archive/ubuntu/chromium-browser/ 这是一个PPA存储库,包含了最新的官方Ubuntu软件包,最初发布适用于Ubuntu 18.04 LTS(Bionic),并在新版本发布后进行更新。

你们的PPA和其他流行的PPA有什么区别?同样的警告适用于任何核心系统程序的PPA。我并不是不感激你们的努力,只是好奇而已。 - lonix
2它只包含来自Ubuntu 18.04的官方Ubuntu软件包,其中Chromium .deb仍然受支持。 - Piotr Henryk Dabrowski

摆脱快照:
sudo snap remove chromium
sudo apt purge snapd

使用官方的beta版Chromium PPA(来自Chromium团队):
sudo add-apt-repository ppa:chromium-team/beta
sudo apt-get update
sudo apt install chromium-browser 

7这个 PPA 似乎已经停止维护(最后更新于2019年)。 - Archisman Panigrahi
那个“beta”仓库是被维护的,可以使用。(“stable”仓库则没有被维护,尽管“beta”仓库是可用的)。 - Ganton
1按照以下说明进行操作会导致$ chromium-browser 命令 '/usr/bin/chromium-browser' 需要安装 chromium snap。 请使用以下命令进行安装:snap install chromium - Cie6ohpa