[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: fmtree: line 0: unknown keyword sha256digest



On Thu, Jan 16, 2020 at 06:29:11AM -0800, David Christensen wrote:
> As I understand Unix paths, 'foo' and './foo' should be the same file. But,
> apparently apt treats the first as a package name while treating the second
> as a path to a *.deb package file.  Subtle; and a good trap for the unwary.

Long before apt gained the ability to handle local .deb files, someone
had already used the / character to act as a separator between a
package name and a release name.  As in,

 apt-get install bash/testing

which means something like "install the version of the bash package
from a repository named testing, instead of the most recent version
you can find".

Therefore, a command like

 apt-get install mydebs/foobar.deb

looks syntactically like "install the package named mydebs from a
repository named foobar.deb".  Apt isn't clever enough to figure
out that mydebs refers to a local directory, and foobar.deb to a
local file.

When the ability to read local .deb files was added, apt needed some
way to tell what's intended to be a pathname, and what's intended to
be a package/repository concatenation.

The compromise of "if it starts with / or ./ or ../" was decided upon,
because the empty string and . and .. aren't legal package names.


Reply to: