压缩工具与RPM和yum基础

#常见的压缩工具:gzip/gunzip/zcat
#  gzip [options]...file...
#      -d 解压缩 相当于gunzip
#      -# 指定一个压缩比 1-9 默认为6 数字越大,表示压缩越狠
#      -c 将压缩结果,输出到标准输出
#用法: gzip grep*
#解gzip -d grep*
#解gunzip grep*
#重定向的方式: gzip -c passwd.sh > /root/passwd.gz
#[root@localhost ~]# cp /var/log/messages ./
#[root@localhost ~]# mkdir gzip
#[root@localhost ~]# cd gzip
#[root@localhost gzip]# cd
#[root@localhost ~]# cp messages gzip/
#[root@localhost ~]# cd gzip
#[root@localhost gzip]# ls
#messages
#[root@localhost gzip]# ll
#total 44
#-rw-------. 1 root root 43687 May 15 14:00 messages
#[root@localhost gzip]# gzip messages
#[root@localhost gzip]# ls -lh
#total 4.0K
#-----. 1 root root 3.5K May 15 14:00 messages.gz
#2,bzip2/bunzip2/bzcat 比gzip压缩更狠
#-d 解压缩
#-# 压缩比 1-9数字越大压缩比越大
#-k keep 保留源文件
#3,xz/nuxz/xzcat
#xz[options]....file...
#   -d 解压缩
#   -# 压缩比:默认为6 ,1-9 数字越大压缩越狠
#   -k keep保留源文件
#注意目录无法压缩
#打包工具:tar归类
# tar [options]..file..
#1,创建一个归档  (归档不删除源文件)
#  -c -f : /path/to/somefile.tar files:归类
#  -cf: /path/to/somefile.tar files
#  -v 显示过程
#  -xf 展开归类
#查看文件列表
#   -tf
#归档压缩
# -z :调用gzip :-zcf:创建压缩
# -zxf; 解压缩
# -j: bzip2 :-jcf -jxf
# -J:xz -Jcf -Jxf
# -C /path /to/somedir :指定到某个目录中
#写一个脚本,每天夜里3点,备份/etc/目录下以conf结尾的配置文件,命名为bachkup-年-月-日-小时-分钟.tar.gz备份完成后,进行一次解压缩,确保sysctl,conf文件内容,跟系>统上/etc/sysctl.comf文件内容一致。之后,将该tar.gz文件。存放在/backup/目录下。
#*3***shell.sh
#A=$(DATE+'%Y+%m-%d-%H:%M')
#find /etc/-name"*.conf"-maxdepth 1 |xargs tar-zcvf backup-$A.tar.gz
#mkdir/tmp/test1
#tar -zxvf backup-$A.tar.gz -C/test1
#if [ $? -eq 0];then
#diff./etc/sysctl.conf/etc/sysctl.conf && echo "ok">/tmp/monitor
#fi
#mv backup -$A.tar.gz /backup
#-maxdepth选项的作用就是限制find命令在目录中按照递减方式查找文件的时候搜索文件超
过某个级别或者搜索过多的目录
#Xargs:之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作
中有有这个必要,所以就有了xargs命令,例如:
#find /sbin -perm +700 |ls -l       这个命令是错误的
#find /sbin -perm +700 |xargs ls -l   这样才是正确的
#软件包种类:
#RPM管理:
#功能:将编译好的程序的各组成文件打包成一个或几个程序包文件,为了方便的实现程序>包的安装,升级,卸载,查询,效验,数据库维护。
#软件包获取途径:
#(1) 可以通过文件服务器(或镜像站点)
#http://mirrors.aliyun.com
#http://mirrors.163.com
#http://mirrors.sohu.com
#(2)官网:
#(第三方组织):EPLE   :搜索引擎:http//pkgs.org ===
#(4):自己制作:
#rpm命了:rpm [options] [package_file]
# 安装: i  install
# 升级: U update, F, freshen
# 卸载:e erase
# 查询:q query
# 校验; V verify
# 数据库维护:builddb  initdb
# -h 输出一个进度条
# --test 测试安装,但是不装
# --nodeps 忽略依赖关系 不建议
# --replacepkgs 重装
#yum repository: yum repo
# 存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录下:repodata);
#
# 文件服务器:
#       ftp://
#       http://
#       nfs://
#       file:///
#
# yum客户端:
#       配置文件:
#       /etc/yum.conf:为所有仓库提供公共配置
#       /etc/yum.repos.d/*.repo:为仓库的指向提供配置
#仓库指向的定义:
# [repositoryID]
# name=Some name for this repository
# baseurl=url://path/to/repository/ 指定访问路径
# enabled={1|0} 是否启用此仓库,默认启用。
# gpgcheck={1|0} 是否检查其安装包来源的合法性安全等。
# gpgkey=URL  秘钥文件
# enablegroups={1|0} 是否允许在此仓库上使用组批量管理程序包!
# failovermethod={roundrobin轮寻|priority优先级}
# 默认为:roundrobin,意为随机挑选;
# cost= 开销数值
# 默认为1000
#自建立一个YUM源指向的路径
#ot@localhost yum.repos.d]# vim centos-local.repo
#[base]   表示指定base路径
#name=Base Repo on 172.16.0.1  名字
#baseurl=http://172.16.0.1/cobbler/ks_mirror/CentOS-6.6-x84_64/  路径
#gpgcheck=0  表示不启用安装包安全性检查
#[epel]
#name=Fedora EPEl for EL6 x86_64
#baseurl=http://172.16.0.1/fedora-epel/6/x86_64/
#gpgcheck=0
#[root@localhost yum.repos.d]# cd
#[root@localhost ~]# yum repolist
#Loaded plugins: fastestmirror, refresh-packagekit, security
#Repository base is listed more than once in the configuration
#Repository epel is listed more than once in the configuration
#Loading mirror speeds from cached hostfile
#http://172.16.0.1/cobbler/ks_mirror/CentOS-6.6-x84_64/repodata/repomd.xml: [Er          rno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
#Trying other mirror.
#epel                                                   | 4.3 kB     00:00
#repo id                   repo name                                     status
#base                      Base Repo on 172.16.0.1                        6,575
#epel                      Fedora EPEl for EL6 x86_64                    11,768
#extra                     CentOS 6 x86_64 extras                         3,371
#repolist: 21,714
#显示程序包:list
# yum list [all | glob_exp1] [glob_exp2] [...]
# yum list {available 已经下载但未安装的包|installed 已经安装的包|updates 可用的
升级的包} [glob_exp1] [...]
#[root@localhost ~]# yum list
#显示符合统配条件的包:[root@localhost ~]# yum list php*
#php.x86_64                                           5.3.3-40.el6_6         ba#se
#php-Analog.noarch                                    1.0.0-3.git9ab4c9e.el6 epe#l
#php-Assetic.noarch                                   1.1.2-1.el6            epel
#php-EasyRdf.noarch                                   0.9.0-1.el6            epel
#安装程序包:yum install 跟包名,可以一次安装多个包
#升级程序包:yum update 后面跟包名
#检查可以升级:yum check-update 包
#卸载指定程序包:yum remove 包
#查看程序包的简要信息(information): yum info 包
#查看指定的特性(可以是某文件)是哪个程序包提供的; yum provides 包
#清理本地缓存: clean [ packages 程序包 | metadta元数据 | expire-cache 过期缓存 |rpmdb |plugins |all 所有]
#生产或创建缓存: makecache
#搜索;以指定的关键字搜索程序包名及summary信息:yum search 关键字比如:[root@localhost ~]# yum search bash
#重新安装;reinstall
#降级安装:downgrade
#显示指定包所依赖的关系:deplist


