当前位置: 首页 > news >正文

解决 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工具进行解压:

unar android-tools-fsutils_5.1.1.r38-1.1_amd64.deb

解压后内容如下:

control.tar.xz  data.tar.xz  debian-binary

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

unar data.tar.xz

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

安装

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

sudo cp data/usr/bin/* /usr/bin/

命令测试:

$ 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 安装软件时,也不再这个软件包的相关错误。
要卸载掉它,将相关的可执行文件移除就行了:

cd /usr/bin; sudo rm ext2simg   img2simg     mkuserimg  simg2simg  test_ext4fixup ext4fixup  make_ext4fs  simg2img   simg_dump

相关文章:

  • 素颜个人引导页源码
  • 计算机系统基础笔记(12)——控制
  • Netty原理与实战
  • Synchronized的锁膨胀艺术:深入源码的探险之旅
  • 【ubuntu】增加samba服务和文件夹
  • gitlabcicd-k8s部署gitlab
  • 字符串形成树形
  • 银河麒麟解压命令
  • xstream运用,JAVA对象转xml,xml转JAVA对象
  • 使用HTML、CSS和JavaScript编写一个注册界面(一)
  • Redis系列之淘汰策略介绍
  • Macbook M芯片Maven的安装与配置
  • js 选择一个音频文件,绘制音频的波形,从右向左逐渐前进。
  • (第30天)二叉树阶段总结
  • 更新pip版本(在自己工程中的虚拟环境中)
  • 4个实用的微服务测试策略
  • C++11: atomic 头文件
  • ES6系列(二)变量的解构赋值
  • extract-text-webpack-plugin用法
  • js
  • leetcode98. Validate Binary Search Tree
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • Nacos系列:Nacos的Java SDK使用
  • React Native移动开发实战-3-实现页面间的数据传递
  • RxJS: 简单入门
  • Travix是如何部署应用程序到Kubernetes上的
  • VUE es6技巧写法(持续更新中~~~)
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • vue-loader 源码解析系列之 selector
  • webpack4 一点通
  • 阿里云Kubernetes容器服务上体验Knative
  • 半理解系列--Promise的进化史
  • 大整数乘法-表格法
  • 机器学习 vs. 深度学习
  • ------- 计算机网络基础
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • Semaphore
  • ​iOS安全加固方法及实现
  • ###C语言程序设计-----C语言学习(6)#
  • #stm32驱动外设模块总结w5500模块
  • $.each()与$(selector).each()
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (七)Java对象在Hibernate持久化层的状态
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • ***原理与防范
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .NET Core 中插件式开发实现
  • .net core使用ef 6
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)