软件包管理

rpm 与 yum 的用法

blob.png

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

VERSION: major.minor.release

rpm包命名方式:

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, amd64powerpc: ppc

跟平台无关:noarch


包:分类和拆包

Application-VERSION-ARCH.rpm: 主包

Application-devel-VERSION-ARCH.rpm开发子包

Application-utils-VERSION-ARHC.rpm其它子包

Application-libs-VERSION-ARHC.rpm其它子包


blob.png

解决依赖包管理工具:

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

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

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

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


blob.png

获取程序包的途径

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

    2)项目官方站点

    3)第三方组织

            Rpmforge:RHEL推荐

            搜索引擎:

                    http://pkgs.org

                    http://rpmfind.net

                    http://rpm.pbone.net

                    http://sourceforge.net

     4)自己制作

注意:查其合法性:来源合法性,程序包的完整性

 

blob.png

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

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

  安装

  rpm {-i|–install} [install-options] PACKAGE_FILE…

        -v: verbose 过程显示

        -vv:    详细过程显示

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

        rpm -ivh  PACKAGE_FILE ..

                                    [install-options]

                                    –test: 测试安装,但不真正执行安装;dry run模式

                                    –nodeps:忽略依赖关系

                                    –replacepkgs| replacefiles

                                    –nosignature: 不检查来源合法性

                                    –nodigest:不检查包完整性

                                    –noscipts:不执行程序包脚本片断

                                    %pre: 安装前脚本;–nopre

                                    %post: 安装后脚本;–nopost

                                    %preun: 卸载前脚本;–nopreun

                                    %postun: 卸载后脚本;–nopostun


blob.png


rpm {-U|–upgrade} [install-options] PACKAGE_FILE…

rpm {-F|–freshen} [install-options] PACKAGE_FILE…

        upgrade:安装有旧版程序包,则“升级”

        如果不存在旧版程序包,则“安装”

        freshen:安装有旧版程序包,则“升级”

        如果不存在旧版程序包,则不执行升级操作

        rpm -Uvh PACKAGE_FILE …

        rpm -Fvh PACKAGE_FILE …

                                        –oldpackage:降级

                                        –force: 强行升级

blob.png                   

blob.png

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

                    [select-options]

                    -a: 所有包

                    -f: 查看指定的文件由哪个程序包安装生成

                    -p rpmfile:针对尚未安装的程序包文件做查询操作;

                    –whatprovidesCAPABILITY:查询指定的CAPABILITY由哪个包所提供

                    –whatrequiresCAPABILITY:查询指定的CAPABILITY被哪个包所依赖

                                                [query-options]

                                                –changelog:查询rpm包的changelog

                                                -c: 查询程序的配置文件

                                                -d: 查询程序的文档

                                                -i: information

                                                -l: 查看指定的程序包安装后生成的所有文件;

                                                –scripts:程序包自带的脚本片断

                                                -R: 查询指定的程序包所依赖的CAPABILITY;

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

如果删除某个命令的文件  而不想重新安装 只想安装其包中的一个 就要用到一下两个命令

  rpm2cpio 包文件|cpio–itv预览包内文件

rpm2cpio 包文件|cpio–id “*.conf”释放包内文件

           

查询用法:

-qi PACKAGE, -qf FILE, -qc PACKAGE, -ql PACKAGE, -qd PACKAGE

-qpi PACKAGE_FILE, -qpl PACKAGE_FILE, …

-qa

卸载:

rpm {-e|–erase} [–allmatches] [–nodeps] [–noscripts] [–notriggers] [–test] PACKAGE_NAME …

rpm -e 包名


blob.png

rpm {-V|–verify} [select-options] [verify-options]

rpm -V 包名

        S file Size differs

        M Mode differs (includes permissions and file type)

        5 digest (formerly MD5 sum) differs

        D Device major/minor number mismatch

        L readLink(2) path mismatch

        U User ownership differs

        G Group ownership differs

        T mTimediffers

        P capabilities differ


导入所需要公钥:

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

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

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

rpm -qagpg-pubkey*


blob.png

数据库重建:

/var/lib/rpm

rpm {–initdb|–rebuilddb}

            initdb: 初始化 (较为安全推荐)

                如果事先不存在数据库,则新建之

                否则,不执行任何操作

            rebuilddb:重建

                无论当前存在与否,直接重新创建数据库


blob.png

文件服务器:

ftp://

http://

file:///

blob.png

