16.软件包管理

作者: 一枼落知天下 | 来源:发表于2019-03-05 14:37 被阅读50次

    一,RPM包管理(rpm软件包管理 rpm ivh Uvh qa qpl qpi)。

    两种包管理各有用处,其中主要区别是:YUM使用简单但有时需要联网,YUM会去网上的YUM包源去获取所需要的软件包。而RPM的需要的操作精度比较细,需要我们做的事情比较多。

    rpm软件包管理:

    全称: Redhat Package Manager

    挂载光盘

    [root@localhost ~]# umount /dev/sr0 卸载
    [root@localhost ~]# mount /dev/sr0 /mnt/ 挂载


    挂载光盘

    rpm包名字结构

    zsh-5.0.2-14.el7.x86_64.rpm
    zsh -5 .0 .2 -el7 x86 64
    软件名 主版本号 次版本号 修订号 RHEL7 CPU架构平台 支持系统位数

    rpm包名字结构

    安装rpm软件

    [root@JhouShuai ~]# 
    [root@JhouShuai ~]# rpm -ivh /mnt/Packages/zsh-5.0.2-28.el7.x86_64.rpm 
    [root@JhouShuai ~]# rpm -ivh /mnt/Packages/lrzsz-0.12.20-36.el7.x86_64.rpm
    
    安装rpm软件

    依赖关系

    [root@JhouShuai ~]# rpm -ivh /mnt/Packages/
    Display all 3971 possibilities? (y or n)
    [root@JhouShuai ~]# rpm -ivh /mnt/Packages/mariadb-server-5.5.56-2.el7.x86_64.rpm 
    警告:/mnt/Packages/mariadb-server-5.5.56-2.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
    错误:依赖检测失败:
        mariadb(x86-64) = 1:5.5.56-2.el7 被 mariadb-server-1:5.5.56-2.el7.x86_64 需要
        perl-DBD-MySQL 被 mariadb-server-1:5.5.56-2.el7.x86_64 需要
    [root@JhouShuai ~]#
    

    方便的解决方法:

    [root@JhouShuai ~]# yum install mariadb-server.x86_64 
    已加载插件:fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
    正在解决依赖关系
    --> 正在检查事务
    ---> 软件包 mariadb-server.x86_64.1.5.5.56-2.el7 将被 安装
    --> 正在处理依赖关系 mariadb(x86-64) = 1:5.5.56-2.el7,它被软件包 1:mariadb-server-5.5.56-2.el7.x86_64 需要
    --> 正在处理依赖关系 perl-DBD-MySQL,它被软件包 1:mariadb-server-5.5.56-2.el7.x86_64 需要
    --> 正在检查事务
    ---> 软件包 mariadb.x86_64.1.5.5.56-2.el7 将被 安装
    ---> 软件包 perl-DBD-MySQL.x86_64.0.4.023-6.el7 将被 安装
    --> 解决依赖关系完成
    
    依赖关系解决
    
    ====================================================================================
     Package              架构         版本                  源                    大小
    ====================================================================================
    正在安装:
     mariadb-server       x86_64       1:5.5.56-2.el7        CentOS7-source        11 M
    为依赖而安装:
     mariadb              x86_64       1:5.5.56-2.el7        CentOS7-source       8.7 M
     perl-DBD-MySQL       x86_64       4.023-6.el7           CentOS7-source       140 k
    
    事务概要
    ====================================================================================
    安装  1 软件包 (+2 依赖软件包)
    
    总下载量:20 M
    安装大小:107 M
    Is this ok [y/d/N]: n
    Exiting on user command
    您的事务已保存,请执行:
     yum load-transaction /tmp/yum_save_tx.2019-03-05.10-56.OZQGs_.yumtx 重新执行该事务
    [root@JhouShuai ~]# 
    
    

    Rpm包没有在光盘镜像里?
    到rpm包相关的网站上去下载软件包
    http://rpmfind.net/
    http://rpm.pbone.net/
    http://www.rpmseek.com/index.html

    rpm查询功能

    -f 查询文件所属软件包
    -i 显示软件包信息
    -l 显示软件包中的文件列表
    -d 显示被标注为文档的文件列表
    -c 显示被标注为配置文件的文件列表
    通常可以配合管道 | more 来使用,使得结果更易读。

    [root@JhouShuai ~]# rpm -qa zsh            #查询所有已安装的软件包
    zsh-5.0.2-28.el7.x86_64
    [root@JhouShuai ~]# which zsh          #搜索某个系统命令的位置,并且返回第一个搜索结果。使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令
    /usr/bin/zsh
    [root@JhouShuai ~]# rpm -qf /usr/bin/zsh           #查询文件所属软件包
    zsh-5.0.2-28.el7.x86_64
    [root@JhouShuai ~]# rpm -qf `which zsh`         #查询文件所属软件包       
    zsh-5.0.2-28.el7.x86_64
    [root@JhouShuai ~]# 
    
    [root@JhouShuai ~]# rpm -qpi /mnt/Packages/mariadb-server-5.5.56-2.el7.x86_64.rpm #查询软件包信息(通常用来看下还未安装的软件包)
    警告:/mnt/Packages/mariadb-server-5.5.56-2.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
    Name        : mariadb-server
    Epoch       : 1
    Version     : 5.5.56
    Release     : 2.el7
    Architecture: x86_64
    Install Date: (not installed)
    Group       : Applications/Databases
    Size        : 61123160
    License     : GPLv2 with exceptions and LGPLv2 and BSD
    Signature   : RSA/SHA256, 2017年08月11日 星期五 02时18分54秒, Key ID 24c6a8a7f4a80eb5
    Source RPM  : mariadb-5.5.56-2.el7.src.rpm
    Build Date  : 2017年08月05日 星期六 05时01分21秒
    Build Host  : c1bm.rdu2.centos.org
    Relocations : (not relocatable)
    Packager    : CentOS BuildSystem <http://bugs.centos.org>
    Vendor      : CentOS
    URL         : http://mariadb.org
    Summary     : The MariaDB server and related files
    Description :
    MariaDB is a multi-user, multi-threaded SQL database server. It is a
    client/server implementation consisting of a server daemon (mysqld)
    and many different client programs and libraries. This package contains
    the MariaDB server and some accompanying files and directories.
    MariaDB is a community developed branch of MySQL.
    [root@JhouShuai ~]# 
    
    

    rpm包 升级:

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

    [root@JhouShuai ~]# rpm -Uvh /mnt/Packages/lrzsz-0.12.20-36.el7.x86_64.rpm 
    警告:/mnt/Packages/lrzsz-0.12.20-36.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
    准备中...                          ################################# [100%]
        软件包 lrzsz-0.12.20-36.el7.x86_64 已经安装
    [root@JhouShuai ~]# 
    

    rpm包 卸载: -e 建议不用

    二,yum软件包管理(使用yum安装软件 yum repolist update clean all groupinstall check-update):

    自动装软件包(软件包管理):

    YUM
    解决依赖关系问题、自动下载软件包。基于C/S架构。
    C=client S=ftp , http,file

    配置yum源的配置文件

    [root@JhouShuai ~]# vim /etc/yum.repos.d/CentOS7.repo       
    [CentOS7-source]                  #yum源名称,唯一的,用来区分不同的yum源
    name=CentOS7-server        #对yum源描述信息
    baseurl=file:///mnt              #yum源的路径(repodata目录所在的目录)
    enabled=1        #为1,表示启用yum源
    gpgcheck=0     #为1,使用公钥检验rpm的正确性
    
    

    YUM使用:

    [root@JhouShuai ~]# yum clean all
    [root@JhouShuai ~]# yum repolist
    [root@JhouShuai ~]# yum list

    [root@JhouShuai ~]# yum clean all          #清空yum缓存
    已加载插件:fastestmirror, langpacks
    正在清理软件源: CentOS7-source
    Cleaning up everything
    Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
    Cleaning up list of fastest mirrors
    [root@JhouShuai ~]# 
    
    
    [root@JhouShuai ~]# yum repolist                 ##显示yum源包的个数
    已加载插件:fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
    CentOS7-source                                               | 3.6 kB  00:00:00     
    (1/2): CentOS7-source/group_gz                               | 166 kB  00:00:00     
    (2/2): CentOS7-source/primary_db                             | 3.1 MB  00:00:00     
    源标识                                 源名称                                  状态
    CentOS7-source                         CentOS7-server                          3,971
    repolist: 3,971
    [root@JhouShuai ~]# 
    
    [root@JhouShuai ~]# yum list          #生成列表
    

    主要操作:

    1、安装 yum install -y
    2、检测升级 yum check-update
    3、升级 yum update 升级内核
    4、软件包查询 yum list
    5、软件包信息 yum info
    6、卸载 yum remove

    [root@JhouShuai yum.repos.d]# yum info httpd        #软件包信息
    已加载插件:fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * base: mirrors.aliyun.com
     * extras: mirrors.aliyun.com
     * updates: mirrors.aliyun.com
    可安装的软件包
    名称    :httpd
    架构    :x86_64
    版本    :2.4.6
    发布    :88.el7.centos
    大小    :2.7 M
    源    :base/7/x86_64
    简介    : Apache HTTP Server
    网址    :http://httpd.apache.org/
    协议    : ASL 2.0
    描述    : The Apache HTTP Server is a powerful, efficient, and extensible
             : web server.
    
    [root@JhouShuai yum.repos.d]# 
    
    
    [root@JhouShuai ~]# yum remove httpd -y
    安装一组软件包:
    [root@JhouShuai ~]# yum grouplist    查看包组
    [root@JhouShuai ~]# yum groupinstall "Security Tools"   
    或
    [root@JhouShuai ~]# yum groupinstall "安全性工具" -y
    
    

    三、源码编译安装软件包(源码安装软件 ./configure make make install):

    源代码包的安装
    优点: 可以安装最新版本,灵活自己定义安装参数,比如指定安装目录或支持某些库
    源码包安装过程:
    1)解压解包
    tar -xzvf 源代码包
    [解包]
    x为解包、z为压缩(仅适合gzip,j 适合bz2)、v显示过程、f指定被解压包名
    2)配置
    进入解压后的目录,用 ./configure [--prefix=/usr/local/filname] 来配置,这个过程主要是收集系统信息、设置安装目录等(卸载的时候只需将这个目录删除则可)
    3)编译 : 把源代码编译可以执行的二进制文件
    make -j 4
    注: -j 4 表示以4个进程同时编译,速度快! -j 后的数字和你的CPU核数一样
    4)安装
    make install

    添加运行用户
    建议添加用户 nginx


    添加用户 nginx

    参数解释
    -M 不创建宿主目录
    -s 指定登陆的shell环境 /sbin/nologin 禁止登陆
    编译安装Nginx


    编译安装
    参数解释:
    --prefix 指定安装的位置
    --user 指定运行的用户

    --group 指定运行的组
    tar解压./configure配置编译生成makefile文件make install 安装

    [root@JhouShuai src]# cd /usr/src/
    [root@JhouShuai src]# ls
    [root@JhouShuai src]# wget  http://nginx.org/download/nginx-1.14.2.tar.gz
    /usr/local/src/: 地址缺少协议类型.
    --2019-03-05 14:07:26--  http://nginx.org/download/nginx-1.14.2.tar.gz
    正在解析主机 nginx.org (nginx.org)... 95.211.80.227, 62.210.92.35, 2001:1af8:4060:a004:21::e3
    正在连接 nginx.org (nginx.org)|95.211.80.227|:80... 已连接。
    已发出 HTTP 请求,正在等待回应... 200 OK
    长度:1015384 (992K) [application/octet-stream]
    正在保存至: “nginx-1.14.2.tar.gz”
    
    100%[==========================================>] 1,015,384   43.4KB/s 用时 10s    
    
    2019-03-05 14:07:37 (96.0 KB/s) - 已保存 “nginx-1.14.2.tar.gz” [1015384/1015384])
    
    FINISHED --2019-03-05 14:07:37--
    Total wall clock time: 11s
    Downloaded: 1 files, 992K in 10s (96.0 KB/s)
    [root@JhouShuai src]# ll
    总用量 992
    -rw-r--r-- 1 root root 1015384 12月  4 22:58 nginx-1.14.2.tar.gz
    [root@JhouShuai src]# 
    
    [root@JhouShuai src]# ls
    nginx-1.14.2.tar.gz
    [root@JhouShuai src]# tar -zvxf nginx-1.14.2.tar.gz 
    
    [root@JhouShuai src]# ll
    总用量 992
    drwxr-xr-x 8 1001 1001     158 12月  4 22:52 nginx-1.14.2
    -rw-r--r-- 1 root root 1015384 12月  4 22:58 nginx-1.14.2.tar.gz
    [root@JhouShuai src]# 
    
    [root@JhouShuai src]# cd /usr/src/nginx-1.14.2/
    [root@JhouShuai nginx-1.14.2]# yum -y install pcre-devel
    [root@JhouShuai nginx-1.14.2]# yum -y install zlib-devel
    [root@JhouShuai nginx-1.14.2]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx 
    [root@JhouShuai nginx-1.14.2]# echo $?
    0
    [root@JhouShuai nginx-1.14.2]# make -j 4
    [root@JhouShuai nginx-1.14.2]# echo $?
    0
    [root@JhouShuai nginx-1.14.2]# make install
    
    [root@JhouShuai nginx-1.14.2]# ls /usr/local/nginx/
    conf  html  logs  sbin
    [root@JhouShuai nginx-1.14.2]# /usr/local/nginx/sbin/nginx 
    [root@JhouShuai nginx-1.14.2]# ps -aux | grep nginx
    root      11817  0.0  0.0  20544   608 ?        Ss   14:33   0:00 nginx: master process /usr/local/nginx/sbin/nginx
    nginx     11819  0.0  0.0  23072  1388 ?        S    14:33   0:00 nginx: worker process
    root      11834  0.0  0.0 112720   968 pts/0    S+   14:33   0:00 grep --color=auto nginx
    [root@JhouShuai nginx-1.14.2]# 
    
    安装成功

    相关文章

      网友评论

        本文标题:16.软件包管理

        本文链接:https://www.haomeiwen.com/subject/coqnuqtx.html