程序包管理之yum命令详解

1.yum是什么?

创新互联专业提供成都IDC机房托管服务,为用户提供五星数据中心、电信、双线接入解决方案,用户可自行在线购买成都IDC机房托管服务,并享受7*24小时金牌售后服务。

    yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令。

2.yum客户端的配置文件

    配置文件:

        /etc/yum.conf    为所有仓库提供公共配置或不属于仓库的配置

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

    /etc/yum.repos.d/*.repo : 定义仓库

        [repositoryID]

        name=Some name for this repository

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

        enabled=[0|1]仓库开启或关闭

        gpgcheck ={1|0}  检查来源合法性

        gpgkey=URL 指明密钥文件

        enablegroups ={0|1} 使用组来批量管理程序包

        failovermethod = {roundrobin(轮询)|specified(优先级)}   

            故障转移方法默认为roundrobin,为随机挑选

        cost(开销)=#  默认为1000

    yum的repo配置文件中可用的变量:

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

        $arch:平台类型

        $basearch :基础平台

        $YUM0-$YUM9 :用户自定义的变量


这里以 http://mirrors.aliyun.com/ 为例:

~]# cd /etc/yum.repos.d/
~]# vim aliyun.repo
[base]
name=aliyun
baseurl=http://mirrors.aliyun.com/centos/6.7/os/x86_64/
gpgcheck=1

我们也可以用变量的方式来设置baseurl:

baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/



3.如何使用光盘做本地yum仓库

    这里以CentOS 6.7的ISO镜像为例:

(1)挂载光盘

~]# mount -r /dev/cdrom /media/cdrom

(2)创建配置文件

~]# cd /media/cdrom/
~]# ls     -->这里查看一下是否有"repodata"目录,一般默认都有,如果没有
~]# createrepo   -->创建"repodata"目录,如有,则不用创建
~]# vim /etc/yum.repos.d/local.repo
[base]
name=local
baseurl=file:///media/cdrom/
gpgcheck=1

~]# yum repolist   --> 配置完成后可以用这个命令检查是否配置成功

注: 创建yum仓库  createrepo [options]

4.yum常用命令

    yum的命令行选项:

        --nogpgcheck :进制进行gpg check 

        -y :自动回答为"yes"

        -q :静默模式

        --disabledrepo=repoidglob :临时禁用此处指定的repo

        --enabledrepo=repoidglob :临时启用此处的指定的repo

        --noplugins :禁用所有插件

    常用命令:

          显示仓库列表:

            repolist [all|enabled|disabled]

        显示程序包:

            yum list [all | glob_exp1] [glob_exp2] [...]

    yum list {available|installed|updates} [glob_exp1] [...]

        安装程序包:

            install package1 [package2][...]

            reinstall package1 [package2] [...] 重新安装

        升级程序包:

            update package1 [package2] [...]

            downgrade package1 [package2] [...] 降级

        检查可用升级:

            check-update 

        卸载程序包:

            remove | erase package1 [package2] [...]

        查看程序包的简要信息:

            info[]

        查看指定的特性是由那个程序包提供:

            provides | whatprovides feature1 [feature2] [...]

        清理本地缓存:

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

        构建缓存:

            makecache

        搜索:

            search string1 [string2] [...]

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

        查看指定包所依赖的capabilities:

            deplist [package1] [package2] [...]

        查看yum事物历史:

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

    

    包组管理的常用命令:

       * groupinstall group1 [group2] [...]

            * groupupdate group1 [group2] [...]

            * grouplist [hidden] [groupwildcard] [...]

            * groupremove group1 [group2] [...]

            * groupinfo group1 [...]

5.程序包编译安装

    源码包的一般格式:

        testapp-VERSION-release.src.rpm  

           安装后,使用rpmbuil命令制作成二进制格式的rpm包,而后在安装

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

编译安装三步骤:

./configure 

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

    2.检查依赖到的外部环境

make 

    根据makefile文件,构建应用程序,调用编译器来完成编译

make install 

编译C源代码:

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

    开发工具:make,gcc等

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

    glibc:标准库

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

        CentOS 6:"Development Tools","Server Platform Development"

        CentOS 7:"开发工具"

    

第一步:configure脚本

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

        --help:获取其支持使用选项

    安装路径设定:

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

        --sysconfdir=/PATH/TO/SOMEWHERE :配置文件安装路径

        System types(系统类型): 交叉编译可以用到

        Optional Features :可选特性

        --disable-FEATURE 禁用某特性

        --enable-FEATURE[=ARG] 启用某特性

        Optional Packages:可选程序包,

        --with-PACKAGE[=ARG] 定义依赖的程序包

        --without-PACKAGE不需要依赖的程序包

第二步:make

第三步:make install 

安装后的配置:

(1)导出二进制程序目录至PATH环境变量中

    编辑文件/etc/profile.d/NAME.sh

    export PATH=/PATH/TO/BIN:$PATH

(2)导出库文件路径

    编辑/etc/ld.so.conf.d/NAME.conf

    添加新的库文件所在目录至此文件中

    /usr/local/apache2/lib

    让系统重新生成缓存

    ldconfig [-v]

(3)导出头文件到/usr/include

    基于链接的方式实现:

    ln -sv

     导出目录为一个符号链接

(4)导出帮助手册

    编辑/etc/man_db.conf文件

    添加一个 MANPATH

这里以在CentOS 6.7上编译安装apache 2.2为例:

~]# cd httpd-2.2.29     --> 这里先切换到httpd目录下
~]# ./configure --prefix=/usr/local/ --sysconfdir=/etc/httpd2.2   
~]# make 
~]# make install
~]# cd /usr/local
~]# ./httpd    --> 启动http服务

6.开源程序的获取方式

官方自建站点:

    apache.org(ASF项目)

    mariadb.org

    ...

代码托管:

    SourceForge

    Github.com

    code.google.com 

    ...


分享标题:程序包管理之yum命令详解
转载注明:http://azwzsj.com/article/gsegdg.html