如何在Ubuntu和CentOS上安装Chromium()

本文概述

  • 在Ubuntu上安装Chromium
  • 在CentOS上安装Chromium
在Ubuntu和CentOS上安装Headless Chromium的分步指南。
什么是无头Chrome?
无头Chrome就像是在没有UI(浏览器)的情况下运行chrome浏览器一样, 也就是说, 它在无头环境中运行, 这对于运行自动化测试非常有用。
那么, 无头Chrome为我们解锁了什么?
最令人兴奋的事情之一就是能够测试最新和最强大的Web平台功能, 例如ES6模块, 服务工作者和流。借助无头chrome, 你可以编写应用程序并使用最新的渲染功能测试这些应用程序。它解锁的另一件事是这些很棒的功能, 例如网络节流, 设备仿真和代码覆盖。
使用无头chrome, 你甚至无需编写任何代码即可执行测试, 那不是很酷!
你可以仅通过命令行执行它们。以下是一些常用的标志。
--screenshot #to take a screenshot--print-to-pdf #converting webpage to PDF--dump-dom #dump DOM (document object model) data

在Ubuntu上安装Chromium步骤1:更新Ubuntu
首先, 在Ubuntu中更新软件包。
[email  protected]:~$ sudo apt-get updateHit:1 https://download.docker.com/linux/ubuntu bionic InReleaseHit:2 http://security.ubuntu.com/ubuntu cosmic-security InReleaseHit:3 http://ppa.launchpad.net/ansible/ansible/ubuntu cosmic InReleaseHit:5 http://apt.puppetlabs.com bionic InReleaseIgn:6 http://pkg.jenkins.io/debian-stable binary/ InReleaseHit:7 http://us.archive.ubuntu.com/ubuntu cosmic InReleaseHit:8 http://ppa.launchpad.net/canonical-chromium-builds/stage/ubuntu cosmic InReleaseHit:9 http://pkg.jenkins.io/debian-stable binary/ ReleaseHit:10 http://us.archive.ubuntu.com/ubuntu cosmic-updates InReleaseHit:11 http://us.archive.ubuntu.com/ubuntu cosmic-backports InReleaseHit:4 https://packages.cloud.google.com/apt kubernetes-xenial InReleaseReading package lists... Done

步骤2:安装依赖项
【如何在Ubuntu和CentOS上安装Chromium()】安装安装所需的这些依赖项。
[email  protected]:~$ sudo apt-get install -y libappindicator1 fonts-liberationReading package lists... DoneBuilding dependency treeReading state information... Donefonts-liberation is already the newest version (1:1.07.4-7).fonts-liberation set to manually installed.The following package was automatically installed and is no longer required:chromium-codecs-ffmpeg-extraUse 'sudo apt autoremove' to remove it.The following additional packages will be installed:libdbusmenu-gtk4 libindicator7Suggested packages:indicator-applicationThe following NEW packages will be installed:libappindicator1 libdbusmenu-gtk4 libindicator70 upgraded, 3 newly installed, 0 to remove and 238 not upgraded.Need to get 68.2 kB of archives.After this operation, 280 kB of additional disk space will be used.Get:1 http://us.archive.ubuntu.com/ubuntu cosmic/universe amd64 libdbusmenu-gtk4 amd64 16.04.1+18.10.20180917-0ubuntu1 [27.1 kB]Get:2 http://us.archive.ubuntu.com/ubuntu cosmic/universe amd64 libindicator7 amd64 16.10.0+18.04.20180321.1-0ubuntu1 [21.7 kB]Get:3 http://us.archive.ubuntu.com/ubuntu cosmic/universe amd64 libappindicator1 amd64 12.10.1+18.04.20180322.1-0ubuntu1 [19.4 kB]Fetched 68.2 kB in 1s (61.1 kB/s)Selecting previously unselected package libdbusmenu-gtk4:amd64.(Reading database ... 318270 files and directories currently installed.)Preparing to unpack .../libdbusmenu-gtk4_16.04.1+18.10.20180917-0ubuntu1_amd64.deb ...Unpacking libdbusmenu-gtk4:amd64 (16.04.1+18.10.20180917-0ubuntu1) ...Selecting previously unselected package libindicator7.Preparing to unpack .../libindicator7_16.10.0+18.04.20180321.1-0ubuntu1_amd64.deb ...Unpacking libindicator7 (16.10.0+18.04.20180321.1-0ubuntu1) ...Selecting previously unselected package libappindicator1.Preparing to unpack .../libappindicator1_12.10.1+18.04.20180322.1-0ubuntu1_amd64.deb ...Unpacking libappindicator1 (12.10.1+18.04.20180322.1-0ubuntu1) ...Setting up libindicator7 (16.10.0+18.04.20180321.1-0ubuntu1) ...Setting up libdbusmenu-gtk4:amd64 (16.04.1+18.10.20180917-0ubuntu1) ...Processing triggers for libc-bin (2.28-0ubuntu1) ...Setting up libappindicator1 (12.10.1+18.04.20180322.1-0ubuntu1) ...Processing triggers for libc-bin (2.28-0ubuntu1) ...libappindicator1: This library is used to export menu by an application into a panelfonts-liberation: This library has similar font metrics as Arial, Times and Courier

