Linux程序包管理yum

yum客户端:

配置文件:

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

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

仓库指向的定义:

[repositoryID]

name=Some name for this repository

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

enabled={1|0}

gpgcheck={1|0}

gpgkey=URL

enablegroups={1|0}

failovermethod={roundrobin|priority}

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

cost=

默认为1000

yum命令的用法:

yum [options] [command] [package …]

check          检查 RPM 数据库问题

check-update   检查是否有可用的软件包更新

clean          删除缓存数据

deplist        列出软件包的依赖关系

distribution-synchronization 已同步软件包到最新可用版本

downgrade      降级软件包

erase          从系统中移除一个或多个软件包

fs             Acts on the filesystem data of the host, mainly for removing docs/lanuages for minimal hosts.

fssnapshot     Creates filesystem snapshots, or lists/deletes current snapshots.

groups         显示或使用、组信息

help           显示用法提示

history        显示或使用事务历史

info           显示关于软件包或组的详细信息

install        向系统中安装一个或多个软件包

list           列出一个或一组软件包

load-transaction 从文件名中加载一个已存事务

makecache      创建元数据缓存

provides       查找提供指定内容的软件包

reinstall      覆盖安装软件包

repo-pkgs      将一个源当作一个软件包组,这样我们就可以一次性安装/移除全部软件包。

repolist       显示已配置的源

search         在软件包详细信息中搜索指定字符串

shell          运行交互式的 yum shell

swap           Simple way to swap packages, instead of using shell

update         更新系统中的一个或多个软件包

update-minimal Works like upgrade, but goes to the ‘newest’ package match which fixes a problem that affects your system

updateinfo     Acts on repository update information

upgrade        更新软件包同时考虑软件包取代关系

version        显示机器和/或可用的源版本。

* check

        * help [command]

 显示仓库列表:

 repolist [all|enabled|disabled]

显示程序包:

 list

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

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

例一:显示程序可安装的程序包

[root@localhost ~]# yum list php*
已加载插件:fastestmirror
 
file:///mnt/yum/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /mnt/yum/repodata/repomd.xml"
正在尝试其它镜像。
Loading mirror speeds from cached hostfile
可安装的软件包
php.x86_64                                               5.4.16-42.el7                                   test
php-bcmath.x86_64                                        5.4.16-42.el7                                   test
php-cli.x86_64                                           5.4.16-42.el7                                   test
php-common.x86_64                                        5.4.16-42.el7  

安装程序包: 

    install package1 [package2] […]

例一:安装程序包

[root@localhost ~]# yum install php-common
reinstall package1 [package2] [...]  (重新安装)升级程序包:

update [package1] [package2] […]

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

检查可用升级:

     check-update

卸载程序包:

     remove | erase package1 [package2] […]

查看程序包information

     info […]

例一:查看程序包信息

[root@localhost ~]# yum info gcc
已加载插件:fastestmirror
file:///mnt/yum/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /mnt/yum/repodata/repomd.xml"
正在尝试其它镜像。
Loading mirror speeds from cached hostfile
可安装的软件包
名称    :gcc
架构    :x86_64
版本    :4.8.5
发布    :11.el7
大小    :16 M
源    :test
简介    : Various compilers (C, C++, Objective-C, Java, ...)
网址    :http://gcc.gnu.org
协议    : GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
描述    : The gcc package contains the GNU Compiler Collection version 4.8.
         : You'll need this package in order to compile C code.

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

     provides | whatprovides feature1 [feature2] […]

例一:查看特性

[root@localhost ~]# yum provides gcc
已加载插件:fastestmirror
file:///mnt/yum/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /mnt/yum/repodata/repomd.xml"
正在尝试其它镜像。
Loading mirror speeds from cached hostfile
gcc-4.8.5-11.el7.x86_64 : Various compilers (C, C++, Objective-C, Java, ...)
源    :tes

清理本地缓存:

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

例一:清理本地缓存 ,记得清除Yum

[root@localhost yum.repos.d]# yum clean all

构建缓存:

     makecache

搜索:

     search string1 [string2] […]

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

例一:搜索summary

