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

相关推荐

  • 15-2用户系统资源配额

    用户资源系统配额 在系统中,允许系统用户使用存储空间,但是不能限制的让用户随意使用存储空间,对用户存储空间的设定就是用户资源系统配额。 下面以/home 为例,通常如果系统中有一定的用户,会把用户的家目录作为一个单独的分区,从而实现更好的管理。下面具体讲解如何把用户家目录从根系统分区分离出来进行磁盘配额。 1、拿出一个未使用的分区,把用户家目录的数据拷贝到新…

    Linux干货 2016-12-02
  • python agent应用

    BaseHTTPServer 模块说明 class BaseHTTPServer.HTTPServer(server_address, RequestHandlerClass) server_address : 是一个服务器 (ip, port)元组。 RequestHandlerClas…

    Linux干货 2016-09-19
  • 搭建LAMP+NFS(附加mysql共享NFS目录练习总结)

    练习一 环境布局: 主机6 route A (10.1.32.14)作为DNS服务器 主机centos 7 class (10.1.32.3)作为Apache,PHP(模块方式)服务器1(有discuz程序) 主机centos 7 server (10.1.32.13)作为Apache,php(模块方式)服务器2(无discuz) 主机centos 6 cl…

    系统运维 2016-10-25
  • linux文件权限管理和用户,组管理常用命令应用实例

    用户和组概念简述 用户一般指使用计算机的人,GNU/linux通过用户和用户组实现对计算机的文件访问和设备使用控制。 用户分类1.管理员root(类似皇帝,权力最大)2.普通用户:分为系统用户和普通登录用户。系统用户不登录,常用于发起一些进程提供服务,防止进程被劫持带来的风险,所以尽量减少以root身份发起进程对外提供服务。3.用户标识UID。管理员的UID…

    2017-10-05
  • 马哥教育网络班22期+第3周课程练习 忍者乱太郎喻成

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。  who|awk '{print $1}'|uniq 2、取出最后登录到当前系统的用户的相关信息。 题目不是很清晰我估计是题目想要的是 last -1   cat /etc/pa…

    Linux干货 2016-09-06
  • N26-第三周博客

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只 显示一次即可。 [yang@localhost /]$ who | cut -d" " -f 1 | sort -u 2、取出最后登录到当前系统的用户的相关信息。 [root@localhost tmp]# last | head -1 3、取出当前系…

    Linux干货 2017-02-08

评论列表(1条)

  • stanley
    stanley 2016-03-27 22:03

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