yum客户端配置文件:

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

    /etc/yum.repos.d/*.repo:为仓库的指向提供配置

            仓库指向的定义:

                        [repositoryID]

                        name=Some name for this repository

                        baseurl=url://path/to/repository/

                        enabled={1|0}默认1

                        gpgcheck={1|0}默认1

                        gpgkey=URL

                        enablegroups={1|0}

                        failovermethod={roundrobin|priority}

                        默认为:roundrobin,意为随机挑选;

                        cost= 默认为1000

                    

yum-config-manager –disable “仓库名" 禁用仓库

yum-config-manager –enable “仓库名” 启用仓库

            

显示仓库列表:

repolist[all|enabled|disabled]

显示程序包:

list

# yum list [all | glob_exp1] [glob_exp2] […]

# yum list {available|installed|updates} [glob_exp1] […]

安装程序包:

install package1 [package2] […]

reinstall package1 [package2] […] (重新安装)

升级程序包

update [package1] [package2] […]

downgrade package1 [package2] […] (降级)

检查可用升级:

check-update

卸载程序包:

remove | erase package1 [package2] […]

查看程序包information:

info […]

查看指定的特性(可以是某文件)是由哪个程序包所提供:

provides | whatprovidesfeature1 [feature2] […]

清理本地缓存:

clean [ packages | metadata | expire-cache | rpmdb| plugins | all ]

构建缓存:

makecache

搜索:search string1 [string2] […]

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

查看指定包所依赖的capabilities:

deplistpackage1 [package2] […]

查看yum事务历史:

history [info|list|packages-list|packages-info|

summary|addon-info|redo|undo|

rollback|new|sync|stats]

yum history

yum history info 6

yum history undo 6

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

安装及升级本地程序包:

* localinstallrpmfile1 [rpmfile2] […]

(用install替代)

* localupdaterpmfile1 [rpmfile2] […]

(用update替代)

包组管理的相关命令:

groupinstallgroup1 [group2] […]

groupupdategroup1 [group2] […]

grouplist[hidden] [groupwildcard] […]

groupremovegroup1 [group2] […]

groupinfogroup1 […]

如何使用光盘当作本地yum仓库:

(1) 挂载光盘至某目录,例如/media/cdrom

# mount /dev/cdrom/media/cdrom

(2) 创建配置文件

[CentOS7]

name=

baseurl=

gpgcheck=

enabled=

yum的命令行选项:

–nogpgcheck:禁止进行gpgcheck

-y: 自动回答为“yes”

-q:静默模式

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

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

–noplugins:禁用所有插件

blob.png

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

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

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

$basearch:基础平台;i386

$YUM0-$YUM9:自定义变量

实例:

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

http://server/centos/7/x86_64

http://server/centos/6/i384

创建yum仓库:

createrepo[options] <directory>

blob.png

C代码编译安装三步骤:

1、./configure:

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

(2) 检查依赖到的外部环境

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

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

开发工具:

autoconf: 生成configure脚本

automake:生成Makefile.in

注意:安装前查看INSTALL,README



1安装包组

yum groupinstall  "Development tools"

2下载并解开源码包

tar xvf httpd-2.2.29.tar.bz2 

3 ./configure

./configure –prefix=/usr/local/http2  –sysconfdir=/etc/http2

4 make

5 make install

6 启动web服务程序

netstat -atn

 ./apachectl start

7 测试:关防火墙,浏览器访问

iptables -vnL

iptables -F

yum install links

links 10.1.252.192


                    










原创文章,作者:Nicolas ZhaoIV,如若转载,请注明出处:http://www.178linux.com/36498

(0)
Nicolas ZhaoIVNicolas ZhaoIV
上一篇 2016-09-01 08:49
下一篇 2016-09-01 08:49

相关推荐

  • sed文本处理器

    文本处理三剑客之一

    Linux干货 2017-12-10
  • bash特性

    2018-03-11

    2018-03-11
  • Tomcat基础知识

    标签:centos  Java1.7  Tomcat8   零、tomcat简介 一、安装java环境 二、安装tomcat 三、tomcat目录结构以及相关文件 四、WebAPP结构及简单部署 五、tomcat常用组件配置 零、tomcat简介 1、tomcat简介       tomcat是SU…

    Linux干货 2017-02-09
  • DNS高级应用

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

    Linux干货 2015-06-18
  • shell脚本之选择与执行

    流程控制  过程式编程语言: 顺序执行 选择执行 循环执行 选择执行:if语句  注意:if语句可嵌套  单分支 if 判断条件:then 条件为真的分支代码 fi  双分支 if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 fi 多分支 if…

    Linux干货 2016-09-19
  • Linux之DNS服务

    DNS服务 DNS: Domain Name Service,协议(C/S, 53/udp, 53/tcp)应用层协议 BIND:BekerleyInternatName Domain, ISC (www.isc.org) 本地名称解析配置文件:hosts     /etc/hosts   &nbs…

    Linux干货 2016-10-05