rpm&yum命令&增加yum源

来源:互联网 发布:烟台网络广播 编辑:程序博客网 时间:2024/05/29 03:00

RPM部分
简介
RPM全称是Red Hat Package Manager(Red Hat包管理器)。 
RPM安装软件包,通常要执行检查软件包的依赖(Dependency)、检查软件包的冲突(Conflicts)、解压软件包并存放到相应位置等操作。
RPM软件包分为二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名


Rpm在安装软件包的时候解决不了软件包的依赖性关系,而yum解决了此问题


在Redhat Linux中,其rpm包的命名规则为:
软件名-版本号-释出号.体系号.rpm
例: zsh-4.2.6-1.i386.rpm
zsh为软件名; 
4.2.6为版本号 (4为主版本号、2为次版本号、6为修订版本号) ; 
1为释出号(发布号); 
rpm为扩展名;


指令与语法如下: 
rpm   <选项> <软件包名>


安装
安装选项 
-i 安装一个以前从未安装过的软件包。 
例如:rpm   –i   zsh-4.2.6-1.i386.rpm
其它配用选项 
-v  将安装过程打印在屏幕上; 
-h  以hash字符“#”显示安装进度条; 
rpm -ivh  xxx.rpm 安装一个包


卸载
卸载选项 
-e 卸载一个已经安装过的软件包。 
例如:rpm   –e   文件名
注意 
rpm对一个未安装的软件包进行操作,参数为软件包名。 
rpm对一个已经安装过的软件包进行操作,参数为软件名。
rpm -e  xxx.rpm 删除一个包  


升级
升级选项 
-U 对一个已经安装的旧版本软件包进行升级(如果以前没有安装过此包则安装它)。 
-F  对一个已经安装的旧版本软件包进行升级。 
其它配用选项 
--force 强制执行,它与-Uvh组合使用可重新安装某个已经安装的软件包
对低版本软件进行升级,省去我们卸载后再安装新软件的麻烦,要升级某个软件,只须执行如下命令:rpm -uvh <文件名>,注意:此时的文件名必须是要升级软件的升级补丁

rpm -Uvh  xxx.rpm 升级一个包


查询
通过RPM来查询的指令与语法如下: 
rpm    <选项> <软件名|软件包名|文件名>
查询选项 
–q  软件名:查询某一个RPM包是否已安装 
–qi  软件名:查询某一个RPM包的详细信息 
–ql  软件名:列出某RPM包中所包含的文件 
–qf  文件名:查询某文件属于哪一个RPM包 
–qa 软件名:列出当前系统所有已安装的包 
–qip 软件包:列出未安装RPM包的详细信息
rpm -qilp  xxx.rpm 列出一个未被安装进系统的RPM包文件中包含有哪些文件
【安装之前,一般都要先查看一下这个软件包里有什么内容,统将会列出这个软件包的详细资料,包括含有多少个文件、各文件名称、文件大小、创建时间、编译日期等信息】
–qlp 软件包:列出未安装RPM包中的文件
【在安装时不一定全部安装,查看软件包将会在系统里安装哪些部分,以方便我们的选择】
rpm -qpi xxx.rpm 显示包描述 
rpm -qpl out.rpm 显示包的文件的列表 
rpm -qgR out.rpm 显示包的依赖关系
rpm -q out.rpm   包是否已经安装
rpm -i --test out.rpm 安装测试

校验
当一个软件包被安装后,用户可以对其进行检验,以检测软件是否被用户修改过。 
通过RPM来校验软件包的指令与语法如下: 
rpm    <选项> <软件名>
校验选项 
-V 校验软件;-Va 校验所有软件 
校验出被修改地方 
S 文件大小;M 文件权限与类型;5 MD5求和;U 文件的所属用户;G 文件的所属组;T 更改时间


Rpm常用命令选项组合
rpm -ivh  xxx.rpm 安装一个包,rpm包安装详细过程,显示进度
rpm -Uvh  xxx.rpm 升级一个包 
rpm --force       强制安装
rpm -e  xxx.rpm卸载,删除一个包    -evh
rpm -q   xxx.rpm 查询一个包是否被安装 
rpm -qi  xxx.rpm 得到被安装的包的信息 
rpm -ql  xxx.rpm 列出该包中有哪些文件,查看安装后文件列表
rpm -qf files  查找文件所属的RPM包,快速判定某个文件属于哪个软件包
rpm -qa 列出所有被安装的rpm package ,查看该软件是否安装
rpm -qal 包      查看包中文件列表
rpm -qilp  xxx.rpm 列出一个未被安装进系统的RPM包文件中包含有哪些文件。 
rpm -qpi xxx.rpm 显示包描述 
rpm -qpl out.rpm 显示包的文件的列表 
rpm -qgR out.rpm 显示包的依赖关系
rpm -q out.rpm   包是否已经安装
rpm -i --test out.rpm 安装测试
rpm -aid           自动安装依赖的包
rpm –V out.rpm 校验rpm软件包是否有问题
rpm –Vp校验rpm软件包是否有问题
rpm –Va 校验所有的rpm软件包,列出所有损坏的文件,以便进行修复


