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

相关推荐

  • N26-博客作业-week4

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 ~]# cp -r /etc/skel /home/tuser1~]# chmod -R 700 /home/tuser1 2、编辑/etc/group文件,添加组hadoop。 ~]# echo “hadoop…

    Linux干货 2017-02-26
  • Linux基础

    一、计算机组成及其功能 ENIARC: CPU:运算器、控制器、寄存器、缓存 存储器:内存,RAM(Random Access Memory)         Input:下指令,提供数据等; Output:输出数据加工的结果;  程序:指令+数据 算法+数据结构&nb…

    Linux干货 2016-10-30
  • Linux基础学习总结(三)

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次: [leexide@leeblog ~]$who | cut -d" " -f1 | uniq 2、取出最后登录到当前系统的用户的相关信息。 last -n&nbs…

    Linux干货 2016-10-03
  • ​Linux基础知识之screen命令详解

    该博文以CentOS6.8_x86_64系统为基础,Xshell5远程登录CentOS6.8系统,以root身份登录系统,以Xshell5发起screen帮助,用系统命令行界面去连接。 screen命令:         打开新的screen: screen -S [SESSION]   (打开一个名叫hel…

    Linux干货 2016-07-29
  • 推荐-LINUX磁盘管理

    Evernote Export LINUX磁盘管理 linux学习笔记 磁盘分区 文件系统 挂载 在操作系统中,磁盘管理属于设备管理的范畴。一块硬盘安装到主机之后称为裸设备,若要能够在Linux系统中使用必须对其进行如下步骤:分区=>格式化(创建文件系统)=>挂载 LINUX系统的设备类型 Linux沿袭Unix的风格,将所有设备认成是一个文件 …

    Linux干货 2016-04-05
  • 推荐-Openssl加密解密及PKI,创建私有CA!

    Openssl加密解密及PKI,创建私有CA Openssl加密解密及PKI,创建私有CA Openssl加密解密及PKI,创建私有CA 一、什么是SSL? 二、SSL协议出现的目的? 三、密码算法 四、SSL握手通信 五、IKE是啥? 六、PKI是啥? 七、Openssl开源项目 八、创建私有CA 九、吊销证书 附:Openssh基于密钥认证 一、什么是S…

    Linux干货 2016-04-05