Linux学习日记总结(8)linux软件包管理

Linux软件包管理

软件包管理简介

软件包命名规则

httpd-2.2.15-15.el6.centos.1.i686.rpm

httpd 软件包名

2.2.15 软件版本

15 软件发布的次数

el6.contos 适合的Linux平台

i686 适合的硬件平台

.rpm rpm包扩展名

软件包的依赖性

  • 树形依赖: a->b->c

  • 环形依赖: a->b->c->a

  • 模块依赖:

    • 模块依赖查询网站: [模块依赖查询网站][www.rpmfind.net]

软件的包名与包全名

  • 包全名:操作的包是没有安装的软件包时,

​ 使用包全名。而且要注意路径

  • 包名:操作已经安装的软件包时,使用包名。

    是搜索/var/lib/rpm/中的数据库

PRM包管理-rpm命令管理

RPM安装

由于使用rpm的手动安装命令,对于依赖的问题非常麻烦,所以不推荐使用rpm命令手动安装依赖包,这里只推荐使用rpm执行下面的其他选项

使用格式:rpm -ivh 包全名

选项

 -i(install)   安装   

​ -v(verbose) 显示详细信息

​ -h(hash) 显示进度

--nodeps  不检测依赖性

RPM包升级

使用格式:rpm -Uvh 包全名

选项

 -U(upgrade)   更新

卸载RPM包

使用格式:rpm -e 包名

选项

 -e(erase) 卸载 

查询是否安装

使用格式:rpm -q 包名(查询这个包是否安装)、rpm -qa(查询所有已经安装的包)

​ -q 查询(query)

​ -a 所有(all)

查询包详细信息

使用格式:rpm -qi 包名

-i 查询软件信息(information)

-p 查询未安装包信息(package)

查询包的详细安装位置

使用格式:rpm -ql 包名

选项: -l 列表(list)

​ -p 查询未安装包信息(package)

查询系统文件名属于哪个RPM包

使用格式:rpm –qf 系统文件名

选项:

​ -f 查询系统文件属于哪个软件包(file)

查询软件包的依赖性

使用格式:rpm -qR 包名

选项:

​ -R 查询软件包的依赖性(requires)

​ -p 查询未安装包信息(package)

RPM包校检

使用格式:rpm –V 已安装的包名

选项:

​ -V 校验指定RPM包中的文件(verify)

验证内容中的8个信息的具体内容如下:

**注意:**只有在有改变的情况下,才会显示下面的信息

  • S 文件大小是否改变
  • M 文件的类型或文件的权限(rwx)是否被改变
  • 5 文件MD5校验和是否改变(可以看成文件内容是否 改变)
  • D 设备的中,从代码是否改变
  • L 文件路径是否改变
  • U 文件的属主(所有者)是否改变
  • G 文件的属组是否改变
  • T 文件的修改时间是否改变
文件类型
  • c 配置文件(config file)
  • d 普通文档(documentation)
  • g “鬼”文件(ghost file),很少见,就是该文件不 应该被这个RPM包包含
  • l 授权文件(license file)
  • r 描述文件(read me)

RPM包中的文件提取

使用格式:

rpm2cpio 包全名  |  \ 
cpio -idv .文件绝对路径  

rpm2cpio # 将 rpm 包转换为 cpio 格式的命令
cpio # 是一个标准工具,它用于创建软件档案文件和从档案文件中提取文

使用格式:cpio 选项 < [文件|设备]

选项:

  • -i:copy-in模式,还原
  • -d:还原时自动新建目录
  • -v:显示还原过程

示例:

[root@localhost ~]# rpm -qf /bin/ls # 查询 ls 命令属于哪个软件包
 [root@localhost ~]# mv /bin/ls /tmp/ # 造成 ls 命令误删除假象
 [root@localhost ~]# rpm2cpio /mnt/cdrom/Packages/coreutils8.4-19.el6.i686.rpm | cpio -idv  ./bin/ls # 提取 RPM 包中 ls 命令到当前目录的 /bin/ls 下
 [root@localhost ~]# cp /root/bin/ls  /bin/ # 把 ls 命令复制会 /bin/ 目录,修复文件丢失
 

