linux入门之软件包管理

独自空忆成欢 提交于 2020-01-27 18:58:06

一、rpm 安装

        程序包管理器就是将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便快捷地实现程序包的安装,卸载查询,升级和校验等管理操作,在CentOS系统上使用rpm命令管理程序包进行安装、卸载、升级、查询、校验、数据库维护等操作时,需要先对光盘进行挂载 ,挂载光盘命令如下

[root@localhost ~]#mount /dev/cdrom /media
mount: /dev/sr0 is write-protected, mounting read-only

出现下边那条命令显示挂载成功,接下来开始演示rpm命令的具体相关应用。

rpm        {-i|--install} [install-options] PACKAGE_FILE…

              -iv     显示程序包管理执行进度

              -ivh    PACKAGE_FILE   显示过程及安装进度百分比

              --test: 测试安装,但不真正执行安装,即dry run模式

              --nodeps:在安装时忽略依赖关系

              --replacepkgs 重复安装已安装过的包,文件覆盖

              --replacefiles 将要安装包的部分文件与其他已安装的包文件冲突,可继续安装,文件不覆盖

              --noscripts    安装时不执行包中自带的脚本

              -a: 所有包

              -f: 查看指定的文件由哪个程序包安装生成

              -p rpmfile:针对尚未安装的程序包文件做查询操作

              --provides: 查看指定包提供了哪些CAPABILITY 

              -R  查询 常用查询用法

              -qi  包名     显示包的详细信息

              -qf 文件路径     查询指定文件来自于哪一个已安装的rpm包

              -qc PACKAGE

              -e  卸载包

有关于rpm的相关应用就是应用的安装,不过安装一般都比较单一,我所说的单一就是大多数都用rpm –ivh 来对程序进行安装,在这里我就不做过多演示,我将演示的是用rpm来恢复文件。

实验1  删除文件后利用rpm2cpio解开rpm来恢复文件

[root@localhost ~]#rm -rf /etc/rc.d/init.d/functions 

删除指定文件

[root@localhost ~]#cat /etc/rc.d/init.d/functions
 cat: /etc/rc.d/init.d/functions: No such file or directory

查验是否删除成功

[root@localhost ~]#cat /etc/rc.d/init.d/functions
 cat: /etc/rc.d/init.d/functions: No such file or directory

[root@localhost ~]#rpm -qf /etc/rc.d/init.d/functions
initscripts-9.49.41-1.el7.x86_64

获取曾经安装过的版本信息

[root@localhost ~]#mount /dev/cdrom /media/
mount: /dev/sr0 is write-protected, mounting read-only

对光盘进行挂载

[root@localhost ~]#cp /media/Packages/initscripts-9.49.41-1.el7.x86_64.rpm  /app

复制到临时目录下

[root@localhost ~]#cd /app
[root@localhost app]#rpm2cpio initscripts-9.49.41-1.el7.x86_64.rpm|cpio -id
3039 blocks

用rpm2cpio来解开文件

[root@localhost app]#cp etc/rc.d/init.d/functions /etc/rc.d/init.d/

复制到原目录下

[root@localhost app]#cat /etc/rc.d/init.d/functions
# -*-Shell-script-*-
#
# functions This file contains functions to be used by most or all
#       shell scripts in the /etc/init.d directory.
#

cat一下测试实验操作成果,过多文件内容在此不做过多展示。

二、yum管理

          YUM: Yellowdog Update Modifier,rpm的前端程序,可解决软件包相关依赖性,可在多个库之间 定位软件包,yum repository: yum repo,存储了众多rpm包,以及包的相关的元数据文件(放置于特定 目录repodata下) ,主要用于解决安装一个包时,需要满足别的包依赖关系,比rpm更容易操作,重点在于对仓库的配置。 

