yum与rpm包

yum与rpm包
包命名和工具
包:分类和拆包
Application-VERSION-ARCH.rpm:主包
Application-devel-VERSION-ARCH.rpm 开发子包
Application-utils-VERSION-ARHC.rpm 其它子包
Application-libs-VERSION-ARHC.rpm 其它子包
包之间:可能存在依赖关系,甚至循环依赖
解决依赖包管理工具:
yum:rpm包管理的前端工具
apt-get:deb包管理器前端工具
zypper:suse上的rpm前端管理工具
dnf:Fedora 18+rpm包管理器前端管理工具
库文件
查看二进制程序所依赖的库文件
ldd /PATH/TO/BINARY_FILE
管理及查看本机装载的库文件
ldconfig
/sbin/ldconfig -p:显示本机已经缓存的所有可用库文件名及文件路径映射关系
配置文件:/etc/id.so.conf./etc/ld.xo.conf.d/*.conf
缓存文件:/etc/ld.so.cache bao
包管理器
程序包管理器
功能:将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便快捷地实现程序包的安装,卸载,查询,升级和校验等管理操作
1,包文件组成(每个包独有)
RPM包内的文件
RPM的元数据,如名称,版本,依赖性,描述等安装或卸载时运行的脚本
2,数据库(公共):/var/lib/rpm
程序包名称及版本
依赖关系
功能说明
包安装后生成的各文件路径及校验码信息
程序包的来源
管理程序包的方式
使用包管理器:rpm
使用前端工具:yum,dnf
获取程序包的途径;
程序发版的光盘或官方的服务器;
CentOS镜像:
http://mirrors.aliyun.com
项目官方站点
第三方组织;
Fedira-EPEL;
Extra packages for Enterprise linux
Rpmforge:RHEL推荐,包
搜索引擎
http://pkgs.org
自己制作
注意:第三方包建议要检查其合法性
来源合法性,程序包的完整性
rpm包管理
centOS系统上使用rpm命令管理程序包:
安装,卸载,升级。查询。校验,数据库维护
安装:
rpm{-i|–install} [install-options] PACKAGE_FILE….
-V:verbose
-vv:
-h:以#显示程序包管理执行进度
rpm -ivb PACKAGE_FILE…
[install-options]
–test:测试安装,但不真正执行安装,即dry run模式
–nodeps:忽略依赖关系
–replacepkgs | replacefiles
–nosignature:不检查来源合法性
–nodigest:不检查包完整性
–noscripts:不执行程序包脚本
%pre:安装前脚本; –nopre
%post:安装后脚本; –nopost
%preun:卸载前脚本; –nopreun
%postun:卸载后脚本; –nopostun
rpm包升级
升级:
rpm{-U|–upgrade} [install-options] PACKAGE_FILE…
rpm{-F|–freshen} [install-options] PACKAGE_FILE…
upgrade:安装有旧版程序包,则”升级“
如果不存在旧版程序包,则“安装”
freshen:安装有旧版程序包,则“升级”
如果不存在旧版程序包,则不执行升级操作
rpm -Uvh PACKAGE_FILE…
rpm -Fvh PACKAGE_FILE…
–oldpackage:降级
–force:强制安装
1.编写 shell 脚本配置内网环境 yum 的 base 源和 epel 源。
#!/bin/bash
var_repoName=`echo $1 | cut -d “=” -f2`
var_repoUrl=`echo $2 | cut -d “=” -f2`
var_check=`echo $3 | cut -d “=” -f2`
cd /etc/yum.repos.d
echo “[$var_repoName]” >$var_repoName\.repo
echo “name=$var_repoName” >> $var_repoName\.repo
echo “baseurl=$var_repoUrl” >> $var_repoName\.repo
echo “gpgcheck=$var_check” >> $var_repoName\.repo
if [ $var_check -eq 1 ];then
echo “gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6” >> $var_repoName\.repo
fi
yumclean all
yummakecache
yumrepolist
2.编写脚本使用 yum 安装 编译环境组包,然后安装 tree 命令,使用 rpm 命令查看 tree 是否安装成功,使用
rpm 命令查看 tree 安装文件系统中的所以文件,使用 yum 删除之前安装的编译环境组包。
#!/bin/bash
yumgroupinstall “Development tools” -y
yuminstall wget -y
rpm -qawget
rpm -ql wget
var_tag=`yum history | grep Install | head -2 | tail -1| tr -d ” ” | cut -d “|” -f1 `
echo $var_tag
yumhistory undo $var_tag -y
3.使用 yum 查询包含 httpd 的软件包,并且安装。使用yum查看 httpd 是否安装成功。然后使用 yum卸载 httpd
并查看是否卸载成功
yumlist “http*”
yuminfo httpd
yumwhatprovides “*bin/httpd”
yuminstall httpd -y
yumremove httpd

原创文章,作者:wangqiang,如若转载,请注明出处:http://www.178linux.com/75049

(0)
wangqiangwangqiang
上一篇 2017-05-08 21:31
下一篇 2017-05-08 21:32

相关推荐

  • dd命令详解及实战应用

    dd简述 dd在linux中是 一个强大的命令,常用于拷贝大量数据,测试读写效能 ,清空硬盘数据(慎用),不仅如此,由于dd 允许以二进制方式读写,所以特别适合在原始设备上输入、输出。 dd与cp的区别 这里有必要说明一下,两个命令都可用于拷贝,但是级别却完全不一样:cp是文件级别的读取方式,而dd更底层,可以数据块级别去读取硬盘,由此可看出在效率…

    Linux干货 2017-04-04
  • CentOS 7 tomcat 7.0.54 的功能实现及详解

    一、 jdk 安装配置 # yum install java-1.8.0-openjdk-devel (依赖的java-1.8.0-openjdk,java-1.8.0-openjdk,headless也会被安装 ) # alternatives -h # vim /e…

    Linux干货 2014-06-09
  • 第二天上课 llinux发展史

                             linux发展史 unix诞生    1965年时,贝尔实验室(Bell Labs)加入一项由通用电气(General Electric)和麻省理工学院(MIT…

    Linux干货 2016-10-18
  • 程序包管理:rpm , yum ,与编译

    1.RPM,Redhat Package Manager。是Redhat和CentOS等Linux系统上常见的软件安装工具。 软件安装: 常见选项 -i                #install…

    Linux干货 2016-03-26
  • 从Linux小白到大牛——与狼共舞的日子8

    马哥教育网络班21期+第8周课程练习 1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥是第2层的设备,它设计用来创建两个或多个LAN分段。其中,每一个分段都是一个独立的冲突域。网桥设计用来产生更大可用宽带。它的目的是过滤LAN的通信流,使得本地的通信流保留在本地,而让那些定向到LAN其他部分(分段)的通信流转发到那里去。每…

    Linux干货 2016-11-14
  • 权限管理和文本过滤

    1.复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限 [root@study ~]# cp -r /etc/skel/ /home/tuser1|chmod -R 700 tuser1/ [root@…

    Linux干货 2016-11-20