在某些情况下, 安装chrome可能会缺少一些依赖项。因此, 运行以下命令, 它将安装安装Chrome所需的所有缺少的依赖项。
[email  protected]:~$ sudo apt-get install -fThe following additional packages will be installed:at-spi2-core cpp cpp-7 dconf-gsettings-backend dconf-service gcc-7-base glib-networking glib-networking-commonglib-networking-services gsettings-desktop-schemas libappindicator3-1 libasound2 libasound2-data libatk-bridge2.0-0libatspi2.0-0 libauthen-sasl-perl libcairo-gobject2 libcolord2 libdata-dump-perl libdbusmenu-gtk3-4 libdconf1libdrm-amdgpu1 libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libencode-locale-perl libepoxy0 libfile-basedir-perllibfile-desktopentry-perl libfile-listing-perl libfile-mimeinfo-perl libfont-afm-perl libfontenc1 libgl1libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libglvnd0 libglx-mesa0 libglx0 libgtk-3-0 libgtk-3-bin libgtk-3-commonlibhtml-form-perl libhtml-format-perl libhtml-parser-perl libhtml-tagset-perl libhtml-tree-perl libhttp-cookies-perllibhttp-daemon-perl libhttp-date-perl libhttp-message-perl libhttp-negotiate-perl libice6 libindicator3-7libio-html-perl libio-socket-ssl-perl libipc-system-simple-perl libisl19 libjson-glib-1.0-0 libjson-glib-1.0-commonliblcms2-2 libllvm9 liblwp-mediatypes-perl liblwp-protocol-https-perl libmailtools-perl libmpc3 libnet-dbus-perllibnet-http-perl libnet-smtp-ssl-perl libnet-ssleay-perl libnspr4 libnss3 libpciaccess0 libproxy1v5 librest-0.7-0libsensors4 libsm6 libsoup-gnome2.4-1 libsoup2.4-1 libtie-ixhash-perl libtimedate-perl libtry-tiny-perl liburi-perllibwayland-client0 libwayland-cursor0 libwayland-egl1 libwww-perl libwww-robotrules-perl libx11-protocol-perllibx11-xcb1 libxaw7 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-shape0 libxcb-sync1 libxft2libxkbcommon0 libxml-parser-perl libxml-twig-perl libxml-xpathengine-perl libxmu6 libxpm4 libxshmfence1 libxss1 libxt6libxtst6 libxv1 libxxf86dga1 libxxf86vm1 perl-openssl-defaults x11-common x11-utils x11-xserver-utils xdg-utilsSuggested packages:cpp-doc gcc-7-locales indicator-application libasound2-plugins alsa-utils libdigest-hmac-perl libgssapi-perl colordgvfs liblcms2-utils libcrypt-ssleay-perl lm-sensors libauthen-ntlm-perl libunicode-map8-perl libunicode-string-perlxml-twig-tools mesa-utils nickle cairo-5c xorg-docs-coreThe following NEW packages will be installed:at-spi2-core cpp cpp-7 dconf-gsettings-backend dconf-service gcc-7-base glib-networking glib-networking-commonglib-networking-services gsettings-desktop-schemas libappindicator3-1 libasound2 libasound2-data libatk-bridge2.0-0libatspi2.0-0 libauthen-sasl-perl libcairo-gobject2 libcolord2 libdata-dump-perl libdbusmenu-gtk3-4 libdconf1libdrm-amdgpu1 libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libencode-locale-perl libepoxy0 libfile-basedir-perllibfile-desktopentry-perl libfile-listing-perl libfile-mimeinfo-perl libfont-afm-perl libfontenc1 libgl1libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libglvnd0 libglx-mesa0 libglx0 libgtk-3-0 libgtk-3-bin libgtk-3-commonlibhtml-form-perl libhtml-format-perl libhtml-parser-perl libhtml-tagset-perl libhtml-tree-perl libhttp-cookies-perllibhttp-daemon-perl libhttp-date-perl libhttp-message-perl libhttp-negotiate-perl libice6 libindicator3-7libio-html-perl libio-socket-ssl-perl libipc-system-simple-perl libisl19 libjson-glib-1.0-0 libjson-glib-1.0-commonliblcms2-2 libllvm9 liblwp-mediatypes-perl liblwp-protocol-https-perl libmailtools-perl libmpc3 libnet-dbus-perllibnet-http-perl libnet-smtp-ssl-perl libnet-ssleay-perl libnspr4 libnss3 libpciaccess0 libproxy1v5 librest-0.7-0libsensors4 libsm6 libsoup-gnome2.4-1 libsoup2.4-1 libtie-ixhash-perl libtimedate-perl libtry-tiny-perl liburi-perllibwayland-client0 libwayland-cursor0 libwayland-egl1 libwww-perl libwww-robotrules-perl libx11-protocol-perllibx11-xcb1 libxaw7 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-shape0 libxcb-sync1 libxft2libxkbcommon0 libxml-parser-perl libxml-twig-perl libxml-xpathengine-perl libxmu6 libxpm4 libxshmfence1 libxss1 libxt6libxtst6 libxv1 libxxf86dga1 libxxf86vm1 perl-openssl-defaults x11-common x11-utils x11-xserver-utils xdg-utils0 upgraded, 117 newly installed, 0 to remove and 58 not upgraded.1 not fully installed or removed.Need to get 40.7 MB of archives.After this operation, 369 MB of additional disk space will be used.Do you want to continue? [Y/n] YFetched 40.7 MB in 4s (9470 kB/s)Extracting templates from packages: 100%

