第六讲 软件包管理

1|0第六讲 软件包管理

2|0一、软件包管理简介

2|1  1.1软件包分类

1|0    1.1.1 源码包

        脚本安装包:源码包二次开发形成的包。
      优点:
        a)开源,如果有足够的能力,可以修改源代码
        b)可以自由选择所需的功能
        c)软件是编译安装,所以更加适合自己的系统,更加稳定也效率更高
        d)卸载方便(直接删除安装的文件夹)
      缺点:
        a)安装步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误
        b)编译过程时间较长,安装比二进制安装时间长
        c)因为是编译安装,安装过程中一旦报错,新手很难解决
 

1|0    1.1.2 二进制包:(CentOs中叫RPM包、系统默认包)

      是源代码包编译之后形成的包。加快安装速度,省略了编译步骤,但是无法看到源代码。
      优点:
        包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载
        安装速度比源码包快的多
      缺点:
        经过编译,不再可以看到源代码
        功能选择不如源码包灵活
        依赖性

3|0二、RPM包管理-rmp命令管理

3|1  2.1 rpm命令管理-包命名与依赖性

1|0    2.1.1 RPM包命名原则

       httpd-2.2.15-15.el6centos.1.i686.rpm -->包全名
       httpd        软件包名
       2.2.15         软件版本
       15          软件发布的次数
       el6.centos      适合的Linux平台
       i686         适合的硬件平台
       rpm           rpm包扩展名

1|0    2.1.2 RPM包依赖性

      树形依赖:a->b->c
      环形依赖:a->b->c->a
      模块依赖:模块依赖查询网站:www.rpmfind.net

3|2  2.2 rpm命令管理-安装升级与卸载

1|0    2.2.1 包全名与包名

      包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径(安装与升级)
      包名:操作已经安装的软件包时,使用包名。是搜索/var/lib/rpm中的数据库(查询与卸载)

1|0    2.2.2 RPM安装

      rpm -ivh [包全名]
      选项:
        -i(install)    安装
        -v(verbose)    显示详细信息
        -h(hash)    显示进度
        --nodeps    不检测依赖性

1|0    2.2.3 RPM包升级

      rpm -Uvh 包全名
      选项:
        -U(update)     升级

1|0    2.2.3 卸载

      rpm -e 包名
      选项:
        -e(erase)      卸载
        -nodeps     不检查依赖性 

3|3  2.3 rpm命令管理-查询

1|0    2.3.1 查询是否安装

      rpm -q 包名  查询指定包名
      选项:
        -q(query)     查询
      rpm -qa      查询已安装的所有包
        -a(all)      所有
      rpm -qa | grep 包名 查询指定包

1|0    2.3.2 查询软件包的详细信息

      rpm -qi 包名
      选项:
        -i       查询软件信息
        -p        查询未安装包信息

1|0    2.3.3 查询包中文件安装位置

      rpm -ql 包名
      选项:
        -l(list)      列表
        -p(package)   查询未安装包信息

1|0    2.3.4 查询系统文件属于那个rpm包

      rpm -qf 系统文件名
      选项:
        -f(file)      查询系统文件属于哪个软件包

1|0    2.3.5 查询软件包的依赖性

      rpm -qR 包名
      选项:
        -R(requires)    查询软件包的依赖性
        -p(package)    查询未安装包信息

3|4  2.4 rpm命令管理-校验和文件提取

1|0    2.4.1 RPM包校验

      rpm -V 已安装的包名
      选项:
        -V(verify)   校验指定RPM中的文件 
      验证内容中的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) 

1|0    2.4.2 RPM包中文件提取

      rpm2cpio 包全名 | cpio 选项 <文件|设备>
      选项:
        -i  copy-in模式,还原
        -d  还原时自动新建目录
        -v      显示还原过程     
      rpm2cpio 将rpm包转换为cpio格式的命令
      cpio 是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件
      范例:
        rmp -qf /bin/ls 查询命令属于那个包
        mv /bin/ls /tmp/ 造成命令误删的家乡
        rpm2cpio /mnt/cdrom/Packages/coreutils-8.22-24.el7.x86_64.rpm | cpio -idv ./bin/ls 
        提取RPM包中的ls命令到当前目录的/bin/ls目录下
        cp ls /bin/ls 把ls命令复制到bin目录下,修复文件丢失

4|0三、RPM包管理-yum在线管理

4|1  3.1IP地址配置和网络yum源

1|0    3.1.1 IP地址配置

      setup  #使用setup工具

      vi /etc/sysconfig/network-srcipts/ifcfg-ens33

      将ONBOOT="no"改为ONBOOT="yes"  #表示启动网卡

      service network restart  #重启网络服务

1|0    3.1.2 网络yum源

      vi /etc/yum.repos.d/CentOS-Base.repo

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

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

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

        baseUrl    我们yum源服务器地址,默认是CentOs官方的yum源服务器,是可以使用的。

        enabled    此容器是否生效,如果不写或携程enable=1都是生效,enable=0则不生效

        gpgcheck     =1代表RPM的数字证书生效,=0则不生效

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