RPM常用选项

选项 作用
-i 安装(install)展示包信息,包括名字,版本,以及描述.???(information)
-v 显示详细信息(verbose)
-h 显示进度(hash)
-U 更新(upgrade)
-e 卸载(erase)
-q 查询(query)
-a 所有(All)
-p 查询未安装的包(package)
-l 列表(list)
-f 文件(file)
-R 查询软件包的依赖性

RPM包管理-yum在线管理

使用-yum在线管理软件包非常的方便,他会自动在网上帮你下载这个包所需要的所有依赖,让用户不在需要手动安装其他起来包

ip地址配置和网络

注意:在使用yum在线管理软件包前提条件就是,必须能够ping通网页地址

ifconfig 网卡 ip地址

打开网卡

网卡地址:/etc/sysconfig/network-scripts/ifcfg-网卡

使用vim打开网卡配置文件,将ONBOOT设置为yes

vi /etc/sysconfig/network-scripts/ifcfg-网卡

配置网络yum源

yum配置文件路径:/etc/yum.repos.d/CentOS-Base.repo

注意:在/etc/yum.repos.d下面有一下这个配置源

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g0YxqqPw-1588938389601)(C:\Users\13537\AppData\Roaming\Typora\typora-user-images\image-20200507182418127.png)]

现在解释上面的几个配置源

CentOs-Base.repo:网络yum配置源

centOs-Debuginfo.repo:debug使用的配置源

CentOs-Media.repo:本地的配置源

CenOs-Vault.repo:虚拟的配置源

CenOs-Base.repo说明

在CentOs-Base.repo文件里,一般都有一下几个属性

  • [base] 容器名称,一定要放在[]中

  • name 容器说明,可以自己随便写

  • mirrorlist 镜像站点,这个可以注释掉

  • baseurl 我们的yum源服务器的地址。默认是CentOS官方的yum源服务 器,是可以使用的,如果你觉得慢可以改成你喜欢的yum源地 址

  • enabled 此容器是否生效,如果不写或写成enable=1都是生效,写成 enable=0就是不生效

  • gpgcheck 如果是1是指RPM的数字证书生效,如果是0则不生效

  • gpgkey 数字证书的公钥文件保存位置。不用修改

yum在线管理

yum常用命令

在使用yum管理软件包的时候,一般需要加上-y选项,-y选项的作用是在所有需要询问的用户的时候,全部Y同意,如果不加上这个选项,yum每次安装一个包的时候都会询问是否安装这个依赖包

命令 作用 范例
list 查看所有可用软件包列表 yum list
search 搜索服务器上所有和关键字相关的包 yum search 关键字
install 安装这个软件包及与这个软件包相依赖的软件包 yum -y install 软件包
update 更新这个软件包至最新版本 yum -y 软件包
remove 卸载软件包 yum -y remove包名

注意事项:

一定要**谨慎使用update这个更新命令,千万不要使用yum -y update如果后面没有指定软件包,Linux默认认为你要将系统的所有软件包包括内核一起全部更新**,但是在系统内核更新的时候,一般都需要配置本地配置文件,如果没有配置更新之后的配置,很有可能会讲系统弄奔溃

千万建议**不要使用remove**这个命令,因为它会不仅把这个软件包需要的依赖包全部卸载,还会把依赖包的依赖包也卸载了,有可能会造成,卸载一个软件包的时候,将整个系统的大部分软件包一起卸载,有可能会造成系统的奔溃

yum软件组管理命令

命令 作用 范例
grouplist 列出所有可用软件组列表 yum grouplist
groupinstall 安装指定软件组 yum groupinstall 软件组名
groupremove 卸载指定软件组 yum groupremove 软件组名

光盘yum源搭建

使用光盘yum源安装软件包,是不需要连接外网的,我们只需要配置光盘yum源,就可以安装软件包了,但是使用光盘yum源安装的话,有一个缺点,光盘yum源安装的软件包不一定是最新的软件包

