Linux每日命令Linux学习之路我用 Linux

rpm,yum及源码安装详解

2019-05-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的时间也要看机子的配置而定。

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

上一篇下一篇

猜你喜欢

热点阅读