Linux Tar软件包管理

Tar 软件包管理
Linux 操作系统除了使用 RPM 管理工具对软件包管理之外,还可以通过 tar、zip、jar
等工具进行源码包的管理,实现对文件的压缩解压
4.1、Tar 命令参数详解
-A, --catenate, --concatenate 将存档与已有的存档合并
-c, --create 建立新的存档
-d, --diff, --compare 比较存档与当前文件的不同之处
–delete 从存档中删除
-r, --append 附加到存档结尾
-t, --list 列出存档中文件的目录
-u, --update 仅将较新的文件附加到存档中
-x, --extract, --get 解压文件
-j, --bzip2, --bunzip2 有 bz2 属性的软件包;
-z, --gzip, --ungzip 有 gz 属性的软件包;
-b, --block-size N 指定块大小为 Nx512 字节(缺省时 N=20);
-B, --read-full-blocks 读取时重组块;
-C, --directory DIR 指定新的目录;
–checkpoint 读取存档时显示目录名;
-f, --file [HOSTNAME:]F 指定存档或设备,后接文件名称;
–force-local 强制使用本地存档,即使存在克隆;
-G, --incremental 建立老 GNU 格式的备份;
-g, --listed-incremental 建立新 GNU 格式的备份;
-h, --dereference 不转储动态链接,转储动态链接指向的文件;
-i, --ignore-zeros 忽略存档中的 0 字节块(通常意味着文件结束);
–ignore-failed-read 在不可读文件中作 0 标记后再退出;
-k, --keep-old-files 保存现有文件;从存档中展开时不进行覆盖;
-K, --starting-file F 从存档文件 F 开始;
-l, --one-file-system 在本地文件系统中创建存档;
-L, --tape-length N 在写入 N*1024 个字节后暂停,等待更换磁盘;
-m, --modification-time 当从一个档案中恢复文件时,不使用新的时间标签;
-M, --multi-volume 建立多卷存档,以便在几个磁盘中存放;
-O, --to-stdout 将文件展开到标准输出;
-P, --absolute-paths 不要从文件名中去除 ‘/’;
-v, --verbose 详细显示处理的文件;
–version 显示 tar 程序的版本号;
–exclude FILE 不把指定文件包含在内;
-X, --exclude-from FILE 从指定文件中读入不想包含的文件的列表。
4.3、Tar企业案例演示
tar -cvf jfedu.tar.gz jfedu 打包 jfedu 文件或者目录,打包后名称jfedu.tar.gz;
tar -tf jfedu.tar.gz 查看 jfedu.tar.gz 包中内容;
tar -rf jfedu.tar.gz jfedu.txt 将 jfedu.txt 文件追加到 jfedu.tar.gz 中
tar -xvf jfedu.tar.gz 解压 jfedu.tar.gz 程序包;
tar -czvf jfedu.tar.gz jfedu 使用 gzip 格式打包并压缩 jfedu 目录;
tar -cjvf jfedu.tar.bz2 jfedu 使用 bzip2 格式打包并压缩 jfedu 目录;
tar -czf jfedu.tar.gz * -X list.txt 使用gzip格式打包并压当前目录所有文件,排除 list.txt中记录的文件;
tar -czf jfedu.tar.gz * --exclude=zabbix-3.2.4.tar.gz --exclude=nginx-1.12.0.tar.gz
使 用 gzip 格 式 打 包 并 压 当 前 目 录 所 有 文 件 及 目 录 , 排 除 zabbix-3.2.4.tar.gz 和nginx-1.12.0.tar.gz 软件包
4.5、TAR 实现 Linux 操作系统备份
Tar 命令工具除了用于日常打包、解压源码包或者压缩包之外,最大的亮点是还可以用于 Linux 操作系统文件及目录的备份,使用 tar -g 可以基于 GNU 格式的增量备份,备份原
理是基于检查目录或者文件的 atime、mtime、ctime 属性是否被修改。文件及目录时间属性
详解如下:
 文件被访问的时间(Access time,atime);
 文件内容被改变的时间(Modified time,mtime);
 文件写入、权限更改的时间(Change time,ctime)。
总结,更改文件内容 mtime 和 ctime 都会改变,但 ctime 可以在 mtime 未发生变化时被更改,例如修改文件权限,文件 mtime 时间不变,而 ctime 时间改变。TAR 增量备份案例演示步骤如下
(1) /root 目录创建 jingfeng 文件夹,同时在 jingfeng 文件夹中,新建 jf1.txt,jf2.txt 文件,如图

(2) 使用 tar 命令第一次完整备份 jingfeng 文件夹中的内容,-g 指定快照 snapshot 文件,第一次没有该文件则会自动创建,如图
cd /root/jingfeng/
tar -g /data/backup/snapshot -czvf /data/backup/2017jingfeng.tar.gz

(3) 使用 tar 命令第一次完整备 份 jingfeng 文件夹中之后,会 生成快照文件:/data/backup/snapshot,后期增量备份会以 snapshot 文件为参考,在 jingfeng 文件夹中再创建 jf3.txt jf4.txt 文件,然后通过 tar 命令增量备份 jingfeng 目录所有内容,如图
cd /root/jingfeng/
touch jf3.txt jf4.txt
tar -g /data/backup/snapshot -czvf /data/backup/2017jingfeng_add1.tar.gz *

