软件包管理–rpm、yum

rpm软件包管理,rpm命令的使用。yum命令使用,yum源的搭建,网络yum源的搭建方法。编译安装http

软件包管理

Rpm管理

Rpm包命名规则:

Bind(name)-版本号-发行号.cpu架构.rpm

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

解决依赖包管理工具:

yum:rpm包管理器的前端工具

apt-get:deb包管理器前端工具

zypper: suse上的rpm前端管理工具

dnf: Fedora 18+ rpm包管理器前端管理工具

查看二进制程序所依赖的文件

Ldd  /path/to/binary_file

管理及查看本机装在的库文件

Ldconfig   加载库文件

/sbin/ldconfig  -p 显示本机已经缓存的所有可用库文件

库文件名及文件路劲映射关系

配置文件:/etc/ld.so.conf   /etc/ld.so.conf.d/*.conf

缓存文件:/etc/ld.so.cache

数据库(公共):/var/lib/rpm

获取程序包的途径:

(1) 系统发版的光盘或官方的服务器;

CentOS镜像:

https://www.centos.org/download/

http://mirrors.aliyun.com

http://mirrors.sohu.com

http://mirrors.163.com

第三方组织:

Fedora-EPEL:

Extra Packages for Enterprise Linux

Rpmforge:RHEL推荐,包很全

Rpm命令:

安装

rpm -ivh tree-1.6.0-10.el7.x86_64.rpm

-i :install ,安装

-v :查看详细的安装过程

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

-vv :查看比-v更详细的安装信息

Install-options

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

–nodeps:忽略依赖关系,进行安装(可能会缺失一些机制,也可能安装后不能使用)

–force:  强制安装

–replacefiles: 当文件已存在时,可以覆盖安装

–oldpackage:降级安装。(不删除原来的版本)

–nosignature:不检查包来源合法性

–nodigest:不检查包完整性

–noscripts:不执行程序包脚本

Rpm2cpio 包文件 |cpio -itv    预览包内文件

rpm2cpio tree-1.6.0-10.el7.x86_64.rpm | cpio  -itv

Rpm2cpio 包文件 |cpio -id /path/to/ 指定释放包内文件(丢失文件可以直接从包里释放),可能会导致权限丢失,注意权限问题

rpm2cpio tree-1.6.0-10.el7.x86_64.rpm |cpio -id ./usr/bin/tree

 

升级

-U  –upgrade :如果安装有旧程序包,则升级,没有安装就执行安装

-F  –freshen:如果安装有旧程序包,则升级,没有安装就不升级

Rpm -Uvh   PACKAGE_FILE

Rpm -Fvh   PACKAGE_FILE

 

注意:

(1) 不要对内核做升级操作;Linux支持多内核版本并存,因此,对直接安装新版本内核

(2) 如果原程序包的配置文件安装后曾被修改,升级时,新版本的提供的同一个配置文件并不会直接覆盖老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留

卸载

Rpm  -e  PACKAGE_FILE

–nodeps:不检查依赖,直接卸载

如果程序安装之后,对配置文件进行修改,那么在卸载的时候,会自动对修改过的配置文件自动备份(多次卸载也只能保留一份)

 

查询

Rpm  -q  PACKAGE_FILE  查询指定的包是否已经安装

Rpm   -q:  vsftpd

-qa:查询已安装的所有包

Rpm -qa  “*tre*” 可以使用通配符(建议使用引号)

-ql:查询指定包安装后生成的文件列表

Rpm -ql vsftpd

-qi:查询指定包的说明信息

-qc:查询指定包的安装的配置文件

安装在/etc/下的文件列表

-qd:查询指定包安装的帮助文件

安装在 /usr/share/doc下的文件列表

–scripts:查询指定包中包含的脚本(自身所带的脚本)

–provides:列出指定程序包所提供的capability

-qR:查询指定的程序包所依赖的capability

-qpl:查询未安装的文件包包含的文件列表

Rpm  -qpl   PACKAGE_NAME

Rpm -qf  /PATH/TO/SOMEFILE:查询指定的文件是由哪个rpm包安装生成的

Rpm -qf  /var/ftp/pub

–whatprovides capability:查询指定的capability由哪个包提供

Rpm -q –whatprovides  bash:bash这个能力是由哪个包提供

–whatrequires capability:查询指定的capability被哪个包所依赖

Rpm -q –whatrequires bash

创建repodate :  createrepo

 

数据库重建

Rpm数据库位置:/var/lib/rpm

Rpm –initdb :初始化

如果事先不存在数据库,则新建,如果存在,则不做任何操作

Rpm –rebuilddb:重建已安装的包头的数据库索引目录,一定会重新建立

 

新建的rpm数据库,没有以前的安装信息

校验

Rpm -V PACKAGE_NAME

包来源合法性验正及完整性验正

Rpm -K PACKAGE_NAME

rpm -K|checksig rpmfile 检查包的完整性和签名

完整性验正:SHA256

来源合法性验正:RSA

公钥加密

对称加密:加密、解密使用同一密钥

非对称加密:密钥是成对儿的

public key: 公钥,公开所有人

secret key: 私钥, 不能公开

导入所需要公钥

rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

CentOS 7发行版光盘提供:RPM-GPG-KEY-CentOS-7

rpm -qa “gpg-pubkey*”

卸载密匙

Rpm -e “gpg-pubkey*”

 

误删除rpm命令,恢复方法

挂载光盘,进入救援模式,进入光盘所在目录/run/install/repo,输入命令

Rpm -ivh RPM-XXXXX.rpm –root=/mnt/sysimage/   就可以安装。

-root=/mnt/sysimage/  这里是真正的指向root所在目录

Yum安装

  方便的解决rpm包安装时候的依赖性问题

Yum repo :存储仓库,存储了众多rpm包,以及包的相关元数据文件(放置于特定目录repodata下)

 

构建yum仓库  /etc/yum.conf.d/

Vim  base.repo

[base]  (仓库表示,唯一,不能重复)

Name=base centos7.4   (描述信息)

Baseurl=file:///misc/cd/   (本地光盘)

http://    网络地址

https://   网络地址

ftp://   ftp地址

Gpgcheck=1(默认为1,开启)| 0(关闭)

Enabled={0|1}是否启用此yum仓库,默认启用(0为关闭,1为默认)

# gpgkey=file:///misc/cd/RPM-GPG-KEY-CentOS-7(导入密匙,也可以手动导入)可选

 

清理yum缓存:yum clean all

查看yum缓存大小:du -sh /var/cache/yum/

清除/var/cache/yum/$basearch/$releasever缓存

 

构建缓存: yum makecache 

 

 

 Yum命令用法

Yum   options   command  | package

Yum 安装:

Install(localinstall):安装

Yum install vsftp

Reinstall:重新安装

Update(localupdate):升级

Downgrade:降级

-y:自动回答为“yes”

-q:静默模式

–disablerepo=repoidglob:临时禁用此处指定的repo

–enablerepo=repoidglob:临时启用此处指定的repo

–noplugins:禁用所有插件

–nogpgcheck:禁止进行gpg check

 

检查可用升级: 

yum check-update

v    卸载程序包:

yum remove | erase package1 [package2] […]

 

包组管理的相关命令:

yum groupinstall group1 [group2] […]

yum groupupdate group1 [group2] […]

yum grouplist [hidden] [groupwildcard] […]

yum groupremove group1 [group2] […]

yum groupinfo group1 […]

 

显示仓库列表

Yum  repolist  all (所有)| enabled | disabled

显示程序包

Yum  list {all |glob_exp1 }

Yum  list { available | installed | updates }

包组管理的相关命令:

yum groupinstall group1 [group2] […]  安装组包

yum groupupdate group1 [group2] […]   升级组包

yum grouplist [hidden] [groupwildcard] […]  列出组包

yum groupremove group1 [group2] […]  移除组包

yum groupinfo group1 […]

搜索:yum search string1 [string2] […]

以指定的关键字搜索程序包名及summary信息

 

Yum日志 :  /var/log/yum.log

Yum历史:   yum  history   {undo | info | redo }

 

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

$releasever: 当前OS的发行版的主版本号

$arch: 平台,i386,i486,i586,x86_64等

$basearch:基础平台;i386, x86_64

$YUM0-$YUM9:自定义变量

     可用的网络yum源

阿里云repo文件:http://mirrors.aliyun.com/repo/

v     CentOS系统的yum源

Ü        阿里云:https://mirrors.aliyun.com/centos/$releasever/os/x86_64/

v    EPEL的yum源:

Ü        阿里云: https://mirrors.aliyun.com/epel/$releasever/x86_64

 

 

 

 

搭建ftp作为yum源实例(用光盘)

ftp服务器配置:centos 7

关闭防火墙:systemctl stop firewalld

禁用防火墙:systemctl disable firewalld

修改SELINUX: vim /etc/selinux/config

SELINUX=premissive

关闭SELINUX:  setenforce 0

查看selinux状态:getenforce

安装vsftp.rpm包: rpm  -ivh  vsftp(包名)

启动vsftpd服务:systemctl  start  vsftpd

设为开机启动:systemctl  enable vsftpd

创建目录:mkdir  /var/ftp/pub/centos/{6,7}/os/x86_64  -pv

将centos7 光盘挂载:mount /dev/sr0  /var/ftp/pub/centos/7/x86_64/

将centos6光盘挂在:mount /dev/sr1  /var/ftp/pub/centos/6/x86_64/

建立yum源:vim  /etc/yum.repo.d/base.repo

[base]

Name=ftp

Baseurl=ftp://服务器IP/pub/centos/$releasever/os/$basearch

Gpgcheck=0 (关闭gpg验证)

 

在pc centos 6配置

关闭防火墙:service  iptables  stop

开机禁用防火墙:chkconfig  iptables  off

配置yum源:vim  /etc/yum.repo.d/base.repo

[base]

Name=ftp

Baseurl=ftp://服务器IP/pub/centos/$releasever/os/$basearch

Gpgcheck=0 (关闭gpg验证)

 

配置完成,记得清理yum缓存: yum  clean all

下面就可以尝试安装rpm包了

 

编译安装httpd:

下载httpd源码包:wget 链接地址

解压源码包:tar  xvf  PACKAGE_NAME

安装包组  :yum groups install Development  Tools

查看: cat README

查看configure帮助,了解一些需要独立安装的目录:./configure –help

编译安装: ./configure  –prefix=/app/httpd24  –sysconfdir=/etc/httpd24/  –enable=ssl

–enable-proxy-fcgi

看提示,补充安装相应的包

yum install apr-devel apr-util-devel openssl-devel pcre-devel

Make安装: make -j  4 (-j 4:4核cpu同时进行安装)

Make install

配置运行环境:vim /etc/profile.d/httpd24.sh

PATH=/app/httpd24/bin:#PATH

Source /etc/profile.d/httpd24.sh

将man帮助放置于系统文件中:

Vim /etc/man_db.conf(centos7)

添加    MANDATORY_MANPATH              /app/httpd24/man

Vim /etc/man.config

添加    MANPATH /app/httpd22/man

启动服务: Apachectl  (start)

查看监听端口 :ss -ntl  (可以看到80端口已经打开)

修改http内容路径: /app/httpd24/htdocs/index.html

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/89248

(1)
燕李鹏燕李鹏
上一篇 2017-12-03
下一篇 2017-12-03

相关推荐

  • 系统基础之权限管理

    权限管理: 概论:  上节,为大家介绍了用户,和组的知识.今天为大家介绍与用户,组息息相关的知识,权限.linux是多用户,多任务的操作系统,面对多人的操作,安全问题就很重要,权限机制就很好的对安全进行防护,避免他人操作自己的文件.下面给大家详细介绍权限.   首先让我们先直观地看下权限,对权限有个最基本的认识.以/etc/issue文件…

    Linux干货 2016-08-04
  • N25期–第十周作业

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) 启动过程 (PC架构)    POST –> Boot Sequence(BIOS) –> Boot Loader (MBR)–>GRUB—> Kernel(ramdisk) –> ro…

    Linux干货 2017-03-13
  • 推荐-HA专题: 编译安装并配置DRBD

    HA专题: 编译安装并配置DRBD 前言 实验环境 DRBD介绍 安装前准备工作 获取并编译安装DRBD 配置DRBD 分区 配置文件 启动并设置DRBD 格式化并挂载 验证冗余性 总结 前言 上篇我们讲到使用corosync+pacemaker实现MySQL高可用, 但是NFS容易成为单点故障从而导致数据丢失等严重问题, 我们可以使用drbd来实现MySQ…

    Linux干货 2016-04-12
  • centos启动流程

    加电自检 检测硬件是否存在并且能够正常运行,如cpu、内存、硬盘是否存在并能正常运行,以及外围得输入输出设备是否存在,如键盘、鼠标、显示器。 bios启动次序,按照次序查找个引导设备,启动第一个具有引导程序的设备,即为本次启动需要加载的设备。 加载boot loader bootloader安装在mbr中,linux的bootloader程序为grub和li…

    Linux干货 2017-11-14
  • Linux终端类型

    Linux终端类型 Linux的终端类型包括控制台终端、虚拟终端、伪终端、串行终端、控制终端、图形终端。   终端 要理解伪终端(Pseudo Terminal),先来看看什么是“终端”(Terminal)。 终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。 1、串行端口终端(/dev/ttySx) 串行端口终端(Ser…

    Linux干货 2016-10-14
  • Memcached命令

    Memcache 的命令行用法: 1、启动Memcache 常用参数    memcached 1.4.3      -p <num>      设置端口号(默认不设置为: 11211)      -U <num> &nbsp…

    Linux干货 2015-05-18