Debian 命令未找到错误 - 分配之前引用了局部变量“cnf”

Debian 命令未找到错误 - 分配之前引用了局部变量“cnf”

全新安装 Debian buster 操作系统和软件包后:command-not-found

运行命令:

$ curl
Could not find the database of available applications, run update-command-not-found as root to fix this
Sorry, command-not-found has crashed! Please file a bug report at:
http://www.debian.org/Bugs/Reporting
Please include the following information with the report:

command-not-found version: 0.3
Python version: 3.7.3 final 0
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:    10
Codename:   buster
Exception information:

local variable 'cnf' referenced before assignment
Traceback (most recent call last):
  File "/usr/share/command-not-found/CommandNotFound/util.py", line 23, in crash_guard
    callback()
  File "/usr/lib/command-not-found", line 93, in main
    if not cnf.advise(args[0], options.ignore_installed) and not options.no_failure_msg:
UnboundLocalError: local variable 'cnf' referenced before assignment

以 root身份发布update-command-not-found并不能解决问题。有错误报告,但似乎尚未修复。

答案1

不直观,但错误立即消失apt update

# apt update
Hit:1 http://deb.debian.org/debian buster InRelease
Get:2 http://deb.debian.org/debian buster-updates InRelease [49.3 kB]
Hit:3 http://security.debian.org/debian-security buster/updates InRelease
Get:4 http://deb.debian.org/debian buster/main amd64 Contents (deb) [36.1 MB]
Get:5 http://deb.debian.org/debian buster-updates/main amd64 Contents (deb) [42.3 kB]
Fetched 36.2 MB in 7s (5,009 kB/s)                                                                                                                                    
Reading package lists... Done
Building dependency tree       
Reading state information... Done
All packages are up to date.

# curl

Command 'curl' not found, but can be installed with:

apt install curl

附言。对于那些好奇的人来说,其原因是在全新安装时缺少数据库:

ls -l /var/lib/command-not-found
total 0

之后apt update我们:

ls -l /var/lib/command-not-found
total 2504
-rw-r--r-- 1 root root 2560000 Jul 29 12:34 commands.db
-rw-r--r-- 1 root root     983 Jul 29 12:34 commands.db.metadata

答案2

更改权限位于

sudo chmod o+r /var/lib/command-not-found/commands.db*

但在那之前

检查权限变量状态信息

ls -l /var/lib/command-not-found

total 2588

-rw-r----- 1 root root 2834432 Dec 18 05:25 commands.db
-rw-r----- 1 root root    4712 Dec 18 05:25 commands.db.metadata

它应该是:

ls -l /var/lib/command-not-found

total 2588

-rw-r--r-- 1 root root 2641920 Jan 16 00:27 commands.db
-rw-r--r-- 1 root root    1175 Jan 16 00:27 commands.db.metadata

相关内容