7.1-7.9Linux软件包安装与卸载

软件报的分类:*.zip *.tar rpm二进制包 tar源码包

rpm概述

RPM是RPM Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、SUSE以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。

rpm包获取方式:

1、CentOS系统镜像光盘

2、网站 rpmfind.net

3、去对应软件的官网下载,例如mysql、NGINX等等

rpm 的格式说明:

ls zsh-5.0.2-28.el7.x86_64.rpm

软件名:zsh

主版本号:5

此版本号:0

修订号:2

第几次发布版本:28

操作系统版本:el7

软件包的位数:x86_64.rpm

基于REDHAT的系统有几种可用的前端工具:

  1. yum        redhat  centos   fedora
  2. urpm      Mandriva
  3. zypper   suse  opensuse

rpm 使用时,什么时候使用软件包全名?什么时候使用软件包名?

1、在安装和更新升级时候使用全名

2、对已经安装过的软件包进行操作时,比如查找已经安装的某个包,卸载包等 ,使用包名。它默认是去目录/var/lib/rpm下面进行搜索。 当一个 rpm 包安装到系统上之后,安装信息通常会保存在本地的 /var/lib/rpm/目录下。

RPM工具操作:安装、查询、验证、更新、删除

[安装]

语法格式:rpm [参数] 软件包

参数:

-i  install,安装软件包

-v 显示附加信息,提供更多详细信息

-V 效验,对已经安装的软件进行效验

-h --hash  安装时输出####标记

[查询]

语法:rpm -q(query) 【常用参数】 [软件包名]

参数:

-a (all)  查询所有已经安装的软件包

-f(file) 系统文件名(查询系统文件所属那个软件包),反向查询

-i  显示已经安装的rpm软件包信息,后面直接跟包名

-l(list) 查询软件包中文件安装的位置

-p  查询未安装软件包的相关信息,后面跟软件的命名

-R  查询软件包的依赖性

7.1-7.9Linux软件包安装与卸载

【验证】

rpm -V 包名

rpm -Vf 文件路径

注:如果出现的全是点,表示测试通过,出现下面的字符代表某测试的失败:

5 — MD5 校验和是否改变,你也看成文件内容是否改变

S — 文件长度,大小是否改变

L — 符号链接,文件路径是否改变

T — 文件修改日期是否改变

D — 设备

U — 用户,文件的属主

G — 用户组

M — 模式 (包含许可和文件类型)

? — 不可读文件

      再后面的c 文件名,它表示的是文件类型

c 配置文件

d 普通文件

g 不该出现的文件,意思就是这个文件不该被这个包所包含

l 授权文件(license file)

     r 描述文件

【卸载与升级】

卸载:rpm -e(erase) 包名  (参数 --nodeps 忽略依赖,建议在卸载不要用rpm去卸载有依赖关系的包,建议用yum)

例如:rpm -e --nodeps lrzsz

升级:rpm -Uvh 软件包(升级时会有一些依赖包需要解决,一般使用yum update 包名 进行升级)

例如:rpm -Uvh /mnt/Packages/lrzsz-0.12.20-36.el7.x86_64.rpm

yum 的使用:

yum 常用 功能 语法:

yum install [软件包名]    安装软件包

yum search [软件包名]  yum 搜索软件包

yum list 显示所有已经安装及可安装的软件包

yum list [软件包名]  显示指定的软件包的安装情况。

yum remove [软件包名]  删除软件包

yum erase [软件包名]  删除软件包

yum update  内核升级 或者软件 更新

yum update [软件包名] 更新指定 软件包

yum check-update  检查可更新的软件包

yum info [软件包名] 显示安装包信息

yum provides 列出软件包提供哪些文件

yum provides "* /rz" 列出rz 命令由哪个软件包提供

yum grouplist  查询可以用goupinstall 安装的组名称

yum groupinstall "Chinese Support"  安装中文支持

yum groupremove "Chinese Support" 删除程序组Chinese Support

yum deplist [软件包名] 查看程序的依赖情况

yum clean packages  清除缓存目录下的软件包

yum clean header 清除缓存目录下的headers

yum clean all  清除 缓存目录下的软件包 及 旧的 headers

YUM 构建源:

本地源(基于ISO镜像光盘):

① 将系统镜像 加载至 虚拟机中 并进行 挂载:mount /dev/cdrom /mnt

② 用 命令blkid  | grep "/dev/sr0" 查看 光盘的UUID 及 文件类型;如下图

7.1-7.9Linux软件包安装与卸载

并进行在 /etc/rc.local 追加如下信息可以实现自动挂载:echo "mount /dev/cdrom /mnt" >> /etc/rc.local

也可以在 /etc/fstabz 中追加如下信息实现自动挂载:

echo "UUID=2018-05-03-20-55-23-00      /mnt      iso9660    defaults   0  0" >> /etc/fstab (测试在/etc/fstab 中写 UUID 比较 /dev/cdrom 重启 不会 出现系统异常错误!)

③  vim /etc/yum.repos.d/centos-base.repo,其内容如下:

      [centos-base]                                               yum 源名称,在服务器上有唯一性,用来区分不同的yum源

      name=centos-base                                      yum 源描述信息

      baseurl=file:///mnt                                        yum 源的路径(方式:FTP、HTTP、本地光盘挂载方式)

      enable=1                                                      表示是否启用这个yum 源(1表示启用,0表示禁用)

      gpgcheck=0                                                 表示用是否对rpm进行效验(1表示进行效验,0表示比进行效验)

     gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7     指定的效验秘钥及公钥文件地址

④  然后进行执行 清空缓存 命令 与 列出 yum源加载的rpm包:yum clean all && yum list

基于网络yum 源:

① 下载 yum 文件,使用命令wget:

      wget  -O /etc/yum.repos.d/centos-7.repo  http://mirrors.aliyun.com/repo/Centos-7.repo

②  然后进行执行 清空缓存 命令 与 列出 yum源加载的rpm包:yum clean all && yum list

③  如果 下载下来的 yum 源文件 不能正常使用,可以进行如下操作解决:

     a、cat /etc/centos-release

     b、sed -i  's/$releasever/7.5.1804/g' /etc/yum.repos.d/centos-7.repo

     c、yum clean all && yum list

yum 工具 只下载 rpm 软件包:

yum install -y [软件包名]  --downloadonly

yum install -y [软件包名] --downloadony --downloaddir=路径

yum reinstall -y [软件包名] --downloadony --downloaddir=路径

源码包安装:

① 下载 所需 的 软件 源码包

②  解压缩 下载下来的 源码包

③  进入 源码包解压缩后的目录,执行 ./configure 进行预编译

④  使用 make 命令 进行编译

⑤  使用 make install 进行 安装

注意:

a. 指定安装路径,例如 --prefix=/usr/local/nginx
b. 启用或禁用某项功能, 例如 --enable-ssl, --disable-filter --with-http_ssl_module
c. 和其它软件关联,例如--with-pcre
d. 检查安装环境,例如是否有编译器gcc,是否满足软件的依赖需求

make  -j 4   #按Makefile文件编译,可以使用-j 4指定4核心CPU编译,提升速度

make install  #按Makefile定义的文件路径安装

make clean //清除上次的make命令所产生的object和Makefile文件。(使用场景:当需要重新执行configure时,需要执行make clean)