第11章 软件管理

作者: fe8478c7ba2a | 来源:发表于2018-04-17 20:26 被阅读15次
    概述
        软件的类型
            一、软件的类型
                  A. 二进制包 已编译 mysql-community-common-5.7.12-1.el7.x86_64.rpm
                  B. 源码包 需要编译 nginx-1.8.1.tar.gz 
                RPM Package Manager(原Red Hat Package Manager,现在是一个递归缩写)
            注意: 不管是源码包,还是二进制包,安装时都可能会有依赖关系!
        常见二进制包(了解)
            系统平台;包类型;工具;在线安装(自动解决依赖关系)
                  RedHat/Centos;RPM;rpm,rpmbuild;yum
                  Ubuntu/Debian;DPKG;dpkg;apt
    

    RPM包管理

        1.YUM
            1.YUM源(YUM仓库)
                1.本地源:安装光盘 [了解]
                    目的:通过系统光盘安装软件(90%都有)
                    1 删除YUM库
                  [root@tianyun ~]# rm    -rf    /etc/yum.repos.d/*
                2.挂载安装光盘(临时):
                  [root@tianyun ~]# mount /dev/cdrom   /mnt
                3.编写配置文件。
                  [root@tianyun ~]# vim /etc/yum.repos.d/dvd.repo 
                       [dvd] 
                       name=dvd 
                       baseurl=file:///mnt/
                       gpgcheck=0 
                 4. 使用YUM 安装和卸载程序即可。
                  [root@tianyun ~]#yum install -y httpd
        2.使用官方源
                    目的:使用厂商提供的软件包作为YUM的仓库。
                阿里云
                        Base/Extras/Updates: 默认(国外源)
                  1 删除原先YUM库
                        rm    -rf   /etc/yum.repos.d/*
                  2. 下载阿里源
                       wget  http://mirrors.aliyun.com/repo/Centos-7.repo  -O /etc/yum.repos.d/CentOS-Base.repo 
                  4 更新YUM源
                  yum makecache
                        wget -O或者curl -O
    
    2.使用YUM管理RPM包
        查看可用仓库
            ==查看可用仓库
                  [root@tianyun ~]# yum clean all //清空缓存及其它文件(可以通过清理nginx.rpm观察)
                  [root@tianyun ~]# yum makecache //重建缓存
                  [root@tianyun ~]# yum repolist //查询可用的仓库
                安装
                    全新安装
                        # yum -y install httpd vsftpd *vnc
                        # yum -y install https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm   //从互联网安装
                    重新安装
                        # yum -y reinstall httpd    //有损坏才重新部署修复。(尝试损坏httpd程序)
                    升级安装
                        # yum -y update httpd
                        # yum -y update     //系统更新,请在安装系统后立即执行。(实验室请不要执行)
                        # yum -y update kernal  //升级内核。重启就看到了。(已更新)
                    组安装
                        # yum -y groupinstall mariadb
                查询
                    查询HTTP程序
                        # yum list httpd
                            带@ 是已经安装的。
                    查询类似vnc程序
                        # yum list *vnc*
                    查询安装过程序
                        # yum list installed
                    查询HTTTP程序的详细信息
                        # yum info httpd
                    查询程序组
                        # yum group list
                    查询程序组的详细信息
                        # yum groupinfo mariadb
                卸载
                    卸载程序
                        [root@tianyun ~]# yum -y remove mysql-server
                    卸载程序组
                        [root@tianyun ~]# yum -y groupremove mysql-server
                history
                    # yum history
                  # yum history info 4
                  # yum history undo 4
    

    2.RPM

        认识RPM包
                软件包名 版本号(Version) 发布版本(Release5/6/7) 系统平台(32/64)
    
                  ntfs-3g-2011.4.12-5.el5.x86_64.rpm 套件名
    
                  ntfs-3g-2011.4.12-5.el6.i686.rpm 套件名
    
                  yum-utils-1.1.30-14.el6.noarch.rpm 套件名
    
                  php-5.6.20-1.fc23.ppc64p7.rpm // IBM 小型机CPU Power
        安装
                  卸载
                  查询
                安装(i)
                    路径
                        rpm -ivh local_path
                        rpm -ivh url_path
                            示例
                                rpm - ivh http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus/i586/RPMS.classic//ntfs-3g-2017.3.23-alt1.i586.rpm
                            必须在线
                    准备工作:下载软件包
                        
                        
                        
        安装示例
                        [root@localhost ~]# rpm -ivh mysql57-community-release-el7-11.noarch.rp
                    额外选项
                        --nodeps     //忽略依赖关系
                            1.发现有依赖关系
                                [root@localhost Packages]# rpm -ivh wireshark-1.10.14-14.el7.x86_64.rpm
                  错误:依赖检测失败:
                      libcares.so.2()(64bit) 被 wireshark-1.10.14-14.el7.x86_64 需要
                      libsmi.so.2()(64bit) 被 wireshark-1.10.14-14.el7.x86_64 需要
    
                            
        从本地的rpm数据库
                        [root@tianyun ~]# rpm -q wireshark      //查询指定包是否安装
                  [root@tianyun ~]# rpm -qa |grep wireshark    //在所有已经安装的包中查询wireshark
                  [root@tianyun ~]# rpm -ql wireshark       //查询wireshark安装的文件      
                  [root@localhost ~]# rpm -qf /usr/share/wireshark/ws.css  //查询该文件属于哪个rpm包(which)
                  [root@tianyun ~]#  rpm -qi wireshark       //查询包的information
                  [root@tianyun ~]# rpm -qc httpd   //查询某个包安装的配置文件(无)
                  [root@tianyun ~]# rpm -qd httpd    //查安装的帮助文档
        从rpm套件中查询(未安装)qi------p---package
                        扩展知识: 针对没有安装的包,直接从套件中查询
                  [root@tianyun ~]# rpm -e ntfs-3g  //-e卸载
                  [root@tianyun ~]# rpm -qip ntfs-3g-2011.4.12-5.el6.x86_64.rpm
                  [root@tianyun ~]# rpm -qlp ntfs-3g-2011.4.12-5.el6.x86_64.rpm
                  [root@tianyun ~]# rpm -qcp ntfs-3g-2011.4.12-5.el6.x86_64.rpm
                  [root@tianyun ~]# rpm -qdp ntfs-3g-2011.4.12-5.el6.x86_64.rpm
                            rpm -qip ntfs-3g-2017.3.23-1.el7.x86_64.rpm 
    
    
    
    
    
    
        卸载(e)
                    [root@localhost ~]# rpm -q httpd
                  httpd-2.4.6-67.el7.centos.6.x86_64
                  [root@localhost ~]# rpm -e httpd
                  [root@localhost ~]# rpm -q httpd
                  未安装软件包 httpd 
    
    总结
            命令
                    安装 -i -v  -h  --force  --nodeps  --nosignature
                    查询 -q  -a  -l  -f  -i  -c  -d
                    卸载 -e
                缺点
                    1. 很难解决包依赖关系
                    2.使用YUM管理软件包
            注意
                注意系统版本和架构和软件包是否相符
                  [root@tianyun ~]# uname -m
                  x86_64
    
                  [root@tianyun ~]# cat /etc/redhat-release 
                  CentOS Linux release 7.2.1511 (Core)
    

    源码包管理

        1. 获得源码包途径
            1. 获得源码包途径
                  官方网站,可以获得最新的软件包 
                  Apache: www.apache.org 
                  Nginx: www.nginx.org
                  Tengine: tengine.taobao.org
    
        2. 安装源码包步骤
            1.准备编译环境如编译器gcc、make
                  2.准备软件包 tengine-2.2.0.tar.gz
                  3.解压tar xf
                  4.配置 ./configure
                  5.编译 make
                  6.安装  make install
     3. 实战案例
            部署Tengine  /Nginx服务器/WEB服务器
                  1. 下载源码包,准备软件包
                  2.准备编译环境如编译器gcc、make
                  # yum -y install   gcc   make   zlib-devel  pcre  pcre-devel  openssl-devel
                  (pcre: 支持正则表达式,地址重写rewrite)
    
                  3.解压
                  # useradd www
                  # tar xvf tengine-2.2.0.tar.gz
                  # cd tengine-2.2.0
                  4.配置
                  ./configure \
                  --user=www \
                  --group=www \
                  --prefix=/usr/local/nginx \
                  --with-http_stub_status_module \
                  --with-http_sub_module \
                  --with-http_ssl_module \
                  --with-pcre  
                  5.编译
                  # make
                  6.安装
                  # make install
    
                  7启动测试
                  # /usr/local/nginx/sbin/nginx //启动nginx服务器
                  # systemctl stop firewalld
                  看到网页,说明部署成功。
    

    总结

            3. 详解源码安装三步曲
                  # ./configure
                  a. 指定安装路径,例如 --prefix=/usr/local/nginx
                  b. 启用或禁用某项功能, 例如 --enable-ssl, --disable-filter --with-http_ssl_module
                  c. 和其它软件关联,例如--with-pcre
                  d. 检查安装环境,例如是否有编译器gcc,是否满足软件的依赖需求
                  最终生成:Makefile
                  # make //按Makefile文件编译,可以使用-j 2指定两颗CPU编译,优化编译器参数
                  # make install //按Makefile定义的文件路径安装
    

    源码安装错误:
    error1:
    error1:
    ./configure: error: the HTTP gzip module requires the zlib library.
    You can either disable the module by using --without-http_gzip_module
    option, or install the zlib library into the system, or build the zlib library
    statically from the source with nginx by using --with-zlib=<path> option.
    解决方案:
    # yum -y install zlib-devel

    or install the zlib library into the system,
    error2:
    error2:
    ./configure: error: SSL modules require the OpenSSL library.
    You can either do not enable the modules, or install the OpenSSL library
    into the system, or build the OpenSSL library statically from the source
    with nginx by using --with-openssl=<path> option.
    解决方案:
    # yum -y install openssl-devel

    error3:
    error3:
    checking for C compiler ... not found
    ./configure: error: C compiler cc is not found
    解决方案:
    # yum -y install gcc gcc-c++ make

    error4:
    error4:
    ./configure: error: the HTTP rewrite module requires the PCRE library.
    You can either disable the module by using --without-http_rewrite_module
    option, or install the PCRE library into the system, or build the PCRE library
    statically from the source with nginx by using --with-pcre=<path> option.
    解决方案:
    # yum -y install pcre-devel

    安装源码的技巧:
    README
    INSTALL

    相关文章

      网友评论

        本文标题:第11章 软件管理

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