关于软件包管理

        软件包管理

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

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

rpm安装:

        rpm {-i|–install} [安装-选项] 打包;包

        -h  以#符号表示安装进度

        -v  显示安装过程中的详细信息

        -vv

        -vvv

        经常使用组合:-ivh,ivvh

        例如 rpm -ivh 包文件

        安装时的选项:

        –test    测试安装,但不真正执行安装,仅报告依赖关系以及冲突信息等

        –nodeps  忽略依关系,副作用是能安装成功,但未必能运行成功

        –replacepkgs  覆盖安装–重新安装并覆盖原有的文件

        –nosignature  不被监测来源合法性

        –nodigest     不检查包完整性

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

        –foree        强制安装

        

rpm包升级:

         rpm {-U|–upgrade} [安装-选项] 打包;包 

              -U   升级或安装

               upgrade:安装有旧版程序包,则“升级”  如果不存在旧版程序包,则“升级”

         rpm {-F|–freshen} [安装-选项] 打包;包 

              -F   升级

               freshen:安装有旧版程序包,则“升级”  如果不存在旧版程序包,则不执行升级操作

        常用组合:-Uvh,Fvh 

        例如  rpm -Uvh 包文件

        升级选项:

        –oldpackage      降级

        –force           强制升级

升级时需要注意事项:

1  不要对内核执行升级,Linux 支持多个内核共存,可以对此直接安装新版本内核或不同版本的内核

2   如果程序包的配置文件安装后被修改,升级时,新版本的文件不会覆盖老版本的配置文件。而是把新版本的文件重命名加上后缀(.rpmnew) 之后保留

rpm包查询:

         rpm {-q|–query}[选择-选项][查询选项]

         安装选项                                                     ~]# rpm -q tree 后面准确查找包名    

         -a 所有包、                                                ~]# rpm -qa     查询当前系统安装的所有包  ~]# rpm -qa |grep "^tr"  管道给关键字查找,以tr开头的包名

         -f 查看指定的文件由哪个程序安装生成                          ~]# rpm -qf /etc/issue   查询文件是哪个包生成   

         -p  rpmfuile 针对尚未安装程序包文件做查询操作;              ~]# rpm -qp tree-1.6.0-10.el7.x86_64.rpm 

         –whatprovides 性能进程 查询指定的性能进程有哪个包所提供     ~]# rpm -q tree –whatprovides  查询这个功能是由哪个包所提供

         –whatrequires 性能进程 查询指定的性能进程被哪个包所依赖     ~]# rpm -q bash –whatrequires  查询这个功能是被哪个包所依赖  

         rpm2cpio 包文件|cpio -itv  预览包内的文件                    ~]# rpm2cpio tree-1.6.0-10.el7.x86_64.rpm |cpio -itv

rpm2cpio 包文件|cpio -id   "*.conf" 释放包内文件

         查询选项:

         –changelog 查询rpm包的变动日志                              ~]# rpm -qc tree –changelog

         -c   查询程序的配置文件   

         -d   查询程序的文档                                          ~]# rpm -qd tree

         -i   信息                                                    ~]# rpm -qi tree

         -l   查看指定的程序包安装后生成的所有文件                    ~]# rpm -ql tree

         –scripts 程序包自带的脚本片断                               ~]# rpm -q bash –scripts

         -R   查询指定的程序包所依赖的 性能进程                       ~]# rpm -qR bash

         –provides  ;列出指定程序包所提供的 性能进程                ~]# rpm -q bash –provides

rpm卸载:

        rpm  {-e|–erase} 

         –allmatches      移除所有符合 <package> 的软件包(如果<package> 被指定未多个软件包,常常会导致错误出现)

         –nodeps                         不验证软件包依赖

         –noscripts                      不执行软件包脚本

         –notriggers                     不执行本软件包触发的任何脚本

         –test                           不真正安装,只是判断下是否能安装

包检验:rpm {-V|–verify}

               –nofiledigest                   不验证文件摘要

               –nofiles                        不验证软件包中文件

               –nodeps                         不验证包依赖

               –noscript                       不执行验证脚本

导入所需要公钥:

 ~]# rpm -K tree-1.6.0-10.el7.x86_64.rpm   检查包的完整性和签名

       

rpm数据库:

        数据库重建: /var/lib/rpm

        rpm {–initdb|–rebuilddb}

        initdb  初始化

        如果时间不存在数据库,则新建之,否则 不执行任何操作

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

  

  

  

rpm命令实现程序管理   主要核心命令

