WSL2安装locate命令一直显示Initializing mlocate database; this may take some time,进度一直卡在60%
WSL2安装locate命令一直显示Initializing mlocate database; this may take some time,进度一直卡在60%
- 1.软件环境⚙️
- 2.问题描述🔍
- 3.解决方法🐡
- 3.1.卸载`locate`
- 3.2.清理`locate`安装失败的错误文件
- 3.3.在`locate`数据库文件中屏蔽`Windows`路径`/mnt`并重新安装`locate`
- 3.4.更新`locate`数据库文件`mlocate.db`
- 4.结果预览🤔
1.软件环境⚙️
Windows10
教育版64位
WSL 2
Ubuntu 20.04
2.问题描述🔍
今天遇到需要定位某个文件在系统中的位置,这就需要用到locate
命令,刚好我的电脑没有安装,所以使用如下命令安装:
sudo apt install mlocate
安装倒是很快完成了,就是初始化数据库的时候,一直卡在60%
不动,等了1个小时也一直是60%
,并显示:
Initializing mlocate database; this may take some time
具体报错情况如下:
那这个时候又该怎么办呢?
3.解决方法🐡
其实这是因为WSL2
是Windows
的子系统,它两是可以互相访问对方的文件系统的,这就导致locate
在创建索引数据库的时候,会把Windows的文件也创建索引!!!
严重拖慢速度:
- 你的
Windows
如是一个经常用的系统,本来文件就多;- 跨文件系统进行文件操作,速度本身就慢;
PS
:当然,如果你有特殊需求,比如你也想要快速定位Windows
的文件,那本文你可以不用看了,让locate
接着创建数据库就行
那么,我们只需要让locate
不创建Windows
文件的索引即可,而我们知道Windows
的硬盘往往挂载在/mnt
目录。因此,我们只需要将这个目录屏蔽就OK啦~~
3.1.卸载locate
首先将我们的bash
强制关闭,但是就算你关闭了bash
,刚才创建locate
数据的那个进程也会在后端运行,所以我们用purge
命令是没办法卸载的,不信试试:
sudo apt purge mlocate
会报错:
正在等待缓存锁:无法获得锁 /var/lib/dpkg/lock-frontend。锁正由进程 1154(apt)持有... 93秒
因此,我们首先需要杀掉这个进程(如上图中是1154):
sudo kill 1154
这个时候往往不会只有一个,直接再次输入卸载命令,会提示新的进程,那我们接着杀:
sudo kill 1223
直到报错:
E: dpkg 被中断,您必须手工运行 ‘sudo dpkg --configure -a’ 解决此问题。
这一步的总体截图如下:
3.2.清理locate
安装失败的错误文件
因为是强制中断安装,所以会有一些错误文件产生,如/var/lib/dpkg/updates
文件夹里面的资料有错误,使得更新软件的程序出现错误,所以得把它们完全删除,通过sudo apt-get update
这个指令会重新建立这些资料:
sudo rm /var/lib/dpkg/updates/*
sudo apt-get update
3.3.在locate
数据库文件中屏蔽Windows
路径/mnt
并重新安装locate
打开locate
数据库文件
sudo gedit /etc/updatedb.conf
直接将/mnt
添加到 /etc/updatedb.conf
中的 PRUNEPATHS
变量:
再次运行sudo apt install mlocate
命令,如果你是SSD
的话,会直接秒建,如果你是HDD
的话,等个几十秒也没问题了:
PS
:如果你的安装的时候检测到你已经创建了/etc/updatedb.conf
文件,记得使用老文件,而不是使用新的文件,这样的话,又回到一开始的情况了!
3.4.更新locate
数据库文件mlocate.db
这个时候如果使用locate
命令,会报错:locate: 无法执行 stat () /var/lib/mlocate/mlocate.db': 没有那个文件或目录
,这个时候更新一下就好:
sudo updatedb
4.结果预览🤔
再次运行locate
命令,可以看到查找到了我们需要定位文件的位置:
渣男!都看到这里了,还不赶紧点赞
,评论
,收藏
走一波?
Pursuit@H: 感谢UP主 解决了困扰我数小时的难题
weixin_45889709: 牛批!特意重新登陆给你点赞
m0_72897891: 这个问题解决了吗
任博啥时候能毕业?: 哈哈哈,低调低调
田冬泽: 博主厉害