安装命令:yum,rpm
19.1.rpm
功能:rpm软件包管理器
常用选项:
-ivh 安装软件包
-Uvh 升级软件包,如果原来软件包不存在则安装
-Fvh 升级软件包,如果原来的软件包不存在则停止升级
-e 卸载软件包
--nodeps 忽略依赖关系
注意:
安装时,尽量不要忽略依赖关系;卸载时可以忽略依赖关系
-f 强制安装
-q 查看软件包是否安装上
-aq |grep xxx
-ql 查看软件所带来的软件列表
-qc 查看软件所带来的配置文件
-qd 查看软件所带来的帮助文档
-qf filename 查看文件来自于哪个软件包
rpm --import PUBKEY .. 导入软件包的数字签名认证
示例:
1)rpm包管理: # rpm -ivh zsh-4.3.10-5.el6.x86_64.rpm warning: zsh-4.3.10-5.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY Preparing... ########################################### [100%] 1:zsh ########################################### [100%] --这是成功安装 # rpm -ivh zsh-4.3.10-5.el6.x86_64.rpm warning: zsh-4.3.10-5.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY Preparing... ########################################### [100%] package zsh-4.3.10-5.el6.x86_64 is already installed --这是已经安装过了 关于上面的警告信息,其实就是在说操作系统没有这个软件包相关的签名信息;你用rpm命令来安装,有没有此警告无所谓。但如果你用yum来安装,yum里一个参数为gpgcheck=0的话,则表示没签名没问题,gpgcheck=1的话,则没签名就安装不了。 解决这问题: # rpm --import RPM-GPG-KEY-redhat-release 2)依赖性的问题: # rpm -ivh mysql-5.1.61-4.el6.x86_64.rpm error: Failed dependencies: libmysqlclient.so.16()(64bit) is needed by mysql-5.1.61-4.el6.x86_64 libmysqlclient.so.16(libmysqlclient_16)(64bit) is needed by mysql-5.1.61-4.el6.x86_64 libmysqlclient_r.so.16()(64bit) is needed by mysql-5.1.61-4.el6.x86_64 libmysqlclient_r.so.16(libmysqlclient_16)(64bit) is needed by mysql-5.1.61-4.el6.x86_64 mysql-libs = 5.1.61-4.el6 is needed by mysql-5.1.61-4.el6.x86_64 --这些依赖性怎么解决,如果你安装的是rhel的iso里的包,那么它的依赖包也一定在iso里(如果你是安装一个第三方的包,那么依赖性就不能保证全在iso里) 解决的过程很艰辛,具体查找的过程就不写了,下面这是安装顺序,并且最后一句比较特殊,它是A依赖B,B又同时依赖A,要两个一起安装的一个典型例子 # rpm -ivh mysql-libs-5.1.61-4.el6.x86_64.rpm # rpm -ivh keyutils-libs-devel-1.4-4.el6.x86_64.rpm # rpm -ivh libcom_err-devel-1.41.12-12.el6.x86_64.rpm # rpm -ivh libsepol-devel-2.0.41-4.el6.x86_64.rpm # rpm -ivh libselinux-devel-2.0.94-5.3.el6.x86_64.rpm # rpm -ivh krb5-devel-1.9-33.el6.x86_64.rpm # rpm -ivh openssl-devel-1.0.0-20.el6_2.5.x86_64.rpm # rpm -ivh mysql-devel-5.1.61-4.el6.x86_64.rpm mysql-5.1.61-4.el6.x86_64.rpm 3)冲突: 报错里有conflict关键字的时候,就是冲突了,解决方法:一般来说要先干掉冲突的包,再安装新包 但是也有特殊情况,比如我已经安装了A包,然后安装B包时,报两个包的其中一个文件冲突,怎么解决? 方法一:把这个文件mv走,然后安装 方法二: rpm -ivh --force xxxx.rpm 强制安装,那么这个冲突的文件会被覆盖 方法三: rpm -ivh --nodocs xxxx.rpm 这个nodocs的参数表示不安装它的文档文件(如果你冲突的文件是一个文档的话。如果不是文档文件,则要用其它相关参数 rpm -ivh --nodeps 脱离依赖性 但是包不一定能用,因为你少了一些依赖包的功能 rpm -ivh --nomd5 不检验md5值 rpm -ivh --noscripts 不想启用或者自动执行某些命令 rpm -ivh --replacefiles 某个文件已经安装在系统上,或者冲突,可以用此参数覆盖 注意:此操作无法复原 rpm -ivh --replacepkgs 重新安装某个已经安装过的包,比如说一个包你修改过,但不知道改在哪里,可以这样重新安装 rpm -ivh --force 相当是强制安装,是--replacefiles和--replacepkgs rpm -ivh --test 测试是否能安装到此linux系统中 rpm -qa --查看你系统上已经安装的rpm包(注意,只限于rpm包) # rpm -qa |grep mysql rpm -ql # rpm -ql mysql-5.1.61-4.el6.x86_64 --查看一个软件包都安装了哪些文件,从这里也可以了解到linux安装软件是把文件按功能分散到各个目录,后面的包名不用写全 # rpm -qpl rpm -qpl mysql-5.1.61-4.el6.x86_64.rpm --如果你一个软件包还没有安装,但你要查看一下安装会产生哪些文件分布,可以加个p参数,但后面的包名要写全 rpm -qi mysql-5.1.61-4.el6.x86_64 --查看软件包有关信息和说明 # rpm -qf `which mount` --查看一个文件属于哪个软件包 util-linux-ng-2.17.2-12.7.el6.x86_64 # rpm -e mysql-5.1.61-4.el6.x86_64 --删除一个rpm包的安装,但是删除也有依赖性.
19.2.yum
功能:rpm软件包在线安装工具
语法:
yum [options] [command] [package ...]
常用选项:
yum clean all 清空缓存
yum makecache 创建缓存
yum install xxx 安装软件
yum -y install xxx 取消交互
yum remove xxx 卸载软件
yum update 更新本系统中已经安装的所有软件包(比仓库里版本低都更新)
yum update xxx 单独更新某个软件
yum list 列出仓库里所有的软件包
yum list |grep xxx 过滤某个软件包 @代表已经安装,后面跟的是来自于-x哪个仓库
yum list installed 查看当前操作系统中已经安装的所有软件包
yum list installed|grep tigervnc
yum localinstll xxx.rpm 安装本地的rpm包
对应组的用法:
yum grouplist 查看包组
yum groupinstall -y "包组名" 安装一个包组
yum grouplist
yum groupinstall 组名
yum groupinstall "组名1 组名2"
yum groupremove 组名
示例:
本地yum源
步骤:
1)本地需要有一个镜像文件 2)挂在镜像文件到操作系统的挂在点,并且开机自动挂载 mkdir /yum 创建一个挂在点 # mount /mnt/hgfs/soft/rhel-server-6.5-x86_64-dvd.iso /yum -o loop 手动挂载 vim /etc/fstab 开机自动挂在 /mnt/hgfs/soft/rhel-server-6.5-x86_64-dvd.iso /yum iso9660 defaults,ro,loop 0 0 3)配置yum源 # vim /etc/yum.conf --主配置文件,但一般不用它 /etc/yum.repos.d/xxx.repo --这个目录下只要以.repo结尾的文件就是子配置文件 # rm /etc/yum.repos.d/* -rf --默认有两文件,没用,删掉 # vim /etc/yum.repos.d/localyum.repo --新建一个以repo结尾的文件就可以 [server] --软件仓库名,自定义 name=server --标识名,自定义 baseurl=file:///yum/ --这一条最重要,它表示你的仓库的地址。本地仓库的写法file:/// 要接三个/ enabled=1 --等于1表示打开仓库,等于0表示不使用此仓库 gpgcheck=0 --不验证gpg签名 上面这一段配置就包含了iso镜像里的大部分软件,完整的配置如下:(这是redhat镜像的详细配置) [server] name=server baseurl=file:///yum/ enabled=1 gpgcheck=0 [HighAvailability] name=HighAvailability baseurl=file:///yum/HighAvailability/ enabled=1 gpgcheck=0 [LoadBalancer] name=LoadBalancer baseurl=file:///yum/LoadBalancer/ enabled=1 gpgcheck=0 [ResilientStorage] name=ResilientStorage baseurl=file:///yum/ResilientStorage/ enabled=1 gpgcheck=0 [ScalableFileSystem] name=server baseurl=file:///yum/ScalableFileSystem enabled=1 gpgcheck=0