1、对rpm进行仓库的配置

  /etc/yum.repos.d/*.repo  仓库路径
             [repoid]  仓库的名称,不能重复
             name= 仓库的描述,可以不写,将会用repoid当作name
             enabled=1|0  激活或禁用仓库,若不写该行,则默认启用
             gpgcheck=1|0 是否在安装包是检测gpg签名,默认检测,即为1
             gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7  指定gpg key的路径

2、仓库配置成功后,直接用yum命令来进行包的安装

yum install 包名[*包名*] [包名2……]

                   -y 自动应答

         reinstall 包名  重新安装指定的包

         update  更新包
         remove 卸载包 卸载时不会连同依赖包一同卸载

         info 包名 查看指定包的详细信息

yum list
                 all 默认 表示列出所有包
                 updates 列出可更新的包
                 installed 列出已安装的包
                 @repoid 表示该包安装自指定的仓库
                 installed 表示该包由rpm命令手工安装

                 base 未安装的包,来自于base
                 epel 未安装的包,来自于epel
                 @base 该包已经安装,且是从base安装的
                  @anaconda 该包已经安装,且是从操作系统的安装程序anaconda安装的


            repolist  [enabled] 默认,只显示已激活的仓库
                        disabled 仅显示已禁用的仓库
                         all 显示所有仓库

3、yum安装时,要有必要的对yum进行清空和重建一下缓存

      yum clean all      清空yum缓存
       yum makecache 重建缓存,(没有缓存时,首次使用yum的任何命令都会自动重建)

4、 yum provides "*/rz"   搜索一个文件来自于哪个rpm包,可以是未安装的包

       yum search 关键字 模糊搜索 软件包和描述

       yum deplist php  列出指定包所依赖的所有包

5、 yum history 列出所有的yum历史
               info   # 查看某条历史的详细信息
               redo  # 重做某条历史
               undo # 撤消某条历史
        如果该历史为install,则undo 是remove
        如果该历史为remove,则undo 是install

实验2  yum仓库的配置

[root@localhost ~]#vim /etc/yum.repos.d/wsy.repo

[base]     教室本地base
name=Red Hat Enterprise Linux $releasever Repo
baseurl=
http://172.18.0.1/centos/$releasever
enabled=1
gpgcheck=0

[epel]     在线epel
name=mage epel
baseurl=
https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/
enabled=1
gpgcheck=0

wq保存后即可生效,然后就可以用yum命令进行包的安装了

三、dnf包管理

        DNF 介绍 新一代的RPM软件包管理器。他首先出现在 Fedora 18 这个发行版中。而最近,他取代了 YUM,正式成为 Fedora 22 的包管理器。但是目前使用并不是很多,最常用的还是上边的两种安装包管理,DNF与yum的安装和使用很相似,配置文件存放在 /etc/dnf/dnf.conf   
1、常见用法如下

dnf [options] <command> [<arguments>...]

dnf –version

dnf repolist

dnf clean all

dnf makecache

dnf list installed

dnf list available

dnf search nano

dnf history

dnf history undo 1

2、程序包的编译流程为 源代码-->预处理-->编译-->汇编-->链接-->执行

以C语言源代码为例编译安装三步骤:

  • configure (1) 通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及 Makefile.in文件生成Makefile (2) 检查依赖到的外部环境,如依赖的软件包
  • make  根据Makefile文件,构建应用程序
  • make install  复制文件到相应路径

下面我在通过一个实验进行源码包安装apache

实验3 在CentOS7上编译安装apache 2.4源码包,并启动此服务

lftp 172.18.0.1
         user thirty-three pass:thirty-three
         get files/httpd-2.4.27.tar.bz2
         exit
  

连接教室服务器,下载源码
      tar xvf httpd-2.4.27.tar.bz2

对得到文件进行解压缩

yum groupinstall   Development Tools

切换到http-2.4.27/下进行Development Tools的安装

./configure --help
./configure --prefix=/app/apache24 --sysconfdir=/etc/apache24

别的软件的运行支持,选项参数,特性,路径等
    make
    make install
   vim /etc/profile.d/mg.sh
apachectl start  启动apachectl
   vim /app/apache24/htdocs/index.html 网页的编辑
   iptables –F       关闭防火墙

进行浏览器的访问,访问最后结果如图

 

2T3OL88J4FE$58@P4R$QE{2

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!