Linux软件安装
说明:Linux软件包可分为两种:源码包和二进制包(rpm包)。
1.RPM包管理系统:功能强大,安装,升级,查询和卸载非常简单方便。(相关命令rpm、yum)
2.DPKG包管理系统:由Debian Linux所开发的包管理机制,主要应用在Debian和Ubuntu中。
注意:RPM和DPKG管理系统的原理和形式大同小异,可以触类旁通。
3.源码包安装:获取源代码文件。配置和检测程序(如./configure或cmake等)。软件安装说明和软件说明文件。(如INSTALL或README)。
1、RPM包(二进制包)
包命名格式:包名-版本号-发布次数-发行商-Linux平台-适合的硬件平台-包扩展名
例RPM包的名称:httpd-2.2.15-15.el6.centos.i686.rpm
- httpd:软件包名
- 2.2.15:版本号
- 15:包发布次数
- el*:表示此包由Red Hat公司发布,适用于RHEL 6.x和CentOS 6.x上使用
- i686:表示此包使用的硬件平台
- rpm:RPM包扩展名
1.RPM包默认安装路径
RPM包默认安装路径
安装路径 | 含义 |
/etc/ | 配置文件安装目录 |
/usr/bin/ | 可执行的命令安装目录 |
/usr/lib/ | 程序所使用的函数库保存位置 |
/usr/share/doc/ | 基本的软件使用手册保存位置 |
/usr/share/man/ | 帮助文件保存位置 |
2.rpm包安装
[root@localhost ~]#rpm –ivh 包全名
说明:此命令可一次性安装多个软件包。
[root@localhost ~]#rpm –ivh a.rpm b.rpm c.rpm
通过以下选项进行调整:
1)-nodeps:不检查依赖性安装。
2)-replacefiles:替换文件安装。
3)-replacepkgs:替换软件包。
4)-force:强制安装。
5)-test:测试安装。
6)--prefix:指定目录安装。
2.1apache服务rpm包安装完成后尝试启动
[root@localhost ~]#service 服务名 start|stop|restart|status
2.2启动后查看80端口是否出现(或通过网站输入对应的IP地址访问):
[root@localhost ~]#netstat –tulnp | grep 80
tcp 0 0 :::80:::* LISTEN
3.rpm包的升级
[root@localhost ~]#rpm –Uvh 包全名
-U选项的含义:如果该软件没有安装过则直接安装;若已安装则升级最新的版本。
[root@localhost ~]#rpm –Fvh 包全名
-F选项的含义:如果该软件没有安装,则不会安装,必须安装较低版本才能升级。
4.rpm包的卸载
注意:PRM软件包的卸载要考虑包的依赖性。(软件包卸载和拆楼是一样的,本来先盖的2楼,后盖的3楼,那么拆楼时一定要先拆3楼。)
[root@localhost ~]#rpm –e 包名
5.rpm命令查询软件包
[root@localhost ~]#rpm –q 包名
[root@localhost ~]#rpm –qa
说明:查询系统中所有安装的软件包。
[root@localhost ~]#rpm –qi 包名
说明:表示查询软件包信息,information的首字母。
[root@localhost ~]#rpm –qip 包全名
说明:查询未安装软件包的详细信息,使用“绝对路径+包全名”的方式确定包。
[root@localhost ~]#rpm –ql 包名
说明:命令查询软件包安装的文件列表。
[root@localhost ~]#rpm –qlp 包全名
说明:查询未安装软件包中所有文件打算安装的路径。
[root@localhost ~]#rpm –qf 系统文件名
说明:查询系统文件属于哪个RPM包。
例[root@localhost ~]#rpm –qf /bin/ls
coreutils-8.4-19.el6.i686
[root@localhost ~]# rpm –qR 包名
说明:查询软件包的依赖关系。
[root@localhost ~]# rpm –qRp包全名
说明:查询未安装软件包的依赖性,这里使用绝对路径和包全名。
5.rpm包验证和数字证书
1)rpm包校验:将已安装包文件和/var/lib/rpm/目录下的数据库进行比较,确定文件内容是否被修改。
2)rpm包数字证书校验:校验rpm包本身是否被修改。
5.1rpm包校验
说明:此方式使用的命令格式分为3种。
[root@localhost ~]#rpm –Va
[root@localhost ~]#rpm –V 已安装的包名
[root@localhost ~]#rpm –Vf 系统文件名
5.2rpm数字证书验证
说明:数字证书默认在系统/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6位置处。
[root@localhost ~]#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
--import表示导入数字证书。
[root@localhost ~]#rpm –qa | grep gpg-pubkey
6.提取rpm包文件(rpm2cpio命令、cpio命令)详解
[root@localhost ~]#rpm2cpio 包全名 | cpio -idv .文件绝对路径
7.重建rpm数据库(修复损坏的rpm数据库)
1)删除当前系统中已损坏的rpm数据库
[root@localhost ~]#rm –rf /var/lib/rpm/db.*
2)重建RPM数据库,执行如下命令
[root@localhost ~]#rpm rebuliddb
注意:系统一旦被黑客“光顾”,可按照以下步骤对文件进行检测。
1)[root@localhost ~]#rpm –qf /etc/rc.d/init.d/smb
2)[root@localhost ~]#rpm –ql –dump samba|grap /etc/rc.d/init.d/smb
3)[root@localhost ~]#ls –l /etc/rc.d/inti.d/smb
注意:如果确信rpm数据库遭到修改,基于光盘来源获取Samba rpm文件进行检查。
[root@localhost ~]#rpm –ql –dump –p /mnt/cdrom/Fedora/RPMS/samba-3.0.23c-2.i386.rpm | grep /etc/rc.d/init.d/smb
8. rpm包的yum安装
说明:通过使用yum命令安装软件,解决依赖性问题。
8.1网络yum源的搭建(wget命令)
注意:网络yum源配置文件位于/etc/yum.repos.d/目录下,扩展名为“*.repo”的文件都是yum源的配置文件。
8.2本地yum源
注意:在/etc/yum.repos.d/目录下修改CentOS-Media.repo文件。
1)放入CentOS安装光盘,并挂载光盘到指定位置。
2)修改其他几个yum源配置文件的扩展名,让它们失效,只有扩展名为“*.repo”的文件才能作为yum源配置文件。
3)修改光盘yum源配置文件CentOS-Media.repo
8.3yum查询命令
1)yum list:查询所有已安装和可以安装的软件包。
2)yum list 包名:查询执行软件包的安装情况。
3)yum search 关键字:从yum源服务器上查找与关键字相关的所有软件包。
4)yum info 包名:查询执行软件包的详细信息。
8.4yum安装命令
[root@localhost yum.repos.d]#yum –y install包名
8.5yum升级命令
1)yum –y update:升级所有软件包。
2)yum –y update 包名:升级特定的软件包。
8.6yum卸载命令
注意:使用yum卸载软件包,同时会卸载所有与该包有依赖关系的其他软件包。除非你能确定卸载此包以及它的所有依赖不会对系统产生影响,否则不要使用yum卸载软件包。
yum卸载命令基本格式:
[root@localhost yum.repos.d]# yum remove 包名
8.7yum查询、安装、卸载软件组包含的软件
[root@localhost ~]#yum groupinfo 软件组名
[root@localhost ~]#yum groupinstall 软件组名
#安装指定软件组,组名可以由grouplist查询出来
[root@localhost ~]#yum groupremove 软件组名
#卸载指定软件组
9.源码包安装和卸载教程
注意:源码包指的是软件的源代码和压缩包。
9.1源码包安装软件
1)下载apache源码包;
2)将源码包进行解压缩;
3)进入解压目录;
4)./configure软件配置与检查;
--prefix=/usr/local/apache2选项的含义为指定安装目录。
5)make编译;
6)make install 安装;
注意:如果“./configure”或“make”编译中报错,则在重新执行命令前一定要执行“make clean”命令,它会清空makefile文件或编译产生的“.o”头文件。(或者删除解压的目录文件,重新编译安装。)
9.2源码包卸载
注意:源码包安装在“/usr/local/目录下”。源码包的卸载只需要找到软件安装位置,直接删除所在的目录即可,不遗留任何垃圾文件。需要注意的是,在删除软件之前,应先将软件停止服务。
例[root@localhost ~]#rm –fr /usr/local/apache2/
10.diff命令补丁文件的生成和使用
diff命令基本格式:
[root@localhost ~]#diff 选项old new
#比较old和new文件的不同
[root@localhost test]#diff –Naur /root/test/old.txt /root/test/new.txt > txt.patch
#比较两个文件的不同,同时生成txt.patch补丁文件
[root@localhost test]#patch –pn <补丁文件
#按照补丁文件进行更新
-pn选项中,n为数字(例如p1、p2、p3等),pn表示按照补丁文件中的路径,指定更新文件的位置。
例[root@localhost test]#patch –p3 < txt.patch
11.脚本安装。(略)