rpm,yum及源码安装详解

作者: 快乐程序员 | 来源:发表于2019-05-15 12:15 被阅读0次

    RPM:包统一命名规则,RPM 二进制包的命名需遵守统一的命名规则,用户通过名称就可以直接获取这类包的版本、适用平台等信息。

    RPM 二进制包命名的一般格式如下:

    包名-版本号-发布次数-发行商-Linux平台-适合的硬件平台-包扩展名

    例如,RPM 包的名称是httpd-2.2.15-15.el6.centos.1.i686.rpm,其中:

    httped:软件包名。这里需要注意,httped 是包名,而httpd-2.2.15-115.el6.centos.1.i686.rpm 通常称为包全名,包名和包全名是不同的,在某些 Linux 命令中,有些命令(如包的安装和升级)使用的是包全名,而有些命令(包的查询和卸载)使用的是包名,一不小心就会弄错;

    2.2.15:包的版本号,版本号的格式通常为主版本号.次版本号.修正号;

    15:二进制包发布的次数,表示此 RPM 包是第几次编程生成的;

    el*:软件发行商,el6 表示此包是由 Red Hat 公司发布,适合在 RHEL 6.x(Red Hat Enterprise Unux) 和 CentOS 6.x 上使用;

    centos:表示此包适用于 CentOS系统;

    i686:表示此包使用的硬件平台;

    语法:

    rpm (选项) 包名

    参数:

    -a:查询所有套件;

     -b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称;

     -c:只列出组态配置文件,本参数需配合"-l"参数使用;

     -d:只列出文本文件,本参数需配合"-l"参数使用;

     -e<套件档>或--erase<套件档>:删除指定的套件;

     -f<文件>+:查询拥有指定文件的套件;

     -h或--hash:套件安装时列出标记;

     -i:显示套件的相关信息;

     -i<套件档>或--install<套件档>:安装指定的套件档;

     -l:显示套件的文件列表;

     -p<套件档>+:查询指定的RPM套件档;

     -q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;

     -R:显示套件的关联性信息;

     -s:显示文件状态,本参数需配合"-l"参数使用;

     -U<套件档>或--upgrade<套件档>:升级指定的套件档;

     -v:显示指令执行过程;-vv:详细显示指令执行过程,便于排错。

    --help  在线帮助。

    --httpproxy<主机名称或IP地址>  指定HTTP代理服务器。

    --httpport<通信端口>  设置HTTP服务器或代理服务器使用的通信端口。

    --ignorearch 不验证套件档的结构正确性。

    --ignoreos  不验证套件档的结构正确性。

    --ignoresize 安装前不检查磁盘空间是否足够。

    --includedocs 安装套件时,一并安装文件。

    --initdb  确认有正确的数据库可以使用。

    --justdb  更新数据库,当不变动任何文件。

    --nobulid  不执行任何完成阶段。

    --nodeps  不验证套件档的相互关联性。

    --nofiles  不验证文件的属性。

    --nogpg  略过所有GPG的签名认证。

    --nomd5  不使用MD5编码演算确认文件的大小与正确性。

    --nopgp  略过所有PGP的签名认证。

    --noorder  不重新编排套件的安装顺序,以便满足其彼此间的关联性。

    --noscripts 不执行任何安装Script文件。

    --notriggers 不执行该套件包装内的任何Script文件。

    --oldpackage 升级成旧版本的套件。

    --percent  安装套件时显示完成度百分比。

    --pipe<执行指令>  建立管道,把输出结果转为该执行指令的输入数据。

    --prefix<目的目录>  若重新配置文件,就把文件放到指定的目录下。

    --provides  查询该套件所提供的兼容度。

    使用实例

    实例1:安装包

    命令:

    rpm -ivh 需安装的包名.rpm

    说明:

    RPM包默认安装路径

    通常情况下,RPM 包采用系统默认的安装路径,所有安装文件会按照类别分散安装到表2所示的目录中。

    实例2:升级包

    命令:

    rpm -Uvh 包全名

    实例3:卸载包

    命令:

    rpm -e 包全名

    说明:

    RPM 软件包的卸载要考虑包之间的依赖性。例如,我们先安装的 httpd 软件包,后安装 httpd 的功能模块 mod_ssl 包,那么在卸载时,就必须先卸载 mod_ssl,然后卸载httpd,否则会报错。如果卸载 RPM 软件不考虑依赖性,执行卸载命令会包依赖性错误。

    RPM 软件包的卸载命令支持使用“-nocteps”选项,即可以不检测依赖性直接卸载,但此方式不推荐大家使用,因为此操作很可能导致其他软件也无法征程使用。

    如:rpm -e –nocteps 包全名

    实例4:包查询

    命令:

    rpm -q 包全名

    rpm -qa           #查找系统里的所有包

    rpm -qi 包名    #查询软件包的详细信息

    rpm -ql 包名    #列出软件包所有文件的安装目录

    yum,全称“Yellow dog Updater,Modified”,是一个专门为了解决包的依赖关系而存在的软件包管理器。就好像Windows 系统上可以通过360 软件管家实现软件的一键安装、升级和卸载,Linux redhad系统也提供有这样的工具,就是yum。

    RPM 二进制包安装软件,这两种方法都比较繁琐,需要手动解决包之间具有依赖性的问题,尤其是库文件依赖

    语法

    yum [options][command][package...]

    options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。

    command:要进行的操作。

    package:操作的对象。

    常用命令command

    1.列出所有可更新的软件清单命令:yumcheck-update

    2.更新所有软件命令:yum update

    3.仅安装指定的软件命令:yum install<package_name>

    4.仅更新指定的软件命令:yum update<package_name>

    5.列出所有可安裝的软件清单命令:yum list

    6.删除软件包命令:yum remove<package_name>

    7.查找软件包命令:yum search <keyword>

    8.清除缓存命令:

    yum clean packages: 清除缓存目录下的软件包

    yum clean headers: 清除缓存目录下的 headers

    yum clean oldheaders: 清除缓存目录下旧的 headers

    yum clean, yum clean all (= yum clean packages; yum cleanoldheaders) :清除缓存目录下的软件包及旧的headers

    实例

    实例5:安装 pam-devel

    命令:yuminstall pam-devel

    实例6:移除 pam-devel

    命令:yumremove pam-devel

    说明:

    使用 yum 卸载软件包时,会同时卸载所有与该包有依赖关系的其他软件包,即便有依赖包属于系统运行必备文件,也会被 yum 无情卸载,带来的直接后果就是使系统崩溃。除非你能确定卸载此包以及它的所有依赖包不会对系统产生影响,否则不要使用 yum 卸载软件包。

    实例7:利用 yum 的功能,找出以 pam 为开头的软件包的安装情况

    yum list pam*

    实例8:从 yum 源服务器上查找与关键字相关的所有软件包samba

    yum search samba

    linux下从源代码编译安装软件的一般步骤

    1.下载并解压文件

    如果下的压缩文件的后缀是

    tar.gz 解压用  tar-xzvf xxx.tar.gz

    tar.b2 解压用  tar-xjvf xxx.tar.b2

    tar 解压用  tar -xvfxxx.tar

    2.配置安装路径

    在/usr/local/下创建放置将要安装的软件目录

    mkdir /usr/local/newApp

    cd 到源代码所在的文件夹,配置安装路径

    ./configure --prefix=/usr/local/newApp

    (./configure--prefix=/usr/local/指定安装根目录 .--with指的是安装本文件所依赖的库文件。/configure是源代码安装的第一步,主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系,生成makefile文件)

    3.编译源代码

    make

    如果是多核cpu可以用 make -j来加快编译速度

    4.安装

    make install

    这个过程可能需要root权限

    5.删除源代码以节省磁盘空间

    rm -rf xxx

    第3和第4步可以组合成  make&&makeinstall

    当然你也可以把1到4步用一组合命令来执行

    一般来说时间花费最长的是在make阶段,比如我从源代码安装boost用了10+分钟,从源代码make gcc4.8的源代码用好几个小时,当然这make的时间也要看机子的配置而定。

    观注快乐程序员公众号,每日分享一点小知识。爱编程,爱生活!

    相关文章

      网友评论

        本文标题:rpm,yum及源码安装详解

        本文链接:https://www.haomeiwen.com/subject/rlcpaqtx.html