zoukankan      html  css  js  c++  java
  • rpm与yum命令的初步认识

    RPM:Red Hat package manager(RedHat软件包管理工具),现在为RPM is Package Manager好比windows里的文件扩展名为·exe的软件包。

    RPM的包装包到底是什么啦?

    它是二进制包(binary)以及源代码包(source)的两种。二进制包里边包括了已经通过编译,你只需要下载和解包,便可以在计算机上运行了。而源代码包里只有程序的原始代码,需要我们自己在计算机上先编译以后才可以运行程序。而我这里讲到的源码包是通过rpm包的自动编译和安装。Rpm编译的源代码包通常以src.rpm作为后缀名。

    程序包的版本:

    比如 testapp-version

    注解:

    version: x.y.z=major.minor.release

    major ß--à x :主版号

    minor ß--à y:次版号

    release ßà release : 发行号,修订版

    RPM 包的命名:name-Major.minor.Release.arch.rpm

    其中Arch:是适用的硬件平台

    如 X86系列:i386,i486,i586,i686等

    noarch :跟硬件平台无关

    RPM包还有分包机制

    核心包,主包:命名与源程序包名一致

    如 bash-4.3.2-1.centos6.x86_64.rpm

    子包(支包):如 bash-devel-4.3.2-1.centos.x86_64.rpm

    devel是 develop 的缩写 开发的意思, 有devel的包就是开发包,你要编译安装某些软件会提示你缺少那些开发包然后就可以根据这个装上.

    RPM安装语法:

                rpm {-i|--install} [install-options] PACKAGE_FILE ...

    常用命令组合:

    -ivh:安装显示安装进度--install--verbose--hash
    
    
    -Uvh:升级软件包--Update;
    
    
    -qpl:列出RPM软件包内的文件信息[Query Package list];
    
    
    -qpi:列出RPM软件包的描述信息[Query Package install package(s)];
    
    
    -qf:查找指定文件属于哪个RPM软件包[Query File];
    
    
    -Va:校验所有的RPM软件包,查找丢失的文件[View Lost];
    -e:删除包

    相应的案例可以形象的带大家去理解rpm命令的运用,不过大家还是多多 man rpm 一下,用到的时候,多留意下。

    rpm -q samba //查询程序是否安装

    rpm -ivh  /media/cdrom/RedHat/RPMS/samba-3.0.10-1.4E.i386.rpm //
    按路径安装并显示进度
    rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm    //
    指定安装目录

    rpm -ivh --test gaim-1.3.0-1.fc4.i386.rpm
       
     //用来检查依赖关系;并不是真正的安装;
    rpm -Uvh --oldpackage gaim-1.3.0-1.fc4.i386.rpm //
    新版本降级为旧版本

    rpm -qa | grep httpd
          [搜索指定rpm包是否安装]--all搜索*httpd*
    rpm -ql httpd
             #[搜索rpm]--list所有文件安装目录

    rpm -qpi Linux-1.4-6.i368.rpm
     #[查看rpm]--query--package--install package信息
    rpm -qpf Linux-1.4-6.i368.rpm
     #[查看rpm]--file
    rpm -qpR file.rpm
           #[查看包]依赖关系
    rpm2cpio file.rpm |cpio -div    
    [抽出文件]

    rpm -ivh file.rpm 
     #[安装新的rpm]--install--verbose--hash
    rpm -ivh

    rpm -Uvh file.rpm    
    [升级一个rpm]--upgrade
    rpm -e file.rpm      
    [删除一个rpm]--erase

     

     

    常用参数:

     

     


    -i, --install                     install package(s)
    -v, --verbose                     provide more detailed output
    -h, --hash                        print hash marks as package installs (good with -v)
    -e, --erase                       erase (uninstall) package
    -U, --upgrade=<packagefile>+      upgrade package(s)
    -replacepkge                    无论软件包是否已被安装,都强行安装软件包
    --test                            
    安装测试,并不实际安装
    --nodeps                          
    忽略软件包的依赖关系强行安装
    --force                           
    忽略软件包及文件的冲突

    Query options (with -q or --query):
    -a, --all                         query/verify all packages
    -p, --package                     query/verify a package file
    -l, --list                        list files in package
    -d, --docfiles                    list all documentation files
    -f, --file                        query/verify package(s) owning file

     

     

    RPM源代码包装安装

    .src.rpm结尾的文件,这些文件是由软件的源代码包装而成的,用户要安装这类RPM软件包,必须使用命令:

       

    rpm --recompile vim-4.6-4.src.rpm   #这个命令会把源代码解包并编译、安装它,如果用户使用命令:

    rpm --rebuild vim-4.6-4.src.rpm  #在安装完成后,还会把编译生成的可执行文件重新包装成i386.rpm的RPM软件包。

     

     

    Yum专题的随笔

    一· 首先得了解我们为什么要了解yum,它有何特殊地位???

    Yum是通过分析rpm的标题数据后,根据各软件的相关性制作出依赖时的解决方案,通俗的讲就是rpm安装一个软件,它只是安装这个软件包,而与这个软件有依赖关系的软件包,是不会安装的。可是我们的yum就是在rpm的基础上,既把你想要安装的软件包给安装了,还会自动分析与这个软件包相依赖的所有软件包,并且一一下载并为你安装好。这是多么人性化,主要是省了我们不少时间。

     

    二. 利用yum进行查询,安装,升级与删除功能

    yum的使用真的很简单,就是用yum这个命令来。

    1. 查询功能: yum [list | info | search |provides |whatprovides] 参数

     

    [root@localhost ~]# yum [option] [查询工作项目] [相关参数] 包名

    [option] : 主要的选项,包括有:

    -y : 当yum 要等待用户输入时,这个选项可以自动安装

    --installroot=/some/path:将该软件安装在 /some/path 中而不使用默认路径

     

    [查询工作项目] [相关参数]:

    search :搜索某个软件名称或者是描述的重要关键字;

    list :列出目前yum所管理的所有软件名称与版本,有点类似 rpm -qa ;

    info :同上,不过有点类似于 rpm -qf 的功能

     

     

    范例 1 :搜索磁盘阵列(raid)相关的软件有哪些?

    [root@localhost ~]# yum search raid

    Loaded plugins: fastestmirror, refresh-packagekit, security

    Loading mirror speeds from cached hostfile

    ========================================= N/S Matched: raid ==========================================

    dmraid.i686 : dmraid (Device-mapper RAID tool and library)

    dmraid.x86_64 : dmraid (Device-mapper RAID tool and library)

     

    范例 2 : 找出mdadm 这个软件的功能为何?

    [root@localhost ~]# yum info mdadm

    Loaded plugins: fastestmirror, refresh-packagekit, security

    Loading mirror speeds from cached hostfile

    Installed Packages

    Name : mdadm

    Arch : x86_64

    Version : 3.3

    Release : 6.el6

    Size : 819 k

    Repo : installed

    From repo : anaconda-CentOS-201410241409.x86_64

    Summary : The mdadm program controls Linux md devices (software RAID arrays)

    URL : http://www.kernel.org/pub/linux/utils/raid/mdadm/

    License : GPLv2+

    Description : The mdadm program is used to create, manage, and monitor Linux MD (software

    : RAID) devices. As such, it provides similar functionality to the raidtools

    : package. However, mdadm is a single program, and it can perform

    : almost all functions without a configuration file, though a configuration

    : file can be used to help with some common tasks.

     

     

    范例 3 : 列出yum 服务器上面提供的所有软件名称

    [root@localhost ~]# yum list

    zabbix22-server-mysql.x86_64 2.2.1-5.el6 epel

    zabbix22-server-pgsql.x86_64 2.2.1-5.el6 epel

    zabbix22-web.noarch 2.2.1-5.el6 epel

    " 软件名称 " " 版本 " " 在哪个仓库里 "

     

    范例 4:列出目前服务器上可供本机进行升级的软件有哪些

    [root@localhost ~]# yum list updates //一定要 updates

    Loaded plugins: fastestmirror, refresh-packagekit, security

    Loading mirror speeds from cached hostfile

     

    范例 5:列出提供nginx 这个文件的软件有哪些

    [root@localhost ~]# yum provides nginx

    Loaded plugins: fastestmirror, refresh-packagekit, security

    Loading mirror speeds from cached hostfile

    nginx-1.0.15-5.el6.x86_64 : A high performance web server and reverse proxy server

    repo : epel

    Matched from:

    找到了,可以从容器repo或是epel里找到

     

    我们来个小练习吧。

    利用yum 的功能,找出http为开头的软件名称有哪些

    [root@localhost ~]# yum list http*

    Loaded plugins: fastestmirror, refresh-packagekit, security

    Loading mirror speeds from cached hostfile

    Installed Packages

    httpd.x86_64 2.2.15-39.el6.centos @anaconda-CentOS-201410241409.x86_64/6.6

    httpd-tools.x86_64 2.2.15-39.el6.centos @anaconda-CentOS-201410241409.x86_64/6.6

    Available Packages

    http-parser.i686 2.0-4.20121128gitcd01361.el6 epel

    http-parser.x86_64 2.0-4.20121128gitcd01361.el6 epel

    接下来就是谈谈安装与升级功能:

    [root@localhost ~]# yum [install | update] 软件包

    Install : 后边要接安装的软件

    update : 后边要接升级的软件,若想升级整个系统,直接update便可以;

    实例1 安装tree 软件

    [root@localhost ~]# yum install tree -y

    Loaded plugins: fastestmirror, refresh-packagekit, security

    Setting up Install Process

    Loading mirror speeds from cached hostfile

    Resolving Dependencies

    --> Running transaction check

    ---> Package tree.x86_64 0:1.5.3-2.el6 will be installed

    --> Finished Dependency Resolution

     

    Dependencies Resolved

     

    ===============================================================================================================

    Package Arch Version Repository Size

    ===============================================================================================================

    Installing:

    tree x86_64 1.5.3-2.el6 base 36 k

     

    Transaction Summary

    ===============================================================================================================

    Install 1 Package(s)

     

    Total download size: 36 k

    Installed size: 65 k

    Downloading Packages:

    tree-1.5.3-2.el6.x86_64.rpm | 36 kB 00:00

    Running rpm_check_debug

    Running Transaction Test

    Transaction Test Succeeded

    Running Transaction

    Installing : tree-1.5.3-2.el6.x86_64 1/1

    Verifying : tree-1.5.3-2.el6.x86_64 1/1

     

    Installed:

    tree.x86_64 0:1.5.3-2.el6

     

    Complete!

     

     

     

    删除功能:yum remove 软件名称

    [root@localhost ~]# yum remove tree

    Loaded plugins: fastestmirror, refresh-packagekit, security

    Setting up Remove Process

    Resolving Dependencies

    --> Running transaction check

    ---> Package tree.x86_64 0:1.5.3-2.el6 will be erased

    --> Finished Dependency Resolution

     

    Dependencies Resolved

     

    ======================================================================================================

    Package Arch Version Repository Size

    ======================================================================================================

    Removing:

    tree x86_64 1.5.3-2.el6 @anaconda-CentOS-201410241409.x86_64/6.6 65 k

     

    Transaction Summary

    ======================================================================================================

    Remove 1 Package(s)

     

    Installed size: 65 k

    Is this ok [y/N]: y

    Downloading Packages:

    Running rpm_check_debug

    Running Transaction Test

    Transaction Test Succeeded

    Running Transaction

    Erasing : tree-1.5.3-2.el6.x86_64 1/1

    Verifying : tree-1.5.3-2.el6.x86_64 1/1

     

    Removed:

    tree.x86_64 0:1.5.3-2.el6

     

    Complete!

    三. yum 的设置文件

     

        yum repository: yum仓库

            存储了众多rpm包,以及包的相关元数据的文件(放在repodata目录中)服务器

     

            文件服务器:

                http://

                ftp://

                nfs://

                file:///

    repodata目录就是分析RPM软件后所产生的软件属性依赖数据放置处。我们来修改一下设置文件吧:在[root@localhost ~]# vim /etc/yum.repos.d/CentOS-Base.repo 修改下[REPO_ID],name,baseurl,enabled,gpgcheck这几个重要的,其它可以自行决定有否。

     

     

        yum客户端:

            配置文件:指向仓库的位置以及各种配置信息;每个yum客户可以有多个可用的yum仓库;

     

            有两部分组成:

                主配置文件:/etc/yum.conf

                 /etc/yum.repos.d/*.repo

     

                仓库定义:

                [REPO_ID] //这个没有强制规定,根据自己的选择,来定一个容器的名字

                name=REPO description //来形象说明这个容器是什么

                baseurl=ftp://172.16.0.1/pub/CentOS6/ //这个非常非常重要,后面接的是容器的实际网址

                enabled={1|0} //是否启动这个容器

                gpgcheck={1|0} //进行自检,也就是数字证书认证

                gpgkey=ftp://172.16.0.1/pub/CentOS6/gpg-key //数字证书的公钥文件的所在位置。

     

    实例 1 : 列出目前yum server 所有的容器有哪些?

    [root@localhost ~]# yum repolist all

    Loaded plugins: fastestmirror, refresh-packagekit, security

    Loading mirror speeds from cached hostfile

    Repoid reponame status

    C6.0-base CentOS-6.0 - Base disabled

    epel Fedora EPEL for CentOS6 x86_64 on local server 172.16.0.1 enabled: 12,922

    extra CentOS 6 x86_64 extras enabled: 2,334

     

     

     

     

    制作yum仓库

    我想给大家来个实战的,大体的思路是先制作本地(yum源)yum仓库???

    首先我的是CentOS6.6,而我的本地要的镜像是CentOS-5.11-x86_64-bin-DVD-1of2,

    朋友们自己做实验的时候,随便下载和自己系统一样的的镜像。废话不多说了。

    前期准备阶段:

    1. 先挂载 CentOS-5.11-x86_64-bin-DVD-1of2 的镜像,如下所示
    2.  

    3. 把CentOS-5.11-x86_64-bin-DVD-1of2 的镜像挂载到指定目录下,通常是挂载到 /mnt/cdrom 下

    #mount /dev/cdrom /mnt/cdrom

    5. cd /etc/yum.repos.d

    6. # ls 一下如果看到有Centos-Base.repo 文件,朋友可以用 vim Centos-Base.repo 进入编辑 enable=0 ,因为我们是制作本地yun源,所以要禁止Centos-Base.repo 文件从互联网上寻找 mirror(镜像) 。

     

    7.我们在/etc/yum.repos.d 目录下新建一个文件以 .repo结尾,我的是 CentOS.repo 文件

    再用 vim CentOS.repo ,修改下几个重要项:

    [c5-Media]

    name=CentOS 5.11

    baseurl=file:///mnt/cdrom //这里是我之前镜像挂载的路径

    gpgcheck=0

     

    8. # yum list //执行下。到这里本地yum仓库就作好了。

     

     

    现在来制作本地外的yum源,具体的步骤和前面的差不多,但其中也有一些需要变动的,莫怕,我来给朋友一一道来:

     

     

    第一步:# cd /etc/yum.repos.d

    第二步:我是在/etc/yum.repos.d目录下,新建一个文件 touch CentOS-network.repo ;还有就是我们 得进入CentOS-Base.repo文件下,vim CentOS-Base.repo , 修改下 选项 enable=1,这样默认是从互联网上搜索yum源。

    第三步 : 进入CentOS-network.repo 文件下:vim CentOS-network.repo,修改下具体的选项:(这里我就义装个CentOS6为例)

     

    [CentOS-network]

    name=CentOS6

    baseurl=http://172.16.0.1/cobbler/ks_mirror/CentOS -6.6-X86_64 //这里是我的老师在教室里配置的yum仓库,如果没有找到,会默认从互联网上,如网易,搜狐等镜像站点。。。。。。。。。

    enable=1

    gpgcheck=0

     

     

     

    朋友按照我的配置来,我想问题应该不会太大吧。。。

  • 相关阅读:
    2015年蓝桥杯省赛A组c++第3题
    2015年蓝桥杯省赛A组c++第1题
    算法学竞赛常用头文件模板
    Android+Tomcat通过http获取本机服务器资源
    Ubuntu16.04LTS卸载软件的命令
    20个有趣的Linux命令
    Ubuntu16.04开机蓝屏问题解决
    Ubuntu启动时a start job is running for dev-disk-by延时解决
    Cookie与Session
    JS 闭包
  • 原文地址:https://www.cnblogs.com/na2po2lun/p/4133557.html
Copyright © 2011-2022 走看看