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
下一篇 2015-11-26

相关推荐

  • 【超全整理】《Linux云计算从入门到精通》系列实战笔记全放送

          为了方便Linux云计算爱好者的学习查看,马哥Linx云计算团队特别整理了《Linux云计算从入门到精通》年度重磅大放送,囊括了整个学习过程的学习精华,内容全部由马哥Linux云计算学员撰写,欢迎大家支持!!!       详情请看:  一、Linux运维基础实战入门 从Linux0基础入门开始,全面讲解作为新手如何学习Linux,以及学习方法和…

    2017-09-14
  • 脚本又见脚本,作业又是作业_第七周

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; [root@centos ~]# fdisk -l &n…

    Linux干货 2016-12-30
  • Shell脚本-循环基础

    Shell脚本-循环基础 背景: 正在学习Shell脚本之循环,发现Shell的循环和其他编程语言大同小异,逻辑上都是相通的,但在使用格式上却有点不同,在学习完Shell循环后,将学习的心得体会记录下来,以备今后复习。 介绍: 什么是Shell脚本:       shell script是利用shell的功能…

    2017-08-26
  • hbase安装配置(整合到hadoop)

    1.  快速单击安装 在单机安装Hbase的方法。会引导你通过shell创建一个表,插入一行,然后删除它,最后停止Hbase。只要10分钟就可以完成以下的操作。 1.1下载解压最新版本 选择一个 Apache 下载镜像:http://www.apache.org/dyn/closer.cgi/hbase/,下载 HBase Re…

    Linux干货 2015-04-13
  • zabbix部署(Linux上部署/监控端/被监控端)

    zabbix部署 一、监控系统的简单介绍 (1)cacti:存储数据能力强,报警性能差 (2)nagios:报警性能差,存储数据仅有简单的一段可以判断是否在合理范围内的数据长度,储存在内存中。比如,连续采样数据存储,有连续三次不在合理范围内的数据就报警 (3)zabbix:结合上面两种工具的优点,又可以存储数据,又可以报警 二、zabbix特性 (1)数据采…

    Linux干货 2017-01-06