用光盘yum源的好处:不需要联网,下载快,不需要等待下载

挂载光盘yum源

使用mount挂载

mount -t iso9660 /dev/sr0 /mnt/cdrom

修改光盘yum文件

  1. 进入/etc/yum.repos.d/文件夹

  2. 让网络yum源失效

    因为系统默认的是base这些网络yum源执行,我们需要做的是,不让除了media之外yum源生效。这里有一个办法,就是将其他的yum源改名,这样生效的就只有media了

  3. 修改光盘yum源文件

    # CentOS-Media.repo
    #
    #  This repo can be used with mounted DVD media, verify the mount point for
    #  CentOS-7.  You can use this repo and yum to install items directly off the
    #  DVD ISO that we release.
    #
    # To use this repo, put in your DVD and use it with the other repos too:
    #  yum --enablerepo=c7-media [command]
    #
    # or for ONLY the media repo, do this:
    #
    #  yum --disablerepo=\* --enablerepo=c7-media [command]
    
    # 这个中括号的中间,写的是容器的名称,叫什么无所谓
    [c7-media]
    # 这个是容器的说明,也是无所谓
    name=CentOS-$releasever - Media
    # 地址为你的光盘挂载地址
    baseurl=file:///mnt/cdronm
    # 注释这两个不存在的地址
    #       file:///media/cdrom/
    #       file:///media/cdrecorder/
    gpgcheck=1
    # 把enabled=0改为enabled=1,让这个yum配置源生效
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
    

这样就完成了

源码包管理

源码包和RPM包的区别

  1. 区别

    安装之前的区别:概念上的区别

    安装之后的区别:安装的位置不同

  2. RPM包默认安装位置

    位置 说明
    /etc 配置文件安装目录
    /usr/bin 可执行命令安装目录
    /usr/lib 程序所使用函数库安装目录
    /usr/share/dor 基本软件使用手册保存目录
    /usr/share/man 软件帮助文档安装目录
  3. 源码包安装位置

    安装在用户指定的位置:一般是安装在usr/local/软件名

  4. 安装位置不同带来的影响

    RPM包安装的服务可以使用系统服务管理命令(systemctl)来管理,例如RPM包安装的httpd(apache)的启动方法是:

    systemctl start httpd

  5. 而源码包的安装的服务则不能使用系统服务管理命令(systemctl)来管理,只能通过绝对路径来管理命令

源码包安装过程

  1. 安装准备

    • 安装c语音编译器gcc(可以使用yum安装)

    • 下载源码包

  2. 安装注意事项

    1. 源代码保存位置:/usr/local/src
    2. 软件安装位置/usr/local/软件名
    3. 如何确定安装过程报错
      • 安装过程停止
      • 并出现error,warning,no的提示
  3. 源码包安装过程

    1. 下载源码包

    2. 解压缩下载的源码包

    3. 进入解压目录

      • ./configure 软件配置与检查

        • 定义需要的功能选项。

        • 检测系统环境是否符合安装要求。

        • 把定义好的功能选项和检测系统环境的信息 都写入Makefile文件,用于后续的编辑

      • make编译

        • make clean
      • make install 编译安装

      • 源码包卸载

        • 直接rm删除安装的目录

脚本安装包

  • 脚本安装包并不是独立的软件包类型,常见 安装的是源码包
  • 是人为把安装过程写成了自动安装的脚本, 只要执行脚本,定义简单的参数,就可以完 成安装。
  • 非常类似于Windows下软件的安装方式。

下面使用webmin介绍脚本安装

Webmin的作用

Webmin 是一个基于 Web 的 Linux 系统管 理界面。您就可以通过图形化的方式设置 用户帐号、Apache、DNS、文件共享等服 务。

webmin安装过程
  1. 下载软件
  2. 解压缩,并进入加压缩目录
  3. 执行安装脚本

webmin使用,去网页输入ip:webmin端口,进入管理界面,然后输入刚刚选择的管理员

你可能感兴趣的:(Linux)