安装命令(十九)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安装命令(十九)相关的知识,希望对你有一定的参考价值。

安装命令: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


本文出自 “烂笔头” 博客,请务必保留此出处http://lanbitou.blog.51cto.com/9921494/1940199

以上是关于安装命令(十九)的主要内容,如果未能解决你的问题,请参考以下文章

Ionic实战十九:新系统之环境搭建

Vue教程(三十九)vue-cli2脚手架安装

Vue教程(三十九)vue-cli2脚手架安装

三十九安装PHP5安装PHP7

VSCode自定义代码片段——git命令操作一个完整流程

VSCode自定义代码片段——cli的终端命令大全