Because apt
is passing off info to the back end package database and packages can be marked as "selected for install" etc. This database lists only the package name, which is usually only part of the file name. The ./x_something.deb
is a filename reference, not a package name, and the ./
part of it is a relative path reference.
A better real example might be for Google Chrome.
Filename is google-chrome-stable_current_amd64.deb
plus whatever path reference you have to it.
Package name is actually google-chrome-stable
. The version info (current
) and architecture of the build (amd64
) aren't needed in the package name - architecture is controlled by other parts of the package management subsystem, and the version number could/will/would change to numeric, and is referenced in the various Release
and other index files that the apt
family fetches (based on sources.list
contents) and parses on apt-get update
or apt update
ivan@darkstar:~$ dpkg -l | grep google-chrome
ii google-chrome-stable 76.0.3809.100-1 amd64 The web browser from Google
ivan@darkstar:~$