一、rpm安装
rpm 是一种数据库记录的方式来将你所需要的软件安装到你的linux系统的一套管理机制
RPM 最大的特点就是将你要安装的软件先编译过,并且打包成RPM机制的安装包,通过包装好的软件里头默认的数据库记录这个软件要安装的时候必须具备的依赖属性软件>,当安装在你的linux主机时,RPM会先按照软件里头的数据查询linux主机的依赖属性软件是否满足,若满足则安装,若不满足则不安装,那么安装的时候就将软件信息写>入RPM数据库中,以便未来的查询、验证、与反安装。优点:(1)由于编译完成并且打包完毕,所以软件传输与安装上很方便。(不需要再重新编译)
(2) RPM在被安装之前,会先检查系统的硬盘容量、操作系统版本等,可避免文件被错误安装。
(3)RPM文件本身提供软件版本信息、依赖属性软件名称、软件用途说明、软件所含文件等信息。
(4)由于软件的信息都已经记录在linux主机的数据库,很方便查询、升级与反安装。
软件管理机制问题:
(1)软件安装的环境必须与打包时的环境需求一致或相当;
(2)需要满足软件的依赖属性需求;
(3)反安装时需要特别小心,最底层的软件不可先删除,否则可能造成整个系统的问题。
rpm -qf /usr/bin #查询某个文件属于那个安装包
rpm -qi openssh-server #软件信息查询
rpm Kv linuxqq* #检测安装包是否被
rpm -qc name #查询软件配置文件的名称
rpm -qd name #查询软件的说明文件名称
rpm -qp name.rpm #查询安装后到系统的名字叫什么
rpm -ql name #查询软件生成的文件
rpm -qlp name.rpm #查询软件安装后会生成什么软件
rpm -qa #查询系统中安装的所有软件名称
rpm -qa | grep name #查询软件是否被安装
rpm -q name #精准查询软件是否被安装
rpm -qi name #查看软件信息
rpm -ivh name.rpm #安装软件包
rpm -ivh name.rpm --force #强制安装,不忽略依赖性
rpm -ivh name.rpm --nodeps --force #忽略依赖性并且强置安装
rpm -e name #卸载软件
注意
--nodeps 使用的时机:当发生软件属性依赖性问题而无法安装,当你非要安装时,采用--nodeps
危险性:软件会有依赖性的原因是因为彼此会使用到对方的机制或功能,如果强制安装而不考虑软件的属性依赖,则可能会造成该软件的无法正常使>用。
--force 强制安装软件,尽量不要强制安装,因为会发生很多不可预期的问题,除非很清楚的知道使用上面的参数后安装的结果是你预期的。
--justdb 由于RPM数据库损坏或者某些缘故产生错误时,可使用这个参数来更新软件在数据库内的相关信息
--replacefiles 安装过程中出现了“某个文件已经安装在你的系统上面”的信息,又或许出现版本不合的信息时,可以使用这个参数来直接覆盖文件。
--replacepkgs 重复安装
例子
[root@localhost ~]# rpm -ivh wps-office-10.1.0.5672-1.a21.x86_64.rpm #安装wps这个软件,如果加nodeps安装时,忽略依赖性的问题;如果加--force 强>制安装,但不能忽略依赖性;
error: Failed dependencies:
libpng12.so.0()(64bit) is needed by wps-office-10.1.0.5672-1.a21.x86_64
libGLU.so.1()(64bit) is needed by wps-office-10.1.0.5672-1.a21.x86_64
yum search libpng12
yum install libpng12.so.0 #安装libpng12.so.0 解决依赖性的问题
yum install libGLU.so.1 #安装libGLU.so.1 解决依赖性的问题
二、第三方软件仓库的搭建
(1)cp -r /mnt/software /var/www/html #将所有的rpm软件放到一个目录下,这个目录只能存放rpm,此目录是被扫描的软件信息数
(2)createrepo -v /mnt/software
(3)vim /etc/yum.repos.d/rhel_dvd.repo
编辑文件
# Created by cloud-init on Thu, 10 Jul 2014 22:19:11 +0000
[rhel_dvd]
gpgcheck = 0 #安装时对第三方软件不进行检查
enabled =1 #读取时读取172.25.254.250这个主机的安装包的个数
baseurl = http://content.example.com/rhel7
name = Remote classroom copy of dvd
[software]
name=software
baseurl=file:///mnt/software #安装包存放的位置
gpgcheck=0 #对第三软件不检查
enabled=1 #读取安装包的个数
~
(4)可以直接用yum 安装,但是与我们复制的安装包有所不同,是解压后的安装包
(5)rpm -q name.rpm #查看是否被安装
(6)打开你安装的软件
例子
[root@localhost ~]# cp -r /mnt/software /var/www/html/
[root@localhost ~]# createrepo -v /mnt/software
Spawning worker 0 with 4 pkgs
Worker 0: reading FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.rpm
Worker 0: reading FluffyMcAwesome-B-6.4.0-11.r19335.x86_64.rpm
Worker 0: reading linuxqq-v1.0.2-beta1.i386.rpm
Worker 0: reading wps-office-10.1.0.5672-1.a21.x86_64.rpm
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Starting other db creation: Sun Apr 29 00:43:58 2018
Ending other db creation: Sun Apr 29 00:43:59 2018
Starting filelists db creation: Sun Apr 29 00:43:59 2018
Ending filelists db creation: Sun Apr 29 00:44:00 2018
Starting primary db creation: Sun Apr 29 00:44:00 2018
Ending primary db creation: Sun Apr 29 00:44:01 2018
Sqlite DBs complete
[root@localhost ~]# vim /etc/yum.repos.d/rhel_dvd.repo
[root@localhost software]# yum clean all
Loaded plugins: langpacks
Cleaning repos: rhel_dvd software
Cleaning up everything
[root@localhost software]# yum repolist
Loaded plugins: langpacks
rhel_dvd | 4.1 kB 00:00
software | 2.9 kB 00:00
(1/3): software/primary_db | 4.8 kB 00:00
(2/3): rhel_dvd/group_gz | 134 kB 00:00
(3/3): rhel_dvd/primary_db | 3.4 MB 00:00
repo id repo name status
rhel_dvd Remote classroom copy of dvd 4,305
software software 4
repolist: 4,309
三、yum 文件的黑名单
(1)vim /etc/yum.conf #配置文件
exclude=*.i686
(2)yum list
[root@localhost software]# vim /etc/yum.conf
配置文件
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=3
exclude=*.i686 zziplib.x86_64
使用yum list 查看