设为首页 收藏本站
查看: 561|回复: 0

[经验分享] Linux程序包管理和yum用法

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-1-4 08:50:01 | 显示全部楼层 |阅读模式
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:禁用所有插件;

    yum的repo配置文件中可用的变量:
    $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) --> 汇编 --> 链接 --> 执行

    源代码组织格式:
    多文件:文件中的代码之间,很可能存在跨文件依赖关系;

    C、C++: make (configure --> Makefile.in --> makefile)
    java: maven


    C代码编译安装三步骤:
    ./configure:
    (1) 通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及Makefile.in文件生成makefile;
    (2) 检查依赖到的外部环境;
    make:
    根据makefile文件,构建应用程序;
    make install

    开发工具:
    autoconf: 生成configure脚本
    automake:生成Makefile.in

    建议:安装前查看INSTALL,README

    开源程序源代码的获取:
    官方自建站点:
    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 xxx,yum会查询数据库,有无这一软件包,如果有,则检查其依赖冲突关系,如果没有依赖冲突,那么最好,下载安装;如果有,则会给出提示,询问是否要同时安装依赖,或删除冲突的包,你可以自己作出判断。
    删除的命令是,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包,于 是我们可能得到gaim,kopete等等,并从中选择。
有时我们还会碰到安装了一个包,但又不知道其用途,我们可以用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)



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-159957-1-1.html 上篇帖子: centos系统python版本2.6升级到2.7 下篇帖子: Linux进程管理命令详解 Linux 程序
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表