I'm trying to figure out why doesn't apt-get
detect the newer version of chromium-browser
.
This is on Ubuntu 16.04.3 LTS.
First of all, this is the output of sudo apt update
:
Hit:1 http://lu.archive.ubuntu.com/ubuntu xenial InRelease
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
This is the output of apt-cache policy chromium-browser
:
chromium-browser:
Installed: 73.0.3683.86-0ubuntu0.16.04.1
Candidate: 73.0.3683.86-0ubuntu0.16.04.1
Version table:
*** 73.0.3683.86-0ubuntu0.16.04.1 100
100 /var/lib/dpkg/status
49.0.2623.108-0ubuntu1.1233 500
500 http://lu.archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
It shows my installed version 73
as being the newest and it matches the candidate version, so it wouldn't update anything.
If I try to simulate the installation with apt-get install -s chromium-browser
, I get:
chromium-browser is already the newest version (73.0.3683.86-0ubuntu0.16.04.1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
However, there's a newer version 78
in the universe repository, in this folder:
http://lu.archive.ubuntu.com/ubuntu/pool/universe/c/chromium-browser/
Here's the link to the actual .deb I'm thinking of:
http://lu.archive.ubuntu.com/ubuntu/pool/universe/c/chromium-browser/chromium-browser_78.0.3904.108-0ubuntu0.16.04.1_amd64.deb
And here's a screenshot of the said folder for future readers when the above link becomes dead:
Also note that if I add this ppa
…
sudo add-apt-repository ppa:canonical-chromium-builds/stage
…then the output of apt-cache policy chromium browser
is this:
chromium-browser:
Installed: 73.0.3683.86-0ubuntu0.16.04.1
Candidate: 78.0.3904.108-0ubuntu0.16.04.1
Version table:
78.0.3904.108-0ubuntu0.16.04.1 500
500 http://ppa.launchpad.net/canonical-chromium-builds/stage/ubuntu xenial/main amd64 Packages
*** 73.0.3683.86-0ubuntu0.16.04.1 100
100 /var/lib/dpkg/status
49.0.2623.108-0ubuntu1.1233 500
500 http://lu.archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
Now it does see as the candidate the newer version 78
.
However, my question is why doesn't it detect the version 78
from the universe repository, and why do I even need to add the ppa, since I demonstrated above that the .deb exists.
Note: I'm not asking for instructions how to update a package – I know how to install a .deb file. Instead, I'm trying to understand how does the apt tool work.
Best Answer
TL;DR
You have to enable xenial-updates and xenial-security in your
/etc/apt/sources.list
or on Updates tab of Software & Updates (software-properties-gtk
).It seems that you incorrectly understand the pool folder structure. It contains all packages for all releases.
You should go to https://packages.ubuntu.com and run search for chromium-browser package amd64 to determine correct versions for your current release.
Then you will get the following for xenial and xenial-updates:
So you can get the latest possible package version from universe pocket:
On my fully updated system the output is the following:
$ apt-cache policy chromium-browser chromium-browser: Installed: 78.0.3904.108-0ubuntu0.16.04.1 Candidate: 78.0.3904.108-0ubuntu0.16.04.1 Version table: *** 78.0.3904.108-0ubuntu0.16.04.1 500 500 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages 500 http://archive.ubuntu.com/ubuntu xenial-security/universe amd64 Packages 100 /var/lib/dpkg/status 49.0.2623.108-0ubuntu1.1233 500 500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
In your particular case it seems that xenial-updates is missed in your
/etc/apt/sources.list
file. You need to re-enable it from terminal or by visiting Updates tab of Software & Updates (software-properties-gtk
) .Also I need to note that current Ubuntu 16.04 LTS version is 16.04.6 LTS.
So really you need to enable xenial-updates, xenial-security, then update package lists with
sudo apt-get update
and install all newest dependencies withsudo apt-get dist-upgrade
. This will solve many security- and update- related problems.