Linux下 tar命令(工具)的移植,源码下载、详细移植步骤

简介: Linux下 tar命令(工具)的移植,源码下载、详细移植步骤

一、概述

tar命令是Linux系统下的解压缩命令,在使用busybox移植文件系统时,busybox一般有自带的,但可能出现有些版本比较旧,无法解压缩tar.gz文件,前几天工作中就遇到这种情况:

$ tar zxf /config/data.tar.gz  -C /root/config
tar: invalid option -- 'z'
BusyBox v1.31.0 (2021-03-04 14:00:21 CST) multi-call binary.
Usage: tar c|x|t [-hvokO] [-f TARFILE] [-C DIR] [-T FILE] [-X FILE] [--exclude PATTERN]... [FILE]...
Create, extract, or list files from a tar file
        c       Create
        x       Extract
        t       List
        -f FILE Name of TARFILE ('-' for stdin/out)
        -C DIR  Change to DIR before operation
        -v      Verbose
        -O      Extract to stdout
        -o      Don't restore user:group
        -k      Don't replace existing files
        -h      Follow symlinks
        -T FILE File with names to include
        -X FILE File with glob patterns to exclude
        --exclude PATTERN       Glob pattern to exclude
$

如上,busybox自带的tar命令无法识别到z选项,而busybox是原厂编译好提供的,所以考虑自己移植tar命令。


二、tar命令源码下载

这里要下载的是GNU Tar,https://www.gnu.org/software/tar/ 有它的详细的介绍。

源码下载地址是:ftp://ftp.gnu.org/gnu/tar/,我这里下载的是tar-1.27.1.tar.gz,因为我使用的Ubuntu是自带的tar命令也是1.27.1的。

2018122814580746.png

三、tar源码移植步骤

tar-1.27.1.tar.gz的移植比较顺利,没出现奇怪的问题,步骤就是解压源码、配置、编译

tar-1.27.1.tar.gz复制到Ubuntu的一个目录下,执行如下命令:

tar zxvf tar-1.27.1.tar.gz 
cd tar-1.27.1 
mkdir result
CC=csky-abiv2-linux-gcc ./configure  --prefix=`pwd`/result  --host=arm-linux 
make clean && make && make install

CC=csky-abiv2-linux-gcc 是指定交叉编译的gcc工具,上面的几个命令执行完成后,在result/bin目录会生成一个可执行文件tar,将它拷贝到板子里就可以啦。我是拷贝到板子的/root/tar路径,然后删除旧的链接,建立新的就可以正常使用tar命令了2018122814580746.png

目录
相关文章
|
10天前
|
安全 Linux 编译器
BigCloud Enterprise Linux 8和Rocky Linux 8升级OpenSSH步骤
本文介绍了在BigCloud Enterprise Linux 8.2/8.6和Rocky Linux 8.10上升级OpenSSH的详细步骤。首先配置Telnet服务和GCC编译器以确保远程登录安全,接着备份旧版OpenSSH并下载、编译、安装最新版本(如9.9p1)。然后创建新的sshd系统服务配置文件,调整配置并启动服务。最后验证升级效果,关闭不必要的Telnet服务,并处理可能的防火墙和SELinux问题。通过这些步骤可有效修复低版本OpenSSH带来的高危漏洞。
56 13
|
1月前
|
监控 安全 Ubuntu
Linux下如何安装配置Fail2ban防护工具
通过以上步骤,可以在Linux系统中成功安装和配置Fail2ban,从而有效保护服务器免受暴力破解等攻击。Fail2ban通过实时监控日志文件,自动更新防火墙规则,为系统安全提供了一层重要的保护。
121 36
|
6天前
|
人工智能 Linux iOS开发
Linux下搭建本地deepseek(附文档下载)
本文介绍了在Linux上搭建本地DeepSeek的步骤。主要涉及安装ollama、下载deepseek模型(1.5b参数版本)和配置ChatboxAI客户端。通过命令行安装ollama后,使用`ollama run deepseek-r1:1.5b`下载模型,并配置环境变量以确保服务正常运行。最后,通过ChatboxAI与模型进行交互。整个过程适合初学者,服务器配置为4核CPU和8GB内存,无GPU,响应速度稍有延迟但可接受。相关资源链接已提供。
73 2
|
2月前
|
Rust Ubuntu Java
[Linux工具] Makefile
Makefile是Linux环境下用于自动化编译和链接程序的配置文件,常用于简化大型项目的编译流程。通过定义目标文件、依赖文件及生成命令,Makefile能高效管理编译任务。它不仅适用于C语言项目,还可扩展到其他编程语言和非编程任务中。
61 20
[Linux工具] Makefile
|
20天前
|
Linux API
Linux下载工具wget与curl
`wget` 是一个用于从网络下载文件的命令行工具,支持HTTP、HTTPS和FTP协议。它能自动处理下载中断,并支持递归下载网站内容。基本用法:`wget URL`,可指定文件名(`-O`)、保存目录(`-P`),还支持断点续传(`-c`)、限速(`--limit-rate`)和递归下载(`-r`)。相比之下,`curl` 更侧重于发送各种HTTP请求(如GET、POST),并支持文件上传、自定义请求头和cookie等功能。
56 10
|
17天前
|
存储 Ubuntu 前端开发
Linux软件包管理工具概览
在Linux系统中,dpkg、apt、rpm、yum和dnf是几种常见的包管理工具,它们分别属于不同的Linux发行版或家族,并有着各自的诞生顺序和特点。下面将按照这些工具的诞生顺序,并结合Debian、Red Hat、CentOS、Ubuntu和Kali等系统,进行详细的介绍。
23 4
|
2月前
|
Linux 网络性能优化 网络安全
Linux(openwrt)下iptables+tc工具实现网络流量限速控制(QoS)
通过以上步骤,您可以在Linux(OpenWrt)系统中使用iptables和tc工具实现网络流量限速控制(QoS)。这种方法灵活且功能强大,可以帮助管理员有效管理网络带宽,确保关键业务的网络性能。希望本文能够为您提供有价值的参考。
140 28
|
2月前
|
网络协议 Unix Linux
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
53 11
|
10月前
|
运维 Ubuntu 安全
运维最全linux 命令行操作串口_linux串口命令(2),2024年最新Linux运维源码的Binder权限是如何控制
运维最全linux 命令行操作串口_linux串口命令(2),2024年最新Linux运维源码的Binder权限是如何控制
运维最全linux 命令行操作串口_linux串口命令(2),2024年最新Linux运维源码的Binder权限是如何控制
|
Linux
linux实现cp命令与linux下打开文件并写入源码
linux实现cp命令与linux下打开文件并写入源码
343 0