`sudo apt autoclean` 不起作用;而 `sudo apt clean` 有效

vrg*_*nda 3 debian apt

我使用的是 Debian Bullseye Xfce。请在下面找到我的系统的相关详细信息:

vrgovinda@krishna:~$ uname -a
Linux krishna 5.10.0-8-amd64 #1 SMP Debian 5.10.46-5 (2021-09-23) x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

版本apt-get如下:

vrgovinda@krishna:~$ apt-get -v
apt 2.2.4 (amd64)
Supported modules:
*Ver: Standard .deb
*Pkg:  Debian dpkg interface (Priority 30)
 Pkg:  Debian APT solver interface (Priority -1000)
 Pkg:  Debian APT planner interface (Priority -1000)
 S.L: 'deb' Debian binary tree
 S.L: 'deb-src' Debian source tree
 Idx: Debian Source Index
 Idx: Debian Package Index
 Idx: Debian Translation Index
 Idx: Debian dpkg status file
 Idx: Debian deb file
 Idx: Debian dsc file
 Idx: Debian control file
 Idx: EDSP scenario file
 Idx: EIPP scenario file
Run Code Online (Sandbox Code Playgroud)

当我运行时sudo apt autoclean,预计除.deb最新版本之外的所有文件都应被删除,即无法再下载的文件,但在我的系统中不会发生这种情况。我已在下面发布了示例:

/var/cache/apt/archives$ ls
libuuid1_2.36.1-7_amd64.deb  libuuid1_2.36.1-8_amd64.deb  lock
libuuid1_2.36.1-7_i386.deb   libuuid1_2.36.1-8_i386.deb   partial
Run Code Online (Sandbox Code Playgroud)

现在我跑autoclean

/var/cache/apt/archives$ sudo apt autoclean 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Run Code Online (Sandbox Code Playgroud)

该文件夹的内容archives保持原样:

/var/cache/apt/archives$ ls
libuuid1_2.36.1-7_amd64.deb  libuuid1_2.36.1-8_amd64.deb  lock
libuuid1_2.36.1-7_i386.deb   libuuid1_2.36.1-8_i386.deb   partial
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是,按预期sudo apt clean清理了archives文件夹。因此奇怪的是只有该autoclean功能不起作用。

vrgovinda@krishna:~$ sudo apt clean
[sudo] password for vrgovinda: 
vrgovinda@krishna:~$ cd /var/cache/apt/archives/
vrgovinda@krishna:/var/cache/apt/archives$ ls
lock  partial
Run Code Online (Sandbox Code Playgroud)

结果apt policy libuuid1

vrgovinda@krishna:/var/cache/apt/archives$ apt policy libuuid1
 libuuid1: 
 Installed: 2.36.1-8
 Candidate: 2.36.1-8
Version table:
*** 2.36.1-8 500
500 file:/home/vrgovinda/bullseye-deb-files ./ Packages
500 deb.debian.org/debian bullseye/main amd64 Packages
100 /var/lib/dpkg/status
2.36.1-7 500
 500 file:/home/vrgovinda/bullseye-deb-files ./ Packages
Run Code Online (Sandbox Code Playgroud)

cas*_*cas 6

您说“ ……预计除最新版本之外的所有 .deb 文件都应被删除”。事实并非如此autoclean。从man apt-get

clean

clean清除检索到的包文件的本地存储库。它会删除和lock中除文件之外 的所有内容。/var/cache/apt/archives//var/cache/apt/archives/partial/

autoclean(以及auto-clean自 1.1 以来的别名)

与 一样cleanautoclean清除检索到的包文件的本地存储库。不同之处在于,它仅删除无法再下载的包文件,并且基本上没有用处。这使得缓存可以长期维护,而不会失去控制。APT::Clean-Installed如果设置为 ,该配置选项将防止已安装的软件包被删除off

(我添加了额外的格式和粗体强调)