1)源码(Source code)
2)rpm(基于RPM--Redhat Package Manager,软件包管理器的rpm软件包,常用)
3)dbkg(基于Debian的软件包管理器)
二、软件包的组成:
二进制文件、配置文件、库文件、文档。
三、软件包的安装方式:
3.1 手动编译安装源代码
一般就是“三步走”完成源码的安装。
1)./configure --分析安装平台环境
在软件包解压完毕之后,我们进入源码目录,一般都会存在configure和README这么两个文件,README详细的介绍了这个软件所能完成的功能、授权许可、安装需求、安装注意事项、安装方式等等,所以在安装软件前,一定要事先阅读这个README文件,确保安装的正确性。configure文件一般是个可执行文件,可以在当前目录下直接输入 “./configure”进行软件安装的环境测试.源码安装都需要GCC或者CC编译器.最后测试成功会生成makefile文件,为下一步使用make编译做准备。
make工具最主要的功能就是通过makefile文件来实现的,makefile文件是按照某种语法来进行编写的,文件中定义了各个源文件之间的依赖关系,并说明了如何编译源文件并生成可执行文件,它通过描述各个源程序之间的关系让make工具自动完成编译工作。
a.在/etc/ld.so.conf.d/新建一个以.conf结尾的文件,并将此程序的库文件路径添加至此文件中
如/usr/local/apache/lib
b.执行ldconfig,让系统重新装载库文件;
#ldconfig -v
2、可执行程序路径的导出方法:
#export PATH=$PATH:/usr/local/apache/bin
也可以写入配置文件:
写入/etc/profile:--对所有用户生效
写入~/.bash_profile--仅对当前用户生效
3、man文件路径导出方法
编辑/etc/man.config文件,新增加如下一行;
例如:MANPATH /usr/local/apache/man
4、头文件导出方法
创建链接(例如:ln -sv /usr/local/apache/lnclude /usr/include/apache)
3.2 RPM包方式安装
RPM包管理方式的优点是:安装简单方便,因为软件已经编译完成打包完毕,安装只是个验证环境和解压的过程。此外通过RPM方式安装的软件,RPM工具都会记录软件的安装信息,这样方便了软件日后的查询,升级和卸载。
RPM工具的使用分为安装、查询、验证、更新、删除等操作。
安装:
rpm -i /pathrpm_package
rpm -ivh --nodeps --force
v;显示安装信息;
h:以#显示安装进度(一个#:2%的进度)
--nodeps 忽略依赖关系
--force 强制安装
卸载:
rpm -e NAME --nodeps
升级:
rpm -Uvh /pathrpm_package
rpm -Fvh /pathrpm_package
-Uvh 老版本的安装了的就升级安装,没安装就直接安装新版本
-Fvh 老版本必须的安装
--force 强行升级
查询:
rpm -q NAME--查询软件包的版本信息
rpm -qa --查询当前系统上安装的软件包 支持文件名通配
rpm -qi name --查询软件包的描述信息
rpm -ql name --查询软件包安装后都生成了那些文件
rpm -qc name --查询软件的配置文件所存放的位置
rpm -qd name --查询软件文档所存放的位置
rpm -q --scripts name --查看软件包安装时执行的脚本
rpm -qf filename|path --查询那个文件是由那个软件包安装生成的
rpm -q --changelog name --查看每一次的制作都改进了那些内容
rpm -qpi name --查看未安装软件包的描述信息
-p --查看未安装软件包的信息
校验:
rpm -V
属性:
S:文件大小改变
M:权限,文件类型改变
5:MD5校验值改变
D:设备的主/次号不匹配
L:路径发生改变
U:属主发生改变
G:属组发生改变
T:最近一次的修改时间发生了变化
rpm重建数据库;
#rpm --initdb --重新初始化数据库,如存在则不覆盖
#rpm --rebuilddb --如果存在则覆盖之
/var/lib/rpm--rpm数据库
rpm对软件包的验证:
导入公钥:
rpm --import PATH
例如:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release--导入redhat的公钥。
验证:
rpm -k[ --nodigest(不验证md5) --nosignature(不验证签名)]NAME.rpm
另外,基于RPM安装rpm包还可以利用yum。
yum特点
简洁的配置文件(/etc/yum.conf)
自动解决增加或删除rpm包时遇到的倚赖性问题
使用方便
保持与RPM数据库的一致性
yum客户端的配置文件:
1、/etc/yum.conf
2、/etc/yum.repos.d/*.repo
.repo文件便是定义yum源的文件。
name=yum源的完整名称;
baseurl=yum源的地址(eg:ftp://172.16.0.1/pub/Server)
gpgcheck=0|1(验证签名)
enabled=0|1(是否生效)
yum的使用方法
list {all|installed|avaliable|updates} --显示所有已安装过的软件的信息和所有可用软件的信息。
install package_name package_name2 ...--安装软件
-y --不用再确认;
remove|erase package_name1 package_name2 ...--卸载软件
update package_name1 --软件升级
check-update --检查更新
info --显示软件包的摘要信息
provides|whatprovides file|path --显示文件是哪个软件包安装生成的
downgrade pacage_name1... --降级
reinstall package_name1 ... --重装软件包
repolist [all|enabled|disabled] --显示yum源
clean {all}--清空yum缓存
grouplist --显示软件包组
groupinstall "groupname" --安装一组软件(!!组名中间有空格必须用引号引起来)
groupremove "groupname" --卸载一组软件
groupinfo "groupname" --查看有关组的信息
localinstall /path-rpm_file --本地安装软件
--nogpgcheck (不检测签名)
localupdate --本地升级软件
search keyword --根据关键字搜索软件
primary.xml.gz --每一个rpm包的文件名,及软件包之间的依赖关系
filelists.xml.gz 此yum源中每一个rpm包中文件的文件相关信息
other.xml.gz 额外信息,比如changelog等
repomd.xml:定义了以上三个文件的校验码和时间戳
comps-*.xml(comps-rhel5-server-core.xml):定义了软件包的分组信息
#createrepo PATH
-g 创建关于软件包的分组信息
-q 工作于静默模式下
-v 显示详细信息