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)
上一篇 2015-11-21 14:27
下一篇 2015-11-26 16:39

相关推荐

  • 相关练习

    1、请使用命令行展开功能来完成以下练习:    (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d  mkdir /tmp/{a,b}_{c,d}    (2)、创建/tmp/mylinux目录下的:  mkdir -pv /tmp/mylinux/{bin,boot/grub,de…

    Linux干货 2016-11-05
  • 解决线上服务器httpd无法反向代理resin的解决方法

    一、简述   前两天有后端的小伙伴跟我反映说使用httpd反向代理resin时遇到的问题,在做网站管理后台的时候,发起的http的put,delete的请求无法经由resin传递到后面的dbserver。当时的第一反应就是httpd的反向代理设置出现的问题,但是关于httpd反代resin的内容在网上机会搜索不到。于是,查看httpd反代tomca…

    Linux干货 2017-01-11
  • date用法心得

    Linux时间格式极大程度的遵循了人类习惯,以下为部分常见时间。
    date命令本身提供了日期的加减运算,shell编程时灵活运用

    2017-11-09
  • 第一周 计算机/Linux基础入门

    1、描述计算机组成及其功能 计算机组成主要分为五个部分:控制器、运算器、存储器、输入设备、输出设备 ENIARC: CPU:运算器、控制器、寄存器、缓存 存储器:内存,RAM(Random Access Memory)         Input:下指令,提供数据等 Output:输出数据加工的结果         &…

    2017-12-02
  • 堡垒机-麒麟开源堡垒机苹果 Mac支持版本发布

      近日,麒麟开源堡垒机团队开发测试了支持Mac OS苹果操作系统的Web插件,苹果系统用户可以直接和Windows用户一样,登录到Web平台,使用点击的方式调动运维工具并且登录到目标系统进行操作运维。 Mac OS插件支持ssh、telnet、rdp、vnc、x11、sftp、ftp、应用发布等所有协议。   注:麒…

    Linux干货 2016-05-19
  • Linux文件管理命令

    Linux系统上文件管理命令 一、文件查看类命令      1、cat 由第一行开始显示文件内容 语法格式: cat [选项列表] [文件列表]… 参数说明: -A, –show-all 等价于 -vET 。 -b, –number-nonblank 给非空输出行编号。 -e 等价于 -vE 。 -E…

    Linux干货 2017-07-24