YUM部分
简介
yum是Yellow dog Updater Modified的简称 
yum的关键之处是要有可靠的repository,顾名思义,这是软件的仓库,它可以通过http或ftp共享出来,也可以是本地软件池。 
仓库中必须包含rpm的header, header包括了rpm包的各种信息,包括描述,功能,提供的文件,依赖性等。 
客户端在安装的时候便下载header并加以分析,才能自动地从服务端下载软件并一条龙地完成安装任务。 
yum客户端的配置文件放在本地的/etc/yum.repos.d/*.repo
配置文件的格式为 
[仓库名1]
name=仓库描述
baseurl=仓库位置
enabled=0/1(0:不激活配置;1:激活此配置)
gpgcheck=0/1(0:安装前不对RPM包检测1:安装前对RPM包检测)
gpgkey=GPG文件的位置 
[BASE]
name=Red Hat Enterprise Linux Server
baseurl=
enabled=1
gpgcheck=1
gpgkey=


安装
语法:yum  <选项> <软件包|软件名|组名>
安装选项 
install  package 安装指定的安装包package
localinstall  package 本地安装软件包
groupinstall  package 组安装 
补充说明 
install是客户端从远程仓库中下载软件并安装 
localinstall 是安装一个本地已经下载来的的软件包。 
groupinstall 如果仓库为软件包分了组,则可以通过安装此组来完成安装这个组里面的所有软件包。

 
升级
语法:yum  <选项> [软件包|软件名|组名]
升级选项 
update 更新全部可以更新的软件包 
update package 更新指定程序包package
check-update 检查系统中可以被升级的软件包。 
groupupdate group1 升级组group1 里面的软件包。 


卸载
语法:yum  <选项> [软件包|软件名|组名]
卸载选项 
remove  package1 : 卸载软件包package1 
erase  package1 : 卸载软件包package1 
groupremove group1 :卸载组group1里面所包括的软件包。


查询
语法:yum  <选项> [软件包|软件名|组名]
查询选项 
info <package> :显示安装包信息 
list :显示所有已经安装和仓库中可以安装的程序包 
list <package> :显示指定软件包安装情况 
grouplist :显示仓库中有哪些组 
deplist <package1> :查看程序package1依赖情况 
groupinfo <group1> :显示程序组group1信息
search <keyword>:查找软件包
清除缓存
       yum clean all




增加yum源:


在玩linux的过程中,经常会下载一些源码包。软件大多是国外人写的,由于众所周知的原因,网络下载很慢。

所以想到了更新yum源的方法。

我的linux版本是CentOS6.3的。

以下参考百度。

1,进入yum源配置目录
cd /etc/yum.repos.d

2,备份系统自带的yum源
mv CentOS-Base.repo CentOS-Base.repo.bk
下载163网易的yum源:
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo

3,更新玩yum源后,执行下边命令更新yum配置,使操作立即生效
yum makecache

4,除了网易之外,国内还有其他不错的yum源,比如中科大和搜狐的,大家可以根据自己需求下载
中科大的yum源:
wget http://centos.ustc.edu.cn/CentOS-Base.repo
sohu的yum源
wget http://mirrors.sohu.com/help/CentOS-Base-sohu.repo

 

阿里云是最近新出的一个镜像源。得益与阿里云的高速发展,这么大的需求,肯定会推出自己的镜像源。
阿里云Linux安装镜像源地址:http://mirrors.aliyun.com/

CentOS系统更换软件安装源
第一步:备份你的原镜像文件,以免出错后可以恢复。

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
第二步:下载新的CentOS-Base.repo 到/etc/yum.repos.d/
CentOS 5

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo
CentOS 6

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
第三步:运行yum makecache生成缓存

yum clean all

yum makecache

 


 

 

如果使用阿里云YUM源 (推荐)

为了方便所有用户对服务器进行应用安装,阿里云提供了多个Linux发行版的软件源镜像,可以访问:http://mirrors.aliyun.com/进行详细了解.
同步频率为每天一次,每天凌晨2:00-4:00为镜像的同步时间;
若使用阿里云服务器,可以通过内网地址:http://mirrors.aliyuncs.com/ 访问,不占用公网流量。
 
为了更方便对于YUM源的配置,可以使用官网提供的一键式YUM源更新脚本:http://help.aliyun.com/view/13438670.html?spm=5176.7114037.1996646101.3.oIiOLz&pos=2
它适用于目前线上所有Linux版本的云服务器,可以把这个脚本下载到您本地上传到服务器中或者直接在服务器中下载,tar解压缩后,使用root身份执行bash update_source.sh进行配置。
 
如果使用其他YUM源:
例如:如果需要配置163 YUM源,可以通过以下步骤实现:
1.导入CentOS-6的GPG证书
rpm --import http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6
2.让yum使用网易的源:
cd /etc/yum.repos.d/
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
3.修改repo文件
在所有mirrorlist前面加上#,把所有$releasever替换成6,保存
sed -i '/mirrorlist/d' CentOS-Base-163.repo
sed -i '/\[addons\]/,/^$/d' CentOS-Base-163.repo
sed -i 's/\$releasever/6/' CentOS-Base-163.repo
sed -i 's/RPM-GPG-KEY-CentOS-5/RPM-GPG-KEY-CentOS-6/' CentOS-Base-163.repo
4.清理并重新生成yum缓存
yum clean metadata
yum makecache