原创文章,作者:wangqiang,如若转载,请注明出处:http://www.178linux.com/75049
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
赞 (0)
MySQL存储过程中IN、OUT、INOUT参数使用
上一篇
2017-05-08
网卡路由配置信息及偷懒用法
下一篇
2017-05-08