Package Manager

Package Manager


  • Package 管理工具的分类

  • rpm

  • yum

  • Source Code Install


管理工具的分类

前段管理工具:
Debian:deb
Redhat,Suse…:rpm

前端管理工具:
Debian:apt-get
Redhat:yum,dnf

RPM

RPM是什么?
RPM全称是RPM Package Manager,是一款用来管理软件包的工具。 
RPM有什么用?
RPM能够用来管理程序包,包括软件包的安装,删除,卸载,升级,降级,查询操作。

RPM包名:

Packagename-modname-major.minor.revision.distributions.arch.rpm

例如: NetworkManager-adsl-1.0.6-27.el7.x86_64.rpm

rpm命令的格式:

rpm [COMMAND] [OPTION]

查询:

rpm -q [option]

    -a:显示当前主机所有包。
    -i [Package_name]:显示程序包的详细信息。
    -l [Package_name]:列出程序包安装后生成的所有文件。
    -c [Package_name]:列出程序的配置文件。
    -d [Package_name]:列出程序包的文档文件。
    -p [Package_PATH]:针对还未安装的程序做查询。需要与q和其他参数搭配使用。
    --scripts [Package_name]:列出程序包自带的脚本。
    --provides [Package_name]:列出程序包所提供的功能。
    -R [Package_name]:查询指定程序包所依赖的功能。
    --whatprovides [功能]:查询指定功能是哪个程序包提供的。
    --whatrequires [功能]:查询所有以来此功能的所有程序包。

    常用用法:-qa -qi -ql -qc -qd -qpi -qpl...

安装:

rpm -i [OPTIPN] [PACKAGE_PATH]

    -v|-vv:显示安装的详细信息。
    -h:以hash表的格式来实时显示进度,单位#。
    --test:测试安装。
    --nodeps:忽略依赖关系。
    --replacepkgs:重新安装。

    --nosignature:不检查来源合法性。
    --nodigest:不检查包的完整性。

    --noscript:不执行脚本。
      %pre:安装前脚本。
      %post:安装后脚本。
      %noprenu:卸载前脚本。
      %postun:卸载后脚本。

卸载:

    rpm -e [Package_name]

