安装命令(十九)

安装命令: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
时间: 2024-11-05 10:21:34

安装命令(十九)的相关文章

Linux常用命令(十九) - find之exec

find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了. exec解释: -exec  参数后面跟的是command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠. {}   花括号代表前面find查找出来的文件名. 使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的.在有些操作系统中只允许-ex

centos LAMP第一部分-环境搭建 第十九节课

centos LAMP第一部分-环境搭建  Linux软件删除方式,mysql安装, 第十九节课 上半节课 Linux软件删除方式 mysql安装 下半节课 apache下面的一个软件httpd,大家会把httpd误认为是apache 搜狐镜像:http://mirrors.sohu.com 康盛镜像:http://www.aminglinux.com/study_v2/download.html Linux软件删除方式源码包删除:直接删除目录rpm删除:rpm -eyum 删除 yum rem

二十九、linux常用命令(一)

vim是打开vim编辑器,别的编辑器还有vi(功能没有vim 强大),nano,emacs等等,感觉还是vim最强大,其次是vi,别的就要差一些了. 我听我们老师说,用图形界面本身已经会被高手笑了,如果打开一个gpedit或者kwrite那就废了......常用的命令 ls,列出当前目录下的文件,ls -l是列出详细信息,ls -a列出隐藏文件. cd,更改目录.clear,清屏命令.reset,重置终端. startx,启动图形界面.fdisk -l,查看硬盘分区. ps aux,列出系统进程

centos shell编程5LANMP一键安装脚本 第三十九节课

centos shell编程5LANMP一键安装脚本  第三十九节课 上半节课 下半节课 f

第三百七十九节,Django+Xadmin打造上线标准的在线教育平台—xadmin的安装

第三百七十九节,Django+Xadmin打造上线标准的在线教育平台-xadmin的安装 xadmin介绍 xadmin是基于Django的admin开发的更完善的后台管理系统

从零开始的linux 第十九章(mv命令详解)

从零开始的linux 第十九章 hello~~又到了一周一更新博客的时候啦~~这周51CTO成功将博客功能升级~~给我们带来了全新的体验~全新的界面~全新的视感~~不过,在编辑器上~小编还是习惯用原来的编辑器,感谢工作人员在内测时候广泛采纳用户的建议~对博客进行一次又一次的修改,嗯,最辛苦的还是我们的开发同志~~小编给你们以及所有员工打call~~ 那么,回归到这章内容,实际上,小编从这周是想拒绝更新的~~因为这么久过去了,小编虽然在一直给同学们讲课,但自己还没有写一篇有技术性的博客,但小编又没

Python之路【第十九篇】:爬虫

Python之路[第十九篇]:爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕虫. Requests Python标准库中提供了:urllib.urllib2.httplib等模块以供Http请求,但是,它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务. import

攻城狮在路上(叁)Linux(二十九)--- 完整备份工具:dump以及restore

一.dump命令: 该命令既可以针对整个文件系统进行备份,也可以仅针对目录来备份.还可以指定不同的备份等级(-0~-9共10个等级). dump -W:列出在/etc/fstab中具有dump设置的分区是否备份过. 命令格式: dump [-Suvj] [-level] [-f 备份文件] 待备份数据 参数说明: -S:仅列出后面的待备份数据所需要的磁盘空间大小. -u:将这次dump的时间记录到/etc/dumpdates文件中. -v:将dump的文件过程显示出来. -j:加入bzip2的支

[翻译]NUnit---SetUp and SetUpFixture and Suite Attributes(十九)

SetUpAttribute (NUnit 2.0 / 2.5) 本特性用于TestFixture提供一个公共的功能集合,在呼叫每个测试方法之前执行.同时也用在SetUpFixture中,SetUpFixture在相同命名空间或者程序集也实现相同的作用. 在NUnit2.5之前,类必须只能有一个SetUp方法且必须是一个实例方法. 从NUnit2.5开始,SetUp方法可以使一个静态或者实例方法,而且在一个Fixture可以多次使用.通常多个Setup方法定义在不同层级的继承. 如果一个Setu