发布于 2016-01-04 13:08:26 | 160 次阅读 | 评论: 0 | 来源: PHPERZ

这里有新鲜出炉的精品教程,程序狗速度看过来!

YUM RPM软件包安装管理

YUM是一个RPM系统的自动更新和软件包安装/卸载器。它可以自动计算依赖和找出想要安装的软件包。这使得它更容易而不必手动更新每一个使用RPM维护机器的”软件组“。YUM有一个添加简单功能的插件接口。YUM也能够通过他的模块接口被其他的Python 程序使用。


Linux程序包管理和yum的基本用法

 

Linux程序包管理

 

CentOS: yum, dnf

 

URL: ftp://172.16.0.1/pub/

 

YUM: yellow dog, Yellowdog Update Modifier

 

yum repository: yum repo

存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录下:repodata);

 

文件服务器:

ftp://

http://

nfs://

file:///

 

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 ...]

 

       command is one of:

        * install package1 [package2] [...]

        * update [package1] [package2] [...]

        * update-to [package1] [package2] [...]

        * check-update

        * upgrade [package1] [package2] [...]

        * upgrade-to [package1] [package2] [...]

        * distribution-synchronization [package1] [package2] [...]

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

        * list [...]

        * info [...]

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

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

        * makecache

        * groupinstall group1 [group2] [...]

        * groupupdate group1 [group2] [...]

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

        * groupremove group1 [group2] [...]

        * groupinfo group1 [...]

        * search string1 [string2] [...]

        * shell [filename]

        * resolvedep dep1 [dep2] [...]

        * localinstall rpmfile1 [rpmfile2] [...]

           (maintained for legacy reasons only - use install)

        * localupdate rpmfile1 [rpmfile2] [...]

           (maintained for legacy reasons only - use update)

        * reinstall package1 [package2] [...]

        * downgrade package1 [package2] [...]

        * deplist package1 [package2] [...]

        * repolist [all|enabled|disabled]

        * version [ all | installed | available | group-* | nogroups* | grouplist | groupinfo ]

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

        * check

        * help [command]

 

    显示仓库列表:

    repolist [all|enabled|disabled]

 

    显示程序包:

    list

    # 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] [...]

 

    查看程序包information

    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]

 

    安装及升级本地程序包:

* 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 [...]

 

    如何使用光盘当作本地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>

 

    程序包编译安装:

    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文件,构建应用程序;

    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:配置文件安装位置;

 

    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

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

 

    让系统重新生成缓存:

    ldconfig [-v]

 

    (3) 导出头文件

    基于链接的方式实现:

    ln -sv 

 

    (4) 导出帮助手册

    编辑/etc/man.config文件

    添加一个MANPATH

 

 

 

 

 

 

 

总结:

1.列出所有可更新的软件清单

  命令:yum check-update

 

2.安装所有更新软件

  命令:yum update

 

3.仅安装指定的软件

  命令:yum install <package_name>

 

4.仅更新指定的软件

  命令:yum update <package_name>

 

5.列出所有可安裝的软件清单

  命令:yum list

 

YUM安装删除软件

    装了系统添加删除软件是常事,yum同样可以胜任这一任务,只要软件是rpm安装的。 

    安装的命令是,yum install xxxyum会查询数据库,有无这一软件包,如果有,则检查其依赖冲突关系,如果没有依赖冲突,那么最好,下载安装;如果有,则会给出提示,询问是否要同时安装依赖,或删除冲突的包,你可以自己作出判断。 

    删除的命令是,yum remove xxx,同安装一样,yum也会查询数据库,给出解决依赖关系的提示。 

 

 

1.YUM安装软件包

  命令:yum install <package_name>

 

2.YUM删除软件包

  命令:yum remove <package_name>

 

YUM查询软件信息

    我们常会碰到这样的情况,想要安装一个软件,只知道它和某方面有关,但又不能确切知道它的名字。这时yum的查询功能就起作用了。你可以用 yum search keyword这样的命令来进行搜索,比如我们要则安装一个Instant Messenger,但又不知到底有哪些,这时不妨用 yum search messenger这样的指令进行搜索,yum会搜索所有可用rpm的描述,列出所有描述中和messeger有关的rpm包,于 是我们可能得到gaimkopete等等,并从中选择。 

有时我们还会碰到安装了一个包,但又不知道其用途,我们可以用yum info packagename这个指令来获取信息。 

 

 

1.使用YUM查找软件包

  命令:yum search <keyword>

 

2.列出所有可安装的软件包

  命令:yum list

 

3.列出所有可更新的软件包

  命令:yum list updates

 

4.列出所有已安装的软件包

  命令:yum list installed

 

5.列出所有已安装但不在 Yum Repository 內的软件包

  命令:yum list extras

 

6.列出所指定的软件包

  命令:yum list <package_name>

 

7.使用YUM获取软件包信息

  命令:yum info <package_name>

 

8.列出所有软件包的信息

  命令:yum info

 

9.列出所有可更新的软件包信息

  命令:yum info updates

 

10.列出所有已安裝的软件包信息

  命令:yum info installed

 

11.列出所有已安裝但不在 Yum Repository 內的软件包信息

  命令:yum info extras

 

12.列出软件包提供哪些文件

  命令:yum provides <package_name>

 

清除YUM缓存

1.清除缓存目录(/var/cache/yum)下的软件包

  命令:yum clean packages

 

2.清除缓存目录(/var/cache/yum)下的 headers

  命令:yum clean headers

 

3.清除缓存目录(/var/cache/yum)下旧的 headers

  命令:yum clean oldheaders

4.清除缓存目录(/var/cache/yum)下的软件包及旧的headers

  命令:yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务