软件包管理–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初次见面

    LINUX的文件系统 在Linux的眼睛中,一切都为文件,这也是Linux的中心哲学思想。正因如此造就了一个性能稳定,功能强大,效率高的操作系统。Linux有自己的层级标准,它定义了每个系统分区的用途,和所需要的最小构成文件目录。由不同的文件来完成不同的功能造就了一个Linux的完整生态。 linux的文件系统格式比较丰富,它的核心系统能支持十多种文件系统类…

    2017-05-18
  • Bind编译安装详解

    Bind编译安装详解 Bind是一款开放源码的DNS服务器软件,由美国加州大学Berkeley分校开发和维护的,全名为Berkeley Internet Name Domain它是目前世界上使用最为广泛的DNS服务器软件,支持各种unix平台和windows平台。现今互联网上最常使用的DNS服务器软件,使用BIND作为服务器软件的DNS服务器约占所有DNS服…

    Linux干货 2016-07-22
  • DNS高级应用

        DNS高级应用     1、主从复制      应用场景: (1)、当主DNS服务器压力过大,无法正常处理过多的DNS解析请求时,从DNS服务器可以起到负载均衡的作用。 (2)、当主DNS服务器出现故障时,从DNS服务器可以为其提供冗余备份功能。     实验环…

    Linux干货 2015-06-18
  • Linux 基础(5)

    /etc/passwd           /etc/shadow         /etc/gpasswd (chage)            /etc/gshadow    usera…

    2017-07-22
  • class14磁盘管理(一)

    一、硬盘基础知识及分区类型 1、磁盘结构 设备文件 I/O Ports: I/O 设备地址 一切皆文件:   open(), read(), write(), close() 设备类型: 块设备:block,存取单位“块”,磁盘 字符设备:char,存取单位“字符”,键…

    Linux干货 2016-08-29
  • keepalived+lvs负载均衡两个httpd

    准备4台主机172.16.71.2 172.16.71.3 172.16.71.4 172.16.71.5 前两个做后端httpd服务器。后两个做keepalived 首先配置好后端主机172.16.71.2 和172.16.71.3 # 172.16.71.2yum install httpdcd /var/www/…

    Linux干货 2017-02-13