步骤3:下载Chrome
下载适用于Ubuntu系统的谷歌浏览器稳定包。
[email  protected]:~$ wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb--2020-01-15 13:58:41-- https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.debResolving dl.google.com (dl.google.com)... 172.217.163.78, 2404:6800:4007:80c::200eConnecting to dl.google.com (dl.google.com)|172.217.163.78|:443... connected.HTTP request sent, awaiting response... 200 OKLength: 62204098 (59M) [application/x-debian-package]Saving to: ‘google-chrome-stable_current_amd64.deb’google-chrome-stable_current_amd64. 100%[=================================================================> ] 59.32M 11.1MB/s in 29s2020-01-15 13:59:10 (2.04 MB/s) - ‘google-chrome-stable_current_amd64.deb’ saved [62204098/62204098]

步骤4:安装Chrome
安装稳定的软件包。
[email  protected]:~$ sudo dpkg -i google-chrome*.debSelecting previously unselected package google-chrome-stable.(Reading database ... 318285 files and directories currently installed.)Preparing to unpack google-chrome-stable_current_amd64.deb ...Unpacking google-chrome-stable (79.0.3945.117-1) ...Setting up google-chrome-stable (79.0.3945.117-1) ...update-alternatives: using /usr/bin/google-chrome-stable to provide /usr/bin/x-www-browser (x-www-browser) in auto modeupdate-alternatives: using /usr/bin/google-chrome-stable to provide /usr/bin/gnome-www-browser (gnome-www-browser) in auto modeupdate-alternatives: using /usr/bin/google-chrome-stable to provide /usr/bin/google-chrome (google-chrome) in auto modeProcessing triggers for gnome-menus (3.13.3-11ubuntu2) ...Processing triggers for desktop-file-utils (0.23-3ubuntu2) ...Processing triggers for mime-support (3.60ubuntu1) ...Processing triggers for man-db (2.8.4-2) ...

