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的时间也要看机子的配置而定。
观注快乐程序员公众号,每日分享一点小知识。爱编程,爱生活!
网友评论