解决 make_ext4fs is not find, it is recommanded to install android-tools-fsutils

编译cluster linux时,遇到make_ext4fs命令无法找到。这个工具是被软件包 android-tools-futils 包含的。这个软件包只支持18.04的系统,在ubuntu20.04和ubuntu22.04上,无法被正确的安装。会报依赖问题,报错的信息是依赖python相关的,但是又没有指定一个版本。

这个命令是被构建系统依赖的,因此没办法使用其它更新的版本。虽然可以直接安装deb包,但是每次使用apt install 时,都会报这个相关的错误。使用 sudo apt --fix-broken install 或者 sudo apt install -f 都是无法解决这个问题的。

这里提供一个解决办法,使用系统为ubuntu22.04 。

下载deb包

找到android-tools-futils软件的deb包:https://www.ubuntuupdates.org/pm/android-tools-fsutils

得到android-tools-fsutils_5.1.1.r38-1.1_amd64.deb。

解压软件包

使用unar工具进行解压:

bash 复制代码
unar android-tools-fsutils_5.1.1.r38-1.1_amd64.deb

解压后内容如下:

bash 复制代码
control.tar.xz  data.tar.xz  debian-binary

这里对我们有用的就是data.tar.xz ,需要对其进行再次解压:

bash 复制代码
unar data.tar.xz

得到data目录,这个目录就是相当于安装位置的根目录,我们只需要把这个目录下的软件复制到根文件系统的根目录下面,就相当于实现了手动安装了。

安装

由于是手动安装,就没有那么多要求了。这里只需要将 data/usr/bin/ 目录下的可执行文件放到 /usr/bin 目录下即可。

bash 复制代码
sudo cp data/usr/bin/* /usr/bin/

命令测试:

bash 复制代码
$ make_ext4fs 
Expected filename after options
make_ext4fs [ -l <len> ] [ -j <journal size> ] [ -b <block_size> ]
    [ -g <blocks per group> ] [ -i <inodes> ] [ -I <inode size> ]
    [ -L <label> ] [ -f ] [ -a <android mountpoint> ]
    [ -S file_contexts ] [ -C fs_config ] [ -T timestamp ]
    [ -z | -s ] [ -w ] [ -c ] [ -J ] [ -o ] [ -v ] [ -B <block_list_file> ]
    <filename> [<directory>]

OK,能识别,安装没有什么问题了。而且使用apt 安装软件时,也不再这个软件包的相关错误。

要卸载掉它,将相关的可执行文件移除就行了:

bash 复制代码
cd /usr/bin; sudo rm ext2simg   img2simg     mkuserimg  simg2simg  test_ext4fixup ext4fixup  make_ext4fs  simg2img   simg_dump
相关推荐
草莓熊Lotso5 小时前
【Redis 初阶】Set 类型深度解析:去重集合的运算能力与实战场景
linux·网络·数据库·windows·redis·tcp/ip·缓存
张文君5 小时前
ubuntu26.04坏道坏块分区隔离急速版260831-V0.12
linux·python
贝锐14 小时前
从国产化信创设备到商用安卓终端,向日葵如何帮助企业实现统一运维管理?
linux·运维·远程控制
Julien200415 小时前
调查和解决 SELinux 问题
linux·运维·服务器·网络·学习方法
小张同学a.17 小时前
Docker 容器实战 1—— docker 基础与镜像构建
linux·运维·docker·容器
Best-Wishes20 小时前
BurpSuite Pro教育版在linux系统中配置
linux·运维·服务器·网络安全·burpsuite
wuminyu20 小时前
深入剖析 Panama Off-heap 的性能损耗与开销
java·linux·c语言·jvm·c++
虎王物联20 小时前
RK3568嵌入式Linux跑Docker:内核配置排查到AIoT容器化的完整路径
linux·运维·docker·rk3568·aiot·嵌入式linux
GeW21 小时前
不只靠技术:RHCE考试的5个隐藏得分点
linux
老当益壮梁奶奶21 小时前
Linux软件编程学习笔记(八):进程间通信详解(1)
linux·c语言·笔记·学习·算法