[root@localhost ~]# yum search bash
已加载插件:fastestmirror
file:///mnt/yum/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /mnt/yum/repodata/repomd.xml"
正在尝试其它镜像。
Loading mirror speeds from cached hostfile
================================================= N/S matched: bash ==================================================
bash-completion.noarch : Programmable completion for Bash
bash-doc.x86_64 : Documentation files for bash
libguestfs-bash-completion.noarch : Bash tab-completion scripts for libguestfs tools
pcp-pmda-bash.x86_64 : Performance Co-Pilot (PCP) metrics for the Bash shell
bash.x86_64 : The GNU Bourne Again shell

查看指定包所依赖的capabilities

     deplist package1 [package2] […]

例一:依赖那些包

[root@localhost ~]# yum deplist gcc
已加载插件:fastestmirror
file:///mnt/yum/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /mnt/yum/repodata/repomd.xml"
正在尝试其它镜像。
Loading mirror speeds from cached hostfil
软件包:gcc.x86_64 4.8.5-11.el7
   依赖:/bin/sh
   provider: bash.x86_64 4.2.46-20.el7_2
   依赖:/sbin/install-info
   provider: info.x86_64 5.1-4.el7
   依赖:binutils >= 2.20.51.0.2-12
   provider: binutils.x86_64 2.25.1-22.base.el7
   依赖:cpp = 4.8.5-11.el7
   provider: cpp.x86_64 4.8.5-11.el7
   依赖:glibc-devel >= 2.2.90-12
   provider: glibc-devel.x86_64 2.17-157.el7
   provider: glibc-devel.i686 2.17-157.el7
   依赖:ld-linux-x86-64.so.2()(64bit)
   provider: glibc.x86_64 2.17-157.el7

查看yum事务历史:

     history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

例一:查看yum事务历史:

[root@localhost ~]# yum history
已加载插件:fastestmirror
ID     | 登录用户                 | 日期和时间       | 操作           | 变更数
-------------------------------------------------------------------------------
     3 | root <root>              | 2017-05-06 12:56 | Install        |   31   
     2 | root <root>              | 2017-05-06 12:56 | Install        |    1   
     1 | 系统 <空>                | 2017-05-05 06:23 | Install        |  357   

警告:RPM 数据库已被非 yum 程序修改。

安装及升级本地程序包:

* localinstall rpmfile1 [rpmfile2] […]

           (maintained for legacy reasons only – use install)

        * localupdate rpmfile1 [rpmfile2] […]

           (maintained for legacy reasons only – use update)

包组管理的相关命令:

        * groupinstall group1 [group2] […]  安装

        * groupupdate group1 [group2] […]升级

        * grouplist [hidden] [groupwildcard] […]

        * groupremove group1 [group2] […]移除

        * groupinfo group1 […]

例一:查看那些可以批量安装那些包

[root@localhost yum.repos.d]# yum grouplist
已加载插件:fastestmirror
没有安装组信息文件
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
可用的环境分组:
   最小安装
   基础设施服务器
   计算节点
   文件及打印服务器
   基本网页服务器
   虚拟化主机
   带 GUI 的服务器
   GNOME 桌面
   KDE Plasma Workspaces
   开发及生成工作站
可用组:
   传统 UNIX 兼容性

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

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

     # mount -r -t iso9660 /dev/cdrom /media/cdrom

     (2) 创建配置文件

     [CentOS7]

     name=

     baseurl=

     gpgcheck=

     enabled=

yum的命令行选项:

     –nogpgcheck:禁止进行gpg check

     -y: 自动回答为“yes”;

     -q:静默模式;

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

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

     –noplugins:禁用所有插件;    

    yumrepo配置文件中可用的变量:

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

     $arch: 平台;

     $basearch:基础平台;

     $YUM0-$YUM9

   http://mirrors.magedu.com/centos/$releasever/$basearch/os

    创建yum仓库:

     createrepo [options] <directory>

例一:建立yum仓库

[root@localhost yum.repos.d]# yum install createrepo
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 createrepo.noarch.0.0.9.9-26.el7 将被 安装
--> 正在处理依赖关系 python-deltarpm,它被软件包 createrepo-0.9.9-26.el7.noarch 需要
--> 正在处理依赖关系 libxml2-python,它被软件包 createrepo-0.9.9-26.el7.noarch 需要
--> 正在处理依赖关系 deltarpm,它被软件包 createrepo-0.9.9-26.el7.noarch 需要
--> 正在检查事务
---> 软件包 deltarpm.x86_64.0.3.6-3.el7 将被 安装
---> 软件包 libxml2-python.x86_64.0.2.9.1-6.el7_2.3 将被 安装
---> 软件包 python-deltarpm.x86_64.0.3.6-3.el7 将被 安装
--> 解决依赖关系完成
 
