Re: Problem with Synaptic
On Fri, Nov 12, 2021 at 08:19:15AM -0500, Gene Heskett wrote:
> On Friday 12 November 2021 07:36:01 Eduardo M KALINOWSKI wrote:
>
> > On 12/11/2021 09:30, Stephen P. Molnar wrote:
> > > This is the immediate problem that I need to fix:
> > >
> > > comp@AbNormal:~$ sudo apt upgrade
> > > Reading package lists... Done
> > > Building dependency tree
> > > Reading state information... Done
> > > E: The package brscan4 needs to be reinstalled, but I can't find an
> > > archive for it.
> > >
> > > sudo apt update ran without any problems.
> >
> > Try downloading it again (since it's not part of the archives, it must
> > be downloaded manually) and running 'apt install ./brscan4-......deb'
> > (substituting the actual file name, naturally). The './' is necessary
> > to tell apt it's a file name.
>
> No, to be precise, it tells the file system its a file in the currently
> cd'd to directory. Which may not be in the env's $PATH.
It's both, Gene.
To the file system (kernel), ./foo is a relative pathname that's 100%
equivalent to foo. There's no difference at all.
However, to apt-get or apt, ./foo and foo are very different arguments.
The former is a relative path to a file, and the latter is a package name.
This has nothing to do with $PATH, because we're not talking about running
a program from the current directory. We're talking about apt-get and apt
specifically.
You're thinking of the conventional use of "./configure" and so on to run
a program in the current directory. This is necessary because PATH should
never contain "." (or the empty string) as one of its components. That
would allow the execution of *anything* at all in the current directory
(the way MS-DOS works). This is a huge security problem on a multi-user
system, where someone could leave a script in /tmp hoping for you to
run it accidentally.
It *works* because the shell bypasses the PATH search if the command that
you give it contains a slash character. ./configure means "run the program
named configure in the current directory, and don't search anywhere else".
Reply to: