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 21:57
下一篇 2016-03-27 22:08

相关推荐

  • LA LN MP

    L A/N MP 安装 添加epel源 yum install epel* 安装所需环境 yum install gcc gcc-c++ gcc-g77 flex bison autoconf automake bzip2-devel zl…

    Linux干货 2016-05-28
  • Linux FHS-文件系统层级结构标准简要说明

    Linux FHS-文件系统层级结构标准简要说明 FHS(Filesystem Hierarchy Standard) FHS针对目录树架构对以下三个目录进行定义:     / (root, 根):与开机系统有关      /usr (unix software res…

    Linux干货 2017-03-26
  • 【Linux基础】文件管理类命令

    总结下linux系统文件管理类的命令 mkdir -> make dirtctories 创建目录 语法:mkdir [OPTION]… DIRECTORY… 常用选项-p: 自动按需创建父目录;-v: verbose,显示详细过程;-m MODE:直接给定权限;注意:路径基名方为命令的作用对象;基名之前的路径必须得存在;示例:~]# mkdir -p…

    Linux干货 2018-03-11
  • Ansible(From Wikipedia)

           Ansible 是一个免费的用于配置和管理计算机的的软件平台。它集成了软件部署,ad hoc任务执行,和管理配置的功能。它依赖Python2.4之后的版本和通过SSH或者PowerShell管理节点。模块工作在JSON格式,输出信息可以被任何编程语言再次编写。系统管理员可以使用YAML…

    Linux干货 2015-11-18
  • 面授20期2班-08月4号课堂与课后习题

    课堂习题 1、显示/etc/init.d/functions文件中所有的单词及出现的次数 cat /etc/init.d/functions | tr -sc "[:alpha:]" '\n' |sort | uniq -c 2、找出ifconfig命令结果中本机的所有IPv4地址 centos6:ifconfig | h…

    Linux干货 2016-08-08
  • 第四周练习

    1.复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限。         # cp -r /etc/skel /home/tuser1      &nb…

    Linux干货 2016-11-18

评论列表(1条)

  • stanley
    stanley 2016-03-27 22:03

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