依赖关系解决

程序包编译安装:

     testapp-VERSION-release.src.rpm –> 安装后,使用rpmbuild命令制作成二进制格式的rpm包,而后再安装;

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

     源代码组织格式:

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

   CC++make (configure –> Makefile.in –> makefile)

     java: maven

   C代码编译安装三步骤:

     ./configure

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

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

     make

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

     (3)make install

      开发工具:

     autoconf: 生成configure脚本

     automake:生成Makefile.in

    建议:安装前查看INSTALLREADME

  开源程序源代码的获取:

     官方自建站点:

     apache.org (ASF)

     mariadb.org

     …

     代码托管:

     SourceForge

     Github.com

     code.google.com

     c/c++: gcc (GNU C Complier)

 编译C源代码:

     前提:提供开发工具及开发环境

     开发工具:make, gcc

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

     glibc:标准库

    通过“包组”提供开发组件

     CentOS 6: “Development Tools”, “Server Platform Development”,

  第一步:configure脚本

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

 –help: 获取其支持使用的选项

     选项分类:

     安装路径设定:

     –prefix=/PATH/TO/SOMEWHERE: 指定默认安装位置;默认为/usr/local/

     –sysconfdir=/PATH/TO/SOMEWHERE:配置文件安装位置;

例一:指定configure脚本位置

   [root@localhost apache2]#./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd2

     System types:

      Optional Features: 可选特性

     –disable-FEATURE

     –enable-FEATURE[=ARG]

      Optional Packages: 可选包

     –with-PACKAGE[=ARG]

     –without-PACKAGE

   第二步:make

[root@localhost apache2]# make

   第三步:make install

[root@localhost apache2]# make install

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

(1)
kangkang
上一篇 2015-11-21 14:27
下一篇 2015-11-26 16:39

相关推荐

  • N25-第六周博客作业

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@han ~]# cp /etc/rc.d/rc.sysinit /tmp [root@han ~]#&n…

    Linux干货 2017-02-16
  • 分布式文件系统Mogilefs介绍与安装

    一、分布式文件系统简介: 什么是分布式存储:       分布式存储系统,是将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储…

    Linux干货 2016-05-04
  • 设计模式(四)原型模式Prototype(创建型)

    1.   概述 我们都知道,创建型模式一般是用来创建一个新的对象,然后我们使用这个对象完成一些对象的操作,我们通过原型模式可以快速的创建一个对象而不需要提供专门的new()操作就可以快速完成对象的创建,这无疑是一种非常有效的方式,快速的创建一个新的对象。 例子1:孙悟空拔下一嘬猴毛,轻轻一吹就会变出好多的孙悟空来。 例子2:寄个快递下面是一个邮寄快…

    Linux干货 2015-06-25
  • iptables之nat

    NAT网络地址转换SNAT:修改IP报文中的源IP地址 本地向互联网请求让本地网络中的主机可使用统一地址与外部通信,从而实现地址伪装请求:修改源IP,如果修改则由光梨园定义响应:修改目标IP,由nat自动根据会话表中追踪机制实现相应修改DNAT:修改目标地址转换 外网服务器向其他客户端请求请求:由外网主机发起,修改其目标地址,由管理员定义相应:修改源地址,但…

    2017-11-12
  • N25-第三周作业

    1.列出当前系统所有已经登录的用户的用户名,注意同一个用户登录多次,只显示一次即可   who | cut -d" " -f1 |uniq 2.取出最后登录到当前系统的用户的相关信息    w | tail -1 3.取出当前系统上被用户当做其默认shell最多的那个shell &nbsp…

    Linux干货 2016-12-19
  • 深入理解php底层:php生命周期

    1、PHP的运行模式:     PHP两种运行模式是WEB模式、CLI模式。无论哪种模式,PHP工作原理都是一样的,作为一种SAPI运行。 1、当我们在终端敲入php这个命令的时候,它使用的是CLI。 它就像一个web服务器一样来支持php完成这个请求,请求完成后再重新把控制权交给终端。 2、当使用Apache或者别web服务器…

    系统运维 2015-05-28