如上图所示,增量备份时,需-g 指定第一次完整备份的快照 snapshot 文件,同时增
量打包的文件名不能跟第一次备份后的文件名重复,通过 tar –tf 可以查看打包后的文件内容。
[root@localhost songlss]# tar -g /data/backup/snapshot -czvf dff.tar.gz ./*
tar: ./Desktop: Directory is new
tar: ./dfg: Directory is new
tar: ./Documents: Directory is new
tar: ./Downloads: Directory is new
tar: ./Music: Directory is new
tar: ./Pictures: Directory is new
tar: ./Public: Directory is new
tar: ./Templates: Directory is new
tar: ./Videos: Directory is new
./1.txt
./12.txt
./123.txt
./Desktop/
./Documents/
./Downloads/
./Music/
./Pictures/
./Public/
./Templates/
./Videos/
./dfg/
./dfg/1.txt
./dfg/2.txt
./dfg/3.txt
./dfg/4.txt
./dfg/aa.tar.bz2
./dfg/ddd.tar.gz
./dfg/dfg.tar.gz
[root@localhost songlss]# cd /data/backup/
[root@localhost backup]# ls
snapshot
[root@localhost backup]# cd snapshot
bash: cd: snapshot: Not a directory
[root@localhost backup]# cat snapshot
GNU tar-1.23-2
15532250893655690140155230354769007620020501446332./Public0155230354769007620020501446330./Downloads0155230354769007620020501446329./Desktop0155230354769007620020501446336./Videos015532245497100602720501446371./dfgY1.txtY2.txtY3.txtY4.txtYaa.tar.bz2Yddd.tar.gzYdfg.tar.gz0155230354769007620020501446331./Templates0155230354769007620020501446335./Pictures0155230354769007620020501446334./Music0155230354769007620020501446333./Documents[root@localhost backup]#
5、ZIP 软件包管理
ZIP 也是计算机文件的压缩的算法,原名 Deflate(真空),发明者为菲利普•卡兹(Phil
Katz)),他于 1989 年 1 月公布了该格式的资料。ZIP 通常使用后缀名“.zip”。
主流的压缩格式包括 tar、rar、zip、war、gzip、bz2、iso 等。从性能上比较,TAR、WAR、
RAR 格式较 ZIP 格式压缩率较高,但压缩时间远远高于 ZIP,Zip 命令行工具可以实现对 zip
属性的包进行管理,也可以将文件及文件及打包成 zip 格式。如下为 ZIP 工具打包常见参数详解:
-f freshen:只更改文件;
-u update:只更改或新文件;
-d 从压缩文件删除文件;
-m 中的条目移动到 zipfile(删除 OS 文件);
-r 递归到目录;
-j junk(不记录)目录名;
-l 将 LF 转换为 CR LF(-11 CR LF 至 LF);
-1 压缩更快 1-9 压缩更好;
-q 安静操作,不输出执行的过程;
-v verbose 操作/打印版本信息;
-c 添加一行注释;
-z 添加 zipfile 注释;
-o 读取名称使 zip 文件与最新条目一样旧;
-x 不包括以下名称;
-F 修复 zipfile(-FF 尝试更难);
-D 不要添加目录条目;
-T 测试 zip 文件完整性;
-X eXclude eXtra 文件属性;
-e 加密 - 不要压缩这些后缀;
-h2 显示更多的帮助。
ZIP 企业案例演示
(1) 通过 zip 工具打包 jingfeng 文件夹中所有内容,如图
zip -rv jingfeng.zip /root/jingfeng/

(2) 通过 zip 工具打包 jingfeng 文件夹中所有内容,排除部分文件,如图
zip -rv jingfeng.zip * -x jf1.txt
zip -rv jingfeng.zip * -x jf2.txt -x jf3.txt

(3) 通过 zip 工具删除 jingfeng.zip 中 jf3.txt 文件,如图 所示
zip jingfeng.zip -d jf3.txt
(4) 通过 unzip 工具解压 jingfeng.zip 文件夹中所有内容,如图 所示:
unzip jingfeng.zip
unzip jingfeng.zip -d /data/backup/ 可以-d 指定解压后的目录

6、源码包安装
通常使用 RPM 工具管理.rpm 结尾的二进制包,而标准的.zip、tar 结尾的源代码包则不能使用 RPM 工具去安装、卸载及升级,源码包安装有三个步骤,如下:
./configure 预编译,主要用于检测系统基准环境库是否满足,生成 MakeFile 文件;
make 编译,基于第一步生成的 makefile 文件,进行源代码的编译;
make install 安装,编译完毕之后,将相关的可运行文件安装至系统中;
使用 make 编译时,Linux 操作系统必须有 GCC 编译器,用于编译源码。
源码包安装通常需要./configure、make、make install 三个步骤,某些特殊源码可以只有
三步中的其中一个步骤,或者两个步骤。
以 CentOS Linux 系统为基准,在其上安装 Nginx 源码包,企业中源码安装的详细步
骤如下:

(1) Nginx.org 官网下载 Nginx-1.13.0.tar.gz 包
wget http://nginx.org/download/nginx-1.13.0.tar.gz
(2) Nginx 源码包解压 tar -xvf nginx-1.13.0.tar.gz
(3) 源码 Configure 预编译,需进入解压后的目录执行./configure 指令,分号“;”表示连接多个命令。
cd nginx-1.13.0;./configure
(4) make 编译 make
(5) make install 安装 make install
通过以上五个步骤,源码包软件安装成功,源码包在编译及安装时,可能会遇到各种错
误,需要把错误解决之后,然后再进行下一步安装即可。

你可能感兴趣的:(Linux Tar软件包管理)