步骤5:检查Chrome版本
要确认安装成功完成, 请检查Google Chrome版本。
[email  protected]:~$ google-chrome-stable -versionGoogle Chrome 79.0.3945.117

可选:无头运行Chrome
让我向你展示在无头模式下运行chrome的示例。
我将以无头模式运行chrome, 并且https://gf.dev/的所有内容都将另存为pdf文件。
[email  protected]:~$ google-chrome-stable --headless --disable-gpu --print-to-pdf https://gf.dev/[0115/140930.772108:INFO:headless_shell.cc(620)] Written to file output.pdf.

你可以看到一个文件output.pdf
[email  protected]:~$ ls -l out*-rw------- 1 geekflare geekflare 80799 Jan 15 14:09 output.pdf[email  protected]:~$

接下来, 我将向你展示如何在CentOS系统中进行相同的设置。
在CentOS上安装Chromium步骤1:更新CentOS
使用以下命令更新CentOS系统。
[[email  protected] ~]$ sudo yum update

步骤2:建立Chrome存放区
将google chrome存储库添加到系统。在/etc/yum.repos.d/中创建一个文件google-chrome.repo, 并在下面添加详细信息。
[[email  protected] ~]$ sudo gedit /etc/yum.repos.d/google-chrome.repo[google-chrome]name=google-chromebaseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearchenabled=1gpgcheck=1gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