4|2  3.2yum命令

1|0    3.2.1 yum常用命令

      1)查询 yum list      #查询所有可用软件包列表

      2)yum search 关键字  #搜索服务器上所有和关键字相关的包

      3)安装 yum -y install 包名

         选项:

          install  安装

          -y    自动回答yes

      4)升级 yum -y update 包名

         选项:

          update   升级

          -y      自动回答yes

      5)卸载 yum -y remove 包名

        选项:

          remove  卸载

          -y     自动回答yes

       注意:使用yum更新时,如果后面不跟包名,会将整个系统的所有包都更新,包括Linux内核
          可能会导致服务器宕机。
         卸载时,会将软件包依赖的所有包都卸载,可能这些依赖包会被其他系统包依赖,卸载
         掉后系统可能奔溃。所以要慎重。

1|0    3.2.2 yum软件组管理命令

      yum grouplist         #列出所有可用的软件组列表
      yum groupinstall 软件组名    #安装指定软件组,组名可以有grouplist查询
      yum groupremove 软件组名  #卸载指定软件组

4|3  3.3 光盘yum源

1|0    3.3.1 光盘yum源搭建步骤

      1)挂载光盘 mount /dev/cdrom /mnt/cdrom/
      2)让网络yum源失效
        cd /etc/yum.repos.d/
        mv CentOS-Base.repo CentOS-Base.repo.bak
        mv CentOS-Base.Debuginfo.repo CentOS-Base.Debuginfo.repo.bak
        mv CentOS-Vault.repo CentOS-Valut.repo.bak
      3)修改光盘yum源文件
        vim CentOS-Media.repo 
        [c7-media]
        name=CentOS-$releaserver - Media
        baseurl=file:///mnt/cdrom/
        #地址为光盘挂载地址
        # file:///media/cdrom/
        # file:///media/cdrecorder/
        #注释上面两个不存在地址
        gpgcheck=1
        enabled=1
        #将enabled=0改为enabled=1,让yum源配置文件生效
        gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

5|0四、源码包与RPM包的区别        

5|1  4.1 源码包和RPM包的区别

1|0    4.1.1 区别

      安装之前的区别:概念上的区别
      安装之后的区别:安装位置不同

1|0    4.1.2 RPM包安装位置

      是安装在默认位置中
      
RPM包默认安装路径
/etc 配置文件安装目录
/usr/bin/ 可执行的命令安装位置
/usr/lib 程序所使用的函数库保存位置
/usr/share/doc 基本的软件使用手册保存位置
/usr/share/man 帮助文件保存位置
 
 

1|0    4.1.3 源码包安装位置

      安装在指定位置当中,一般是/usr/local/软件名/

1|0    4.1.4 安装位置不同带来的影响

      RPM包安装的服务可以使用系统服务管理命令(service)来管理,例如RPM包安装的apache的启动方法是
        /etc/rc.d/init.d/httpd start
        service httpd start
      源码包安装的服务则不能被服务管理命令管理,因为没有安装到默认路径中,所以只能用绝对路径进行服务管理
        如:/usr/local/apache2/bin/apachectl start

5|2  4.2源码包安装位置

1|0    4.2.1 安装准备

      安装C语言编译器
      下载源码包 http://mirror.bit.edu.cn/apache/httpd

1|0    4.2.2 安装注意事项

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

1|0    4.2.3 源码包安装过程

      下载源码包
      解压缩下载的源码包
      进入解压缩目录
      a)./configure 软件配置与检查 
         定义需要的功能选项 --prefix=/usr/local/apache2
        检测系统环境是否符合安装要求
          tips:检查时可能会包ARR错误,解决方式是,下载
             http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz
            源码包,解压之后执行,./configure --prefix=/usr/local/apr 然后make & make install 
             下载 http://archive.apache.org/dist/apr/apr-util-1.3.12.tar.gz
            源码包,解压之后执行,./configure --prefix=/usr/local/apr-util
            这时,可能会报apr错误,如果报错,则执行
            ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
            然后make & make install
            安装好上述两个依赖之后,进入到apache安装路径中执行
            ./configure --prefix=/usr/local/apache2 然后make&make install 即可安装成功
        把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑
      b)make 编译
        make clean 清空编译缓存文件
      c)make install 编译安装

1|0    4.2.4 源码包的卸载

      rm -rf /usr/local/apache2 即可

6|0五 脚本安装包

6|1  5.1脚本安装包

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

6|2  5.2 Webmin的作用

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

6|3  5.3 Webmin安装过程

    5.3.1下载软件:http://sourceforge.net/projects/webadmin/files/webmin/
    5.3.2解压缩,并进入解压目录
    5.3.3执行安装脚本
      

__EOF__

本文作者flash-bird
本文链接https://www.cnblogs.com/yindx/p/16156192.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   flash-bird  阅读(42)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示