安装:-vih,–nodeps,–replacepkgs

卸载:-e,–nodeps

升级:-Uvh,-Fvh,–nodeps,–oldpackage

查询:-q,-qa,-qf,-qi,-qc,-q –scripts, -q –chanlog, -q –provides,-q–requires

校验:-V

导入GPG密钥:–import,-K,–nodigest,–nosignature

数据库重建:–initdb,–rebuilddb                                   

===========================================================

yum 

    yum是rpm的前端程序,用来解决软件包相关依赖性,可以在多个库之间定位软件包,

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

    文件服务器:ftp:

                http://

                file:///

yum配置文件:

           /etc/yum.conf              主配置文件为所有仓库提供数据

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

           创库指向的定义:

           文件以.repo 结尾; 

           root@Compro ~]# cat /etc/yum.repos.d/base.repo 

           [base]                       提供配置信息

           name=CentOS 7                当前仓库的名称

           baseurl=http://10.1.0.1/cobbler/ks_mirror/CentOS-7-x86_64/    教室里的yum源

           enabled=1                    此仓库是否为可用

           gpgcheck=0                   是否对程序包做校验

           gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7    指明访问密钥路径的路径

           [仓库ID]     对于当前系统的yum来将,此仓库ID用于唯一标识此仓库指向,因此,必须唯一

           name=name    当前仓库描述信息名称

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

           enabled={1|0}    此仓库是否可被使用 1是 禁用0是可以 不写是默认

           gpgcheck={1|0}   是否对程序包做校验  

           gpgkey=          指明gpgkey文件路径

           cost= 默认为1000

           

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

挂载光盘至某目录,例如/media/cdrom

#mount /dev/cdrom /media/cdrom

创建配置文件:

[CentOS7]

name=自定义                  当前仓库描述信息

baseurl=指明资源库的访问路径,通常为一个文件服务器上输出的某资源库,支持的类型:ftp://;http://;file:///

gpgcheck={1|10}          是否对程序包做校验

enabled={1|10}         此仓库上是否可用,默认为可用           

yum命令的语法: yum [选项] [命令] [包]

yum显示仓库列表:

                yum repolist [all|enabled|disabled]

显示程序包:

          yum list

          yum list [all | glob_ exp1 ] [glob_exp2] …             

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

安装程序包:

          yum install 包1 [包2] …

          yum reinstall 包1 [包2]…         重新安装

升级程序包:

          yum update [包1][包2]…

          yum downgrade 包1 [包2]…      降级

卸载程序包:

          yum remove | erase 包1 [包2]  …                      

                

查看程序包的信息:

          yum info name

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

yum provides | whatprovides 特性1 [特性2] …                

清理本地缓存:

          yum clean [包|元数据|expire-cache|rpmdf|plugins|all]

构建缓存:

         yum makecache            

 

搜索:

    yum  search 字符串1 [字符串2]

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

查看指定包所依赖的capabilities 

     yum deplist 包1 [包2] …

查看 yum事务历史

               yum history

               

日志:

     /var/log/yum.log

     

安装及升级本地程序包

         yum install rpmfile1 [rpmfile2] …

         yum update  rpmfile1 [rpmfile2] …

包组管理的相关命令:

         yum groupinstall group1

         yum groupupdate group1

         yum grouplist [hidden][groupwildcard]

         yum groupremove group1

         yum groupinfo group1

         

     

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

 

挂载光盘至某目录 

          例如 /media/crom  # mount /dev/cdrom /media/crom

          创建配置文件

          [CentOS7]

          name=name

          baseurl=file:///

          gpgcheck=0

          enabled=1    

yum 的命令行选项

yum [选项] 包

     –nogpgcheck     禁止进行gpg check

     -y               自动回答为"yes" 

     -q               静默模式

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

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

     –noplugins                 禁用所有插件

     

 

 =================================================================

 

                    源码编译  

程序包编译安装:

Application-VERSION-release.src.rpm–> 

安装后,使用rpmbuild命令制作成二进制格式的rpm包,而后再安装

源代码–>预处理–>编译–>汇编–>链接–>执行

源代码组织格式:

多文件:文件中的代码之间,很可能存在跨文件依赖关系

C、C++:make (项目管理器,configure –>

Makefile.in –> makefile)

java: maven

C代码编译安装三步骤:

                    ./configure

                    通过选项传递参数,指定启动特性、安装路径等;

                    执行时会参考用户的指定以及makefile.in文件生成makefile

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

                    [cdrom] 

                    name=centos 7 cdrom

                    baseurl=file:///mnt/cdrom

                    gpgcheck=0

                    enabled=0                   

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

                    make install   复制文件到相应路径

