软件包管理(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

 

posted @ 2019-11-17 13:27  明a  阅读(136)  评论(0编辑  收藏  举报