Package: command-not-found
Version: 23.04.0-1
Severity: important

Dear Maintainer,

*** Reporter, please consider answering these questions, where appropriate ***

   * What led up to the situation?
Installing "command-not-found" using aptitude, enabling it in /etc/bashrc, and
misspelling a command. A warning was displayed:

"WARNING:root:could not open file
'/etc/apt/sources.list.d/DebianRepositories.sources': Unable to parse section
data".

Nothing else.

   * What exactly did you do (or not do) that was effective (or
     ineffective)?

Searching the DBTS provided information about similar behaviors (#965020,
#1021953), but specially #966307 because to be able to make it work the same
non-sense steps described there must be taken. A similar solution can be found
at StackExchange [1].

1) According to the documentation of "command-not-found"[2], issuing "update-
command-not-found(8)" must create a list of programs from whatever is at
/var/cache/apt/apt-file/. It did nothing, not even an error, because there was
nothing there.

2) Therefore, apt-file(1) must be executed manually as "root" user! Even when
it is a normal user command (again, according to its documentation man page):

~$ LANG=C apt-file update
Reading package lists... Done
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission
denied)
E: Unable to lock directory /var/lib/apt/lists/
W: Problem unlinking the file /var/cache/apt/pkgcache.bin - RemoveCaches (13:
Permission denied)
W: Problem unlinking the file /var/cache/apt/srcpkgcache.bin - RemoveCaches
(13: Permission denied)

3) After the previous step, and issuing another "update-command-not-found"
(also as root), the database of programs appears at /var/lib/command-not-found/
as described in [1] and [2]. However, the directory /var/cache/apt/apt-file
still does not exist. So, what will happen the next time "update-command-not-
found" is issued?

4) Currently, when misspelling a command in a CLI, the warning about not being
able to open the sources.list file is still displayed.

~$ LANG=C datE


WARNING:root:could not open file
'/etc/apt/sources.list.d/DebianRepositories.sources': Unable to parse section
data

Command 'datE' not found, did you mean:
  command 'dat' from deb liballegro4-dev
  command 'date' from deb coreutils
Try: apt install <deb name>

I do not really know whether the permission of the user play any role in the
crazy behavior of the "command-not-found" tool. However, the fact of getting a
warning about not being able to access a file usually available (mode 644)
every time I misspelled a command was the cause of investigating it.

As a user, I think this is too much trouble.

Anyway, I take advantage of the message to thank you in advance for your work
and help.

Regards, robert

[1] https://unix.stackexchange.com/questions/585107/debian-command-not-found-
error-local-variable-cnf-referenced-before-assignme

[2] /usr/share/doc/command-not-found/README.Debian

*** End of the template - remove these template lines ***


-- System Information:
Debian Release: trixie/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 6.3.0-2-amd64 (SMP w/8 CPU threads; PREEMPT)
Locale: LANG=ca_ES.UTF-8, LC_CTYPE=ca_ES.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages command-not-found depends on:
ii  apt-file     3.3
ii  lsb-release  12.0-2
ii  python3      3.11.4-5
ii  python3-apt  2.6.0

command-not-found recommends no packages.

Versions of packages command-not-found suggests:
pn  snapd  <none>

-- no debconf information

Reply via email to