开发工具:

         autoconf: 生成configure脚本

         automake:生成Makefile.in

         注意:安装前查看 安装自带文档

开源程序源代码的获取:

官方自建站点:

apache.org (ASF:Apache Software Foundation)

mariadb.org

代码托管:

SourceForge.net

Github.com

code.google.com

c/c++编译器: gcc(GNU C Complier)

编译C源代码:

       准备:提供开发工具及开发环境

             开发工具:make,gcc等

             开发环境:开发库,头文件

             glibc:标准库

       实现:通过“包组”提供开发组件

CentOS 6:

Development Tools

Server Platform Development

CentOS 7:

Development Tools

Development and Creative Workstation

编译安装:

        第一步:configure 脚本

        选项:指定安装位置、指定启用的特性

        安装路径设定:./configure –prefix=/usr/local/http2 –sysconfdir=/etc/http2/

可选特性:

–disable-FEATURE

–enable-FEATURE[=ARG]

可选包:

–with-PACKAGE[=ARG],依赖包

–without-PACKAGE,禁用依赖关系     

     

安装后的配置:

二进制程序目录导入至PATH环境变量中;

编辑文件:

 [root@Compro ~]# vim /etc/profile.d/http2.sh

 PATH=$PATH:/usr/local/http2/bin

导入库文件路径:

 编辑/etc/ld.so.conf.d/NAME.conf

 添加新的库文件所在目录至此文件中

让系统重新生成缓存:

 ldconfig[-v]    

     

导入头文件

基于链接的方式实现:

ln -sv

导入帮助手册

编辑/etc/man.config|man_db.conf文件

添加一个MANPATH     

[root@Compro ~]# vim /etc/man_db.conf

MANDATORY_MANPATH /usr/local/http2/ma

     

     

     

     

     

     

     

     

     

     

 

原创文章,作者:小马哥,如若转载,请注明出处:http://www.178linux.com/42119

(0)
小马哥小马哥
上一篇 2016-08-30
下一篇 2016-08-30

相关推荐

  • 中文man安装手册

      首先需要确认的是有没有安装中文支持,如果没有请安装:#yum groupinstall -y "Chinese Support" 现在下载安装包: wget http://manpages-zh.googlecode.com/files/manpages-zh-1.5.1.tar.gz  (这个wget是直接网页下…

    系统运维 2016-01-13
  • redis-cli的一些有趣也很有用的功能

    redis-cli我们最常用的三个参数就是-h、-p、-a选项,分配用来指定连接的redis-server的host、port和登录密码。通过redis-cli –help发现,redis-cli还提供了其他很多的参数和功能。 1)-x-x选项从标准输入(stdin)读取最后一个参数。 比如从管道中读取输入: echo -en &quot…

    Linux干货 2016-04-13
  • Linux DNS服务系列之原理介绍及正反向解析配置

    前言 我们在访问一个网站的时候,只要输入该网站的网址就会跳转到该网站页面,而实现这一过程就需要DNS服务器将域名解析为IP地址,进而实现数据通信。那么DNS服务器是如何工作的呢?本系列分为两部分,本文将详解DNS服务原理及正反向解析配置。 DNS服务原理详解 DNS相关知识 DNS:Domain Name Service,域名解析服务 监听端口:udp/53…

    Linux干货 2015-04-13
  • 你的数据根本不够大,别老扯什么Hadoop了

    本文原名“Don’t use Hadoop when your data isn’t that big ”,出自有着多年从业经验的数据科学家Chris Stucchio,纽约大学柯朗研究所博士后,搞过高频交易平台,当过创业公司的CTO,更习惯称自己为统计学者。对了,他现在自己创业,提供数据分析、推荐优化咨询服务,他的邮件是:stucchio@gmail.co…

    Linux干货 2015-04-04
  • bash功能特性六 bash操作环境

    一、bash查找命令的顺序     1、以相对路径或绝对路径执行的命令;     2、由alias找到该命令来执行;     3、由bash内置的命令来执行;     4、通过$PATH这个变量的顺序找到的第一个命令来执…

    Linux干货 2015-04-22
  • corosync + pacemaker搭建高可用http

    一、实验图:    二、实验环境准备:  1)时间同步(172.16.2.15是时间服务器) [root@web1 ~]# crontab  -e   */5 * * * * /usr/sbin/ntpdate&nbsp…

    Linux干货 2015-06-30