libarchive 如何在Ubuntu中进行安装

news2024/11/15 13:47:31

简介

libarchive是一个开源的压缩和归档库。 它支持实时访问多种压缩文件格式,比如7z、zip、cpio、pax、rar、cab、uuencode等,因此应用十分广泛。

举个例子,我写了一段代码,想要解压一个压缩包,那我就得 fork 一个 tar 进程,然后还得 fork 一个 bash 来运行这个 tar 命令,这样做一个是麻烦还有一个是不好判断什么时候解压结束,因此有了 libarchive 就可以在代码中实现该功能,不需要额外添加进程。

下载安装

1.下载

下载地址:https://github.com/libarchive/libarchive

先克隆到本地仓库

git clone https://github.com/libarchive/libarchive

2.打开 libarchive 文件下的 INSTALL,得到具体安装的方法

但是一开始文件夹里面是没有 configure 文件的,因此需要下载一些工具

3.下载 autotools 和 automake

上面的工具用来产生configure文件,能设置源程序来适应各种不同的操作系统平台,并且根据不同的系统来产生合适的Makefile

sudo apt-get install autotools-dev

sudo apt install libtool

sudo apt-get install automake

安装完毕之后运行 ./autogen.sh

autoconf 版本太低问题

我原来的autoconf版本只有2.69,然后编译需要的是2.71以上的版本,因此需要去官网重新下载一个。如果没有可自行跳过

需要登录这个网站:http://ftp.gnu.org/gnu/autoconf/

下载最新版本(2.71)的 autoconf

卸载原来的 autoconf

sudo apt remove autoconf

然后对最新版本的 autoconf 进行解压并安装

tar -zxvf autoconf-2.71.tar.gz

cd autoconf-2.71/

./configure

make

make install # 不行就 sudo make install

输入 autoconf --version 查看安装情况

重新下载 automake

sudo apt-get install automake

4.安装libarchive
再次运行autogen.sh后发现libarchive下面已经有configure这个文件了

然后我们依次输入下面命令进行安装:

./configure 

make

make install # 不行就 sudo make install

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/605691.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python制作简单版天天酷跑,是不是你平日里摸鱼小游戏呀

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 天天酷跑是一款轻松好玩、简单时尚的跑酷类手机游戏。 那我们能不能用python模拟出这个一个游戏呢? 答案当然是可以的,今天我就给大家带来简易版的天天酷跑小游戏 开发环境: 版 本&a…

如何用Python写个网页爬取程序

如何用Python写个网页爬取程序 准备开发工具安装PythonPython安装pipPip安装爬取插件准备好网页地址代码实现 准备开发工具 额,作者用的是vscode。具体怎么安装自行百度哈,这个都不会建议就不要学爬取了。 不忍心藏着也,给你个方法吧 vsc…

2023年第六届广西大学生程序设计竞赛(热身赛)题解

题目均来自去年的省赛原题 参考资料 知乎:第五届GXCPC广西大学生程序设计竞赛 部分题解(无CDK) A题送分题,跳过 B 位运算lowbit函数 题目大意: 对一个数(二进制)进行操作,询问使其…

C++11/C++14中constexpr的使用

常量表达式(const expression)是指值不会改变并且在编译过程中就能得到计算结果的表达式。字面值属于常量表达式,用常量表达式初始化的const对象也是常量表达式。 只要有可能使用constexpr,就使用它。 C11中constexpr的使用: constexpr是C11中…

MKS SERVO4257D 闭环步进电机_系列7 MODBUS-RTU通讯示例

第1部分 产品介绍 MKS SERVO 28D/35D/42D/57D 系列闭环步进电机是创客基地为满足市场需求而自主研发的一款产品。具备脉冲接口和RS485/CAN串行接口,支持MODBUS-RTU通讯协议,内置高效FOC矢量算法,采用高精度编码器,通过位置反馈&a…

论坛项目学习记录【预备篇2】

论坛项目学习记录【预备篇2】 1. 什么是依赖注入2. 怎么使用依赖注入依赖注入注意事项 3.组件扫描情况下依赖注入的实现4.Resource注解的使用与Autowired的区别5.SpringMvcSpringMvc执行流程 1. 什么是依赖注入 就是在Spring容器内容将各个对象的依赖关系建立好的操作&#xf…

