Linux下系统软件包管理(rpm、yum、源码包安装)

1. rpm工具
rpm全称为RedHat Package Manager,红帽软件包管理工具,设计理念是开放的,不仅仅是在RedHat平台上,在SUSE上也是可以使用的。

rpm包名字构成由-和.分成了若干部分,如abrt-cli-2.0.8-15.el6.CentOS.i686.rpm,abrt-cli是包名,2.0.8-15是版本号,el6指的是redhat企业版6,centos指的是这是在centos上用的,i686指的是平台类型。有些rpm包并没有写具体的平台而是noarch,这代表这个rpm包没有硬件平台限制。

安装一个包:rpm -ivh /mnt/Packages/libjpeg-turbo-devel-1.2.1-1.el6.i686.rpm
-i    表示安装
-v    可视化
-h    显示安装进度
--force : 强制安装,即使覆盖属于其他包的文件也要安装
--nodeps : 当要安装的rpm包依赖其他包时,即使其他包没有安装,也要安装这个包

[root@localhost mnt]# rpm -ivh tree-1.5.3-2.el6.i686.rpm 
Preparing...                ########################################### [100%]
  1:tree                  ########################################### [100%]

升级:rpm -Uvh filename.rpm
-U    就是升级的意思

rpm的卸载:
rpm -e filename  //这里的filename是通过rpm的查询功能所查询到的
rpm -qa |grep libjpeg-turbo-devel
rpm -e libjpeg-turbo-devel
12345 [root@localhost ~]# rpm -q tree
tree-1.5.3-2.el6.i686
[root@localhost ~]# rpm -e tree
[root@localhost ~]# echo $?
0

echo $?    查看上一条命令执行状态,返回0表示执行成功,非0为不成功;

查询一个包是否安装
rpm -q  包名  (不带有平台信息以及后缀名 )

[root@localhost ~]# rpm -q tree
package tree is not installed

查询当前系统所有安装过的rpm包
rpm -qa 

查询rpm包的相关信息 :
rpm -qi 包名

列出一个rpm所安装的文件:
rpm -ql 包名
[root@localhost ~]# rpm -ql vim-enhanced
/etc/profile.d/vim.csh
/etc/profile.d/vim.sh
/usr/bin/ex
/usr/bin/rvim
/usr/bin/vim
/usr/bin/vimdiff
/usr/bin/vimtutor
/usr/share/man/man1/rvim.1.gz
/usr/share/man/man1/vimdiff.1.gz
/usr/share/man/man1/vimtutor.1.gz

查看某个文件属于哪个rpm包:
rpm -qf filename

[root@localhost ~]# rpm -qf /etc/passwd
setup-2.8.14-20.el6_4.1.noarch

2. yum工具
yum list 列出所有可用rpm包资源
搜索某个包: yum search  ‘keywords’或    yum list |grep ‘keywords’
yum 安装包: yum install -y  filename(包名)
yum 卸载包: yum remove  -y filename (包名)
yum 升级包: yum update -y filename(包名)

yum 查找包:yum provides  "*/vim"  //这里用通配,可以查找一个命令由哪个包安装来的

yum grouplist  列出所有的套件
yum groupinstall    安装套件
yum groupremove  卸载套件


创建本地的yum源
mount /dev/cdrom /mnt 
cp -r /etc/yum.repos.d  /etc/yum.repos.d.bak    //先备份一下
rm -f /etc/yum.repos.d/*
vim /etc/yum.repos.d/dvd.repo  #加入如下内容:
[dvd]
name=install dvd
baseurl=file:///mnt
enabled=1
gpgcheck=0
yum list  //查看是否有dvd的标志出现


安装yum扩展源epel    可以安装nginx、zabbix
rpm -ivh ... e-6-8_32.noarch.rpm 
(其他地址)
12 [root@localhost ~]# rpm -ivh
Retrieving : /var/tmp/rpm-tmp.YcVQW6: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEYPreparing...                ########################################### [100%]  1:epel-release          ########################################### [100%]

安装完成之后yum list 右侧可以列出很多epel的包,供以后使用;

使用yum下载rpm包,而不安装,方法1:
yum有一个plugin(插件)叫做yum-downloadonly,可以实现让用户只下载软件包的功能;
首先需要安装插件:yum install -y yum-plugin-downloadonly
安装完成后:yum install 包名 -y --downloadonly 
#这样就已经下载,centos6默认在 /var/cache/yum/i386/6/base/packages 我这里是32位的显示为i386目录;
yum install 包名 -y --downloadonly --downloaddir=/usr/local/src  #指定一个下载目录,如果是已经安装过的rpm包这样不成功,需要使用reinstall: yum reinstall  包名  -y --downloadonly --downloaddir=/usr/local/src
reinstall    重新安装;

示例:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/16451.html