步骤3:安装Chrome
运行下面的yum命令在CentOS系统上安装google chrome。
[[email  protected] ~]$ sudo yum install google-chrome-stableLast metadata expiration check: 0:04:04 ago on Wed 22 Jan 2020 01:06:24 PM EST.Dependencies resolved.================================================================================Package Arch Version Repository Size================================================================================Installing:google-chrome-stable x86_64 79.0.3945.130-1 google-chrome 60 MInstalling dependencies:libXScrnSaver x86_64 1.2.3-1.el8 AppStream 31 klibappindicator-gtk3 x86_64 12.10.0-19.el8 AppStream 43 klibdbusmenu x86_64 16.04.0-12.el8 AppStream 140 klibdbusmenu-gtk3 x86_64 16.04.0-12.el8 AppStream 41 klibindicator-gtk3 x86_64 12.10.1-14.el8 AppStream 70 kliberation-fonts noarch 1:2.00.3-4.el8 BaseOS 19 kliberation-serif-fonts noarch 1:2.00.3-4.el8 BaseOS 607 kTransaction Summary================================================================================Install 8 PackagesTotal download size: 60 MInstalled size: 213 MIs this ok [y/N]: yDownloading Packages:(1/8): libXScrnSaver-1.2.3-1.el8.x86_64.rpm 146 kB/s | 31 kB 00:00(2/8): libappindicator-gtk3-12.10.0-19.el8.x86_ 171 kB/s | 43 kB 00:00(3/8): libdbusmenu-gtk3-16.04.0-12.el8.x86_64.r 691 kB/s | 41 kB 00:00(4/8): libindicator-gtk3-12.10.1-14.el8.x86_64. 558 kB/s | 70 kB 00:00(5/8): liberation-fonts-2.00.3-4.el8.noarch.rpm 74 kB/s | 19 kB 00:00(6/8): liberation-serif-fonts-2.00.3-4.el8.noar 1.3 MB/s | 607 kB 00:00(7/8): libdbusmenu-16.04.0-12.el8.x86_64.rpm 121 kB/s | 140 kB 00:01(8/8): google-chrome-stable-79.0.3945.130-1.x86 8.4 MB/s | 60 MB 00:07--------------------------------------------------------------------------------Total 6.5 MB/s | 60 MB 00:09warning: /var/cache/dnf/google-chrome-eb0d6f10ccbdafba/packages/google-chrome-stable-79.0.3945.130-1.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 7fac5991: NOKEYgoogle-chrome 49 kB/s | 10 kB 00:00Importing GPG key 0x7FAC5991:Userid : "Google, Inc. Linux Package Signing Key < [email  protected]> "Fingerprint: 4CCA 1EAF 950C EE4A B839 76DC A040 830F 7FAC 5991From : https://dl-ssl.google.com/linux/linux_signing_key.pubIs this ok [y/N]: yKey imported successfullyImporting GPG key 0xD38B4796:Userid : "Google Inc. (Linux Packages Signing Authority) < [email  protected]> "Fingerprint: EB4C 1BFD 4F04 2F6D DDCC EC91 7721 F63B D38B 4796From : https://dl-ssl.google.com/linux/linux_signing_key.pubIs this ok [y/N]: yKey imported successfullyRunning transaction checkTransaction check succeeded.Running transaction testTransaction test succeeded.Running transactionPreparing : 1/1Installing : libdbusmenu-16.04.0-12.el8.x86_64 1/8Installing : libdbusmenu-gtk3-16.04.0-12.el8.x86_64 2/8Installing : liberation-serif-fonts-1:2.00.3-4.el8.noarch 3/8Installing : liberation-fonts-1:2.00.3-4.el8.noarch 4/8Installing : libindicator-gtk3-12.10.1-14.el8.x86_64 5/8Installing : libappindicator-gtk3-12.10.0-19.el8.x86_64 6/8Installing : libXScrnSaver-1.2.3-1.el8.x86_64 7/8Running scriptlet: google-chrome-stable-79.0.3945.130-1.x86_64 8/8Installing : google-chrome-stable-79.0.3945.130-1.x86_64 8/8Running scriptlet: google-chrome-stable-79.0.3945.130-1.x86_64 8/8Redirecting to /bin/systemctl start atd.serviceVerifying : libXScrnSaver-1.2.3-1.el8.x86_64 1/8Verifying : libappindicator-gtk3-12.10.0-19.el8.x86_64 2/8Verifying : libdbusmenu-16.04.0-12.el8.x86_64 3/8Verifying : libdbusmenu-gtk3-16.04.0-12.el8.x86_64 4/8Verifying : libindicator-gtk3-12.10.1-14.el8.x86_64 5/8Verifying : liberation-fonts-1:2.00.3-4.el8.noarch 6/8Verifying : liberation-serif-fonts-1:2.00.3-4.el8.noarch 7/8Verifying : google-chrome-stable-79.0.3945.130-1.x86_64 8/8Installed:google-chrome-stable-79.0.3945.130-1.x86_64libXScrnSaver-1.2.3-1.el8.x86_64libappindicator-gtk3-12.10.0-19.el8.x86_64libdbusmenu-16.04.0-12.el8.x86_64libdbusmenu-gtk3-16.04.0-12.el8.x86_64libindicator-gtk3-12.10.1-14.el8.x86_64liberation-fonts-1:2.00.3-4.el8.noarchliberation-serif-fonts-1:2.00.3-4.el8.noarchComplete!

步骤4:检查Chrome版本
要确认安装成功完成, 请检查google chrome版本。
[[email  protected] ~]$ google-chrome -versionGoogle Chrome 79.0.3945.130

可选:无头运行Chrome
让我向你展示在CentOS上以无头模式运行chrome的示例。
我将以捕获屏幕快照为例。下面的此命令将在无头模式下运行chrome, 并且https://www.chromestatus.com/的所有内容都将另存为pdf文件。
[[email  protected] ~]$ google-chrome-stable --headless --disable-gpu --print-to-pdf https://www.chromestatus.com/[0122/131602.193881:INFO:headless_shell.cc(620)] Written to file output.pdf.

创建了output.pdf文件, 其中包含https://www.chromestatus.com/的所有内容
[[email  protected] ~]$ ls -ltotal 61208drwxr-xr-x. 2 geekflare geekflare 6 Sep 25 11:49 Desktopdrwxr-xr-x. 2 geekflare geekflare 6 Sep 25 11:49 Documentsdrwxr-xr-x. 2 geekflare geekflare 6 Sep 25 11:49 Downloads-rw-rw-r--. 1 geekflare geekflare 180 Jan 22 13:05 google-chrome.repo-rw-------. 1 geekflare geekflare 146776 Jan 22 13:16 output.pdf

这就是如何在Ubuntu&CentOS上安装Chrome并以无头模式运行它的全部内容。

    推荐阅读