持续集成和持续交付:构建高效的软件交付流水线

在现代软件开发中,持续集成(Continuous Integration)和持续交付(Continuous Delivery)已成为构建高效、可靠软件交付流水线的关键实践。通过自动化和频繁地集成代码、构建、测试和部署,团队能够更快地交付高…

Unity--使用Cinemachine Confiner设置摄像机边界

使用Cinemachine Confiner设置摄像机边界 前提提要:在做这个功能前需要: ​ main camera ​ 另外一个相机 思路:创建一个对象绑定Polygon Collider2D 边界。然后在另外一个相机Cinemachine Confiner上绑定他 ​ 绑定边界 记得点这个&#…

2023年京东618全品类预售数据查询

这一期主要分享今年618京东数码产品的预售数据,包括笔记本电脑、投影机、微单相机三大品类。 -笔记本电脑- 今年618,笔记本电脑在京东累计预售量达到73万件,预售额达到41亿元。预售期间,微单相机品类均价在5661元左右。期间&#…

软件测试实验:链接测试

目录 前言实验目的实验环境实验内容实验步骤实验过程总结 前言 本实验的目的是学习和掌握软件测试中的链接测试方法和技巧。链接测试是指对Web应用系统中的各种链接进行检查和验证,以确保它们能正确地指向预期的目标,不出现错误链接、空链接、死链接或孤…

简单尝试:ChatGLM-6B + Stable diffusion管道连接

核心思想是: 1. 抛去算法设计方面,仅从工程角度考虑的话,Stable diffusion的潜力挖掘几乎完全受输入文字影响。 2. BLIP2所代表的一类多模态模型走的路线是"扩展赋能LLM模型",思路简单清晰,收益明显。LLM …

电池状态估计 | Matlab实现利用卡尔曼滤波器估计电池充电状态

文章目录 效果一览文章概述研究内容程序设计参考资料效果一览 文章概述 电池状态估计 | Matlab实现利用卡尔曼滤波器估计电池充电状态 研究内容 目前,常用的电池模型有:数

外包干了5年,女朋友嫌弃我,跑了。。。

先说一下自己的情况。大专生,17年通过校招进入湖南某软件公司,干了接近5年的测试,今年年上旬,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了5年,…

一文带你了解MySQL之约束

在SQL标准中,一共规定了6种不同的约束,包括非空约束,唯一约束和检查约束等,而在MySQL中是不支持检查约束的,所以这篇文章先对其余5种约束做一个详解和练习。 文章目录 1. 约束的概念2. 约束的分类3. 非空约束4. 唯一约…

大数据:pyspark模块,spark core的RDD,RDD是弹性分布式数据抽象对象,RDD五大特性,wordcount案例展示RDD

大数据:pyspark模块 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle,尤其sql…

English Learning - L3 作业打卡 Lesson4 Day29 2023.6.2 周五

English Learning - L3 作业打卡 Lesson4 Day29 2023.6.2 周五 引言🍉句1: I once made a big mistake at the office and felt foolish.成分划分弱读连读爆破语调 🍉句2: I had egg on my face.成分划分弱读语调 🍉句3: Over the weekend, m…

Java企业级信息系统开发学习笔记13 Spring Boot(使用maven方式构建Spring Boot项目)

文章目录 一、学习目标二、Spring Boot框架概述三、使用maven方式构建Spring Boot项目(一)创建Maven项目(二)添加依赖(三)创建入口类(四)创建控制器(五)运行入…

防火墙之服务器负载均衡

防火墙之服务器负载均衡 原理概述: 防火墙(英语:Firewall)技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安…

C语言---操作符详解

1、操作符分类 算术操作符 移位操作符 位操作符 赋值操作符 单目操作符 关系操作符 逻辑操作符 条件操作符 逗号操作符 下标引用、函数调用和结构成员。 2、算数操作符 - * / %// 7 / 2 ----->3 // 7 % 2 ----->1//那如果想要打印…

Java程序设计入门教程--类的创建过程

构造方法 在Java的每个类中都有一种特殊的成员方法,它的方法名和类名是一致的。在创建对象时,调用这种特殊方法对成员变量进行初始化,这种方法称为构造方法。 注意 创建构造方法与创建成员方法的格式相同,但要注意以下几点&#…