zoukankan      html  css  js  c++  java
  • 软件包管理(rpm yum)

    1.rpm包管理

    rpm包命名方式:

      源代码:name-VERSION.tar.gz|bz2|xz
     VERSION:major.minor.release

      name-VERSION-release.arch.rpm

      例:bash-4.2.46-19.el7.x86_64.rpm

      VERSION:major.minor.release

      release:release.OS

      常见的arch:

        x86:i386,i486,i586,i686

        x86_64:x64,x86_64,amd64

        noarch(与平台无关)

    包:分类和拆包
      Application-VERSION-ARCH.rpm:主包
      Application-devel-VERSION-ARCH.rpm:开发子包
      Application-utils-VERSION-ARCH.rpm:其他子包
      Application-libs-VERSION-ARCH.rpm:其他子包

    包之间:可能存在依赖关系,甚至循坏依赖

      解决依赖包管理工具

      yum:rpm包管理器的前端工具
          查看二进制程序所依赖的库文件
     ldd /PATH/TO/BINARY_FILE

      管理和查看本机装载的库文件
     ldconfig -p 显示本机已经缓存的所有可用库文件名及文件路径映射关系
       配置文件:/etc/ld.so.conf,/etc/ld.so.conf.d/*.conf
       缓存文件:/etc/ld.so.cache
    程序包管理器:
       功能:将编译好的应用程序软件的各组成文件打包成一个或几个程序包文件,从而方便快捷地实现程序包的安装、卸载、查询、升级和校验等管理操作
      包组成文件(每个包独有)
        rpm包内的文件
        rpm的元数据,如名称,版本,依赖性,描述等
        安装或卸载时运行的脚本
    数据库(公共):/var/lib/rpm 记录所有元数据相关,对查询包有影响
       程序包名及版本
       依赖关系
       功能说明
       包安装后生成的各文件路径及校验码信息
    管理程序包的方式:
      使用包管理器:rpm
      使用前端工具:yum,dnf

    rpm包管理

      Centos系统上使用rpm命令管理程序包

      安装、卸载、升级、查询、校验、数据库维护

      安装:

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

        -v:verbose

        -h:以#显示程序包管理执行进度

      [install -options]

        --test:测试安装,但不真正执行安装

        --nodeps:忽略依赖关系

        --replacepkgs|replacefiles:在包已经被安装的情况下可以重新安装

        --nosignature:不检查来源合法性

        --nodigest:不检查包完整性

        --noscripts:不执行程序包脚本

      升级:(升级内核的时候建议不要用升级操作,Linux支持多内核共存)

        rpm -Uvh PACKAGE_FILE...  

        rpm -Fvh PACKAGE_FILE...

        --force  强制升级

      查询:

        rpm {-q|--query} [select-options] [query-options]

        常用用法:

          rpm -q vsftpd  查看包是否装好

          rpm -qa  查看所有已安装的包,可以配合grep查询想查的包是否安装

          rpm -qf  /PATH/FILE  查看磁盘上的某个文件是由哪个包安装生成的

          rpm -ql vsftpd 查询vsftpd包安装后产生的文件

          rpm -qc vsftpd 查询vsftpd包安装后产生的配置文件

          rpm -qi vsftpd 查询vsftpd包的相关信息

          rpm -qpl 查询尚未安装的程序包文件安装后产生的文件

            -p:针对尚未安装的程序包

          rpm -q --whatprovides bash  查询bash这个程序是从哪个程序包提供的

          rpm -q --scripts 查询程序包所执行的脚本

      卸载:卸载的时候也会有包依赖性等问题

        rpm -e PACKAGE

        rpm -e --allmatches PACKAGE 如果包有多个版本的话,卸载会报错。

      校验:

        rpm -V PACKAGE

        返回的结果查看问题

      如果rpm程序本身被卸载了的话,可以进入救援模式,把包重新安装到根目录下

    2.yum管理

      yum原理

    配置文件:/etc/yum.conf  为所有仓库提供公共配置

    容易出错的两个点

      1:配置文件错误

      2:yum cache出现问题,可以尝试清空缓存

    配置仓库配置文件filename.repo

    [base]       repoid

    name=base      描述的语句

    baseurl=file:///mnt    如果是本地光盘,路径要指向repodata(存放元数据信息)的父目录 支持http/https/ftp/file等

    pgpcheck=0  pggcheck检查包的完整性和标签

    gpgkey=file:///PATH/file 这个参数是用来导入密匙,检查包的完整性和标签

    yum repolist可以查看有几个仓库

    yum cache

      /etc/yum.conf记录了yum cache路径  cachedir=/var/cache/yum/$basearch/$releasever

      清空缓存 yum clean all 也可以直接删除/var/cache/yum/下的所有文件

    yum llist 查看仓库中所有的包

    禁用yum源,在配置文件中加入enabled=0

    yum日志位置:/var/og/yum.log

    yum的repo配置文件中可用的变量

      $releasever

      $arch

      $basearch

    实例:

      http://server/centos/$releasever/$basearch

    神奇的文件夹/misc/cd 通过安装autofs这个包来实现

    创建yum仓库

      createrepo [OPTION] <directory>

      createrepo  /PATH/file(rpm包所在路径)

    3.编译安装httpd

    互联网上的源码包编译成程序

    C语言源代码编译安装三步骤; 

      1 ./configure

        (1)通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及makefile.in文件生成makefile

        (2)检查依赖到的外部环境,如依赖的软件包

      2.make 根据makefile文件,构建应用程序

      3.make install 复制文件到相应路径

    准备:

    1.关闭防火墙

    centos6:service iptables stop;chkconfig iptables off  临时;永久

    centos7:systemctl stop firewalld;systemctl disable firewalld

    2.关闭selinux

    sentenforce 0  临时关闭

    vim /etc/selinux/config  永久关闭

    SELINUX=disabled

    1yum groupinstall "development tools"

    yum install openssl-devel

    2.download src

    tar xvf httpd-X.tar.gz

    3.cd httpd-2.2.34

    cat README

    cat INSTALL

    4../configure --help

      ./config --prefix=/app --sysconfdir=/etc/httpd2 --enable-ssl

    5.make -j -4 && make install

    6.vim /etc/profile.d/env.sh  修改环境变量

    7.apachectl start

  • 相关阅读:
    ASA5505升级license
    Elasticsearch-URL查询实例解析
    awk和sed
    ftp无法上传问题
    linux使用storcli64查看硬盘信息
    Centos7中kubernetes-1.11.2基于配置亲和与反亲和
    Centos7使用kubeadm部署kubernetes-1.11.2
    内网映射3种方法
    centos6.5使用LVM
    centos7部署openstack-ocata
  • 原文地址:https://www.cnblogs.com/hjmLinux/p/11876096.html
Copyright © 2011-2022 走看看