升级

    rpm <-U --upgrade |-F> [option] [Package_name】   
    -U:如果有更新就更新,没有软件就安装。  
    -F:如果有更新就更新,没有就推出。
    -V:详细信息。
    -h:hash表显示。
    --fouce:强制。

降级:

#rpm -F --oldpackage [Package_name]

校验,导入密钥:

rpm -V [Package_name]

rpm –import [Key_File]

rpm DB

    rpm {--initdb|--rebuilddb}
    --initdb:初始化rpm数据库。
        如果事先不存在就创建;否则,不执行任何操作。
    --rebuilddb:重建
        无论是否存在,直接创建数据库。

YUM

YUM是什么?
Yellow Dog Updata modify,是基于RPM的一款前端包管理工具。
YUM的功能是什么?
YUM通过仓库的方式来实现自动下载安装的过程,并通过元数据表来自动解决程序包的依赖问题。
YUM 原理

YUM Repository

YUM中的仓库是什么?
是存储了众多的rpm包,以及包相关的元数据文件(repodata目录下)。
文件服务器的形式:
ftp:// http:// nfs:// file:///

Create Repository:

  1. 通过命令创建。

     yum-config-manager --add-repo=[REPO_PATH]
  2. 通过配置文件创建。 vim /etc/yum.repos.d/*.repo

     [repo_ID]
     name=repo_name  
     baseurl=repo_path_url_1   指定仓库URL,可以指定多个URL。   
              repo_path_url_2 
     enable={0|1}              是否开启次仓库,默认为1,启用。
     enablegroups={0,1}     是否开启包组功能,批量管理包,默认为1,启用。
    
     gpgcheck={0|1}            是否开启gpg检查包完整性与合法性,默认为1,启用。
     gpgcheck=KEY_PATH         指定gpg金钥位置。
    
     failovermthhod={roundrobin|priority}    选择使用哪一个URL。
                默认为roundrobin,随机选择URL。
                priority,按照顺序轮询。
    
     username , passwd         某些仓库是需要身份验证的。
     cost=#                  指定仓库的开销,默认数值为1000。

YUM命令的格式:

yum [COMMAND] [OPTION]

命令行的选项:

     -y   所有交互都选择YES
     --nogpgcheck   不用进行完整性和合法性校验
     --disablerepo [repoistory_ID]   关闭这个仓库
     --enablerepo [repoistory_ID]   开启这个仓库
     --noplugins  禁止使用插件

查询显示:

     yum list [installed|updates] [glob...] 
     yum repolist   仓库列表。
     yum info [glob...]   包信息。
     yum [provides | whatprovides] [glob...]   所具有的功能与依赖的功能。
     yum search [string...] 根据字段来查询包。
     yum deplist [glob...]      列出依赖关系。
     yum history [info] [glob...]       不带参数即查看历史信息,info并指定glob查询单独一个包的历史信息。

安装,重装:

     yum install [PACKAGE...]       安装
     yum reinstall [PACKAGE...] 重装

卸载,降级:

     yum remove [PACKAGE...]        删除包。
     yum downgrade [PACKAGE...] 降级包。

清除,创建:

     yum clean [PACKAGE|metadata|expire-cache|rpmdb|plugins|all]    清除特定或者全部数据。
     yum makecache    创建缓存。

包组相关:

     yum grouplist      列出包组。
     yum groupinstall     安装包组。
     yum groupupdate      升级包组。
     yum groupremove      删除包组。
     yum groupinfo [GROUP_PACKAGE]      查询包组信息。

yum仓库文件的中变量详解:

     $releasever :OS发行版主版本号
     $arch:平台
     $basearch:基础平台
     $YUM0-$YUM9
     例如: http://mirros.163.com/centos/$releaserver/$basearch/$OS

Source Code Install

Source Code Install什么是?
源码安装,指的是通过还没编译的源代码,自行编译安装程序包。
Source Code Install有什么功能?
通过源码安装安装的程序与通过程序包安装的程序基本功能完全一致。
Source Code Install有什么好处?
通过源码安装,可以灵活选择程序模块,自行指定安装后的文件存放位置。

source code install

程序包安装概述:

二进制程序包:
textapp-VERSION-release.src.rpm –>安装后使用rpmbuild命令制作成二进制格式的rpm包,然后再安装。

源码安装: 
源代码 –> 预处理 –> 编译(gcc) –> 汇编 –> 链接 –> 执行

源码获取渠道:

官方自建站点:
apache.org (ASF)
mariadb.org …

代码托管:
sourceforge
Github.com
code.google.com

源码安装的步骤:

C代码编译安装三步骤 :

  • ./configuer :
    (1)通过选项传递参数,指定启用特性,安装路径等;执行时会参考用户的指令以及Makefile.in文件生成makefile;
    (2)检查依赖到的外部环境;

  • make:
    根据makefile文件,调用编译器,构建应用程序;

  • make install:
    链接文件;

源码安装的基本命令以及参数:

    ./configure [option]
    --prefix=PREFIX    指定文件安装路径
    --sysconfdir=DIR        指定配置文件安装路径
    --help      查看帮助
    ...

    make

    make install

源码安装注意事项:

  1. 安装前一定要查看文档,README , INSTALL 两个文档。

  2. 如果自行知道安装文件存放位置,请事前创建好程序文件存放目录。

  3. 源码安装完成后,要将系统环境变量设置正确。

    PATH=[bin_PATH]$PATH        可执行文件路径
    LD_LIBRARY_PATH=[lib_PATH]$LD_LIBRARY_PATH      动态库文件路径
    LIBRARY_PATH=[lib_PATH]$LIBRARY_PATH            静态库路径
    C_INCLUDE_PATH=[include_PATH]$C_INCLUDE_PATH        头文件路径
    
    MAN中的帮助文档路径指定:
    在 /etc/man_db.conf 文件中添加: 
          MANDATORY_MANPATH                       /PATH/TO/man

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

(0)
Net18_肖肖Net18_肖肖
上一篇 2016-03-27
下一篇 2016-03-27

相关推荐

  • 8.16

    for 循环是相对比较简单的循环,任何一个循环里面都可以嵌套循环,用for可以解决简单逻辑上的任何循环 。 有两种基本格式:for i in " ";do         或者dor((i=0;i<=9;i++))可以嵌套if或者while等循环 if循环。最重要的是判断的条件,if意为如果什…

    Linux干货 2016-08-19
  • Centos不重启添加新硬盘

     显示当前磁盘分区: [root@centos7 ~]# fdisk -l</p>< p>    Disk /dev/sda: 32.2 GB, 32212254720 bytes, 6…

    Linux干货 2016-03-27
  • linux 记忆命令心得

    新开始学linux,要记住很多的命令,毕竟这是linux的根本,没有这些命令,连操作都没办法进行。所以我写这个的目的是我自己记忆,也是想帮助一下一同学习linux的同学们,提供自己记忆这些的方法,抛砖引玉,大家共同讨论一下。 我的记忆方法就是分类,把命令分成输出类,名词累,操作类。 输出类就是说的例如w,who,whoami,echo,ifcogfig,wh…

    Linux干货 2017-07-15
  • rpm,yum,编译安装应用详解 (Blog 5)

    rpm, yum, 编译安装全解

    2017-11-27
  • MySQL管理应用入门(一)

    什么是数据库? 数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。 简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。 在经济管理的日常工作中,常常需要把某些相关的数据放进这样的“仓库”,并根据管理的需要进行相应的处理。 例如, 企业或事业单位的人事部…

    Linux干货 2017-07-08
  • 文本处理工具应用示例

    文本处理工具应用示例 1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可 who|awk ‘{print $1}’|sort|uniq -d 2.取出最后登录到当前系统的用户的相关信息 who|tail -1|cut -d’ ‘ -f1|id 3.取出当前系统上被用户当作默认shell的最多的那个shell cat /e…

    Linux干货 2017-07-16

评论列表(1条)

  • stanley
    stanley 2016-03-27 22:03

    又见md,用了md确实很上档次。逻辑清楚,内容丰满,赞