查看yum事务历史:
history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
如何使用光盘当作本地yum仓库:
(1) 挂载光盘至某目录,例如/media/cdrom
   # mount -r -t iso9660 /dev/cdrom /media/cdrom
(2) 创建配置文件
  [CentOS7]
  name=
  baseurl=
  gpgcheck=
  enabled=
yum的命令行选项:
  --nogpgcheck:禁止进行gpg check;
  -y: 自动回答为“yes”;
  -q:静默模式;
  --disablerepo=repoidglob:临时禁用此处指定的repo;
  --enablerepo=repoidglob:临时启用此处指定的repo;
  --noplugins:禁用所有插件;
yum的repo配置文件中可用的变量:
  $releasever: 当前OS的发行版的主版本号;
  $arch: 平台;
  $basearch:基础平台;
  $YUM0-$YUM9
http://mirrors.magedu.com/centos/$releasever/$basearch/os


创建yum仓库:
  createrepo [options] <directory>
 程序包编译安装:
 testapp-VERSION-release.src.rpm --> 安装后,使用rpmbuild命令制作成二进制格式的rpm包,而后再安装;
  源代码 --> 预处理 --> 编译(gcc) --> 汇编 --> 链接 --> 执行
注意。多文件:文件中的代码之间,可能存在跨文件依赖关系


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章