一、概述
现在Linux上软件的安装方式有多种,有源码包编译,软件包管理器,软件包管理器前端工具,通用二进制编译等。源码包,优点是,灵活性和可定制性比较好,缺点是,技术要求高,操作复杂,虽然网上有编译安装软件的文档,也有很多人在使用,也都是默认或者简单配置后编译的。后来出了软件包管理工具RPM,RPM软件包管理软件方便多了但是它的依赖关系让人头疼,所以又推出出了YUM解决了让人头疼的依赖关系。在这里我给大家介绍一下几种常用Linux软件安装方式。
二、软件包的组成
一个软件包安装之后包含多种类型文件,我们先了解一下它的组成与分布的位置
1、二进制文件
分布的目录:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
2、库文件
分布目录: /lib, /usr/lib, /usr/local/lib
3、配置文件
分布目录: /etc
4、帮助文件(通常这里会教你如何进行安装)
手册:README INSTALL /usr/share/doc
三、程序安装方式
1、通用二进制编译:别人编译好的,解压之后配置就能使用。
这里着重说一下源码包安装,由于一些特殊的个性化设置,我们需要源码包安装一个服务,我觉得它的基本思路就是遇到问题解决问题,当我们源码包安装一个服务时,最常见的问题就是缺少基础程序,也就是库文件(devel包),这时我们通过yum逐条击破安装,直到服务安装成功即可(不在报错)
源码包安装的基本流程:解压→进入目录→./configure --prefix=自己定义的安装路径(这个时候通常就是之前说的遇到问题的时候,提示缺少环境、依赖关系,用yum逐条安装即可)→make→make install
四、RPM软件包管理工具
1、基本功能:
打包、安装、查询升级、校验、写在、数据管理(重建)
2、rpm软件包包含:
文件清单、文件存放路径、提供的功能说明、依赖关系
3、数据库:软件包信息,软件包校验
4、源程序命名方式:
注意:下载软件包时要注意区分操作系统和平台,不然可能会装不上的
6、rpm分包
7、常用软件包下载地址:
-i|–install :安装一个新的软件包
-v :显示安装过程,-vv显示更详细的安装过程
# yum主配置文件详解 #/etc/yum.conf #[main] //定义yum源名称 #cachedir=/var/cache/yum //定义yum的缓存目录 #keepcache=0 //保存缓存 #debuglevel=2 //调试级别 #logfile=/var/log/yum.log //日志文件所在目录 #distroverpkg=redhat-release //验证rpm发行版所使用的密钥文件 #tolerant=1 //忽略已安装的软件 #exactarch=1 //必须做平台的精确匹配 #obsoletes=1 //是否检查废弃的包 #gpgcheck=1 //是否检查rpm包的签名,验证rpm包来源的合法性 #plugins=1 //是否启用插件 # Note: yum-RHN-plugin doesn't honor this. #metadata_expire=1h //缓存文件在本地缓存多长时间
#配置文件 /etc/yum.repos.d/*.repo详解 #[repo] #name=Primary Yum repository #baseurl=http://mirror.sohu.com/fedora-epel/6/i386/ //yum源网址 #enabled={0|1} //{不开启|开启} #gpgcheck={0|1} //{不检查|检查签名} #gpgkey=file:///etc/pki/RPM-GPG-KEY-redhat-base //指定验证用的密钥文件
4、常用的yum命令
//查询、清除建立缓存 #yum list {all|installed|available} :列出软件包 {所有|已安装|可安装} #yum repolist {all|enabled|disabled} :列出yum源 {所有|开启的|未开启的} #yum clean all :清除yum缓存 #yum makecache :生成yun缓存 //安装 #yum install package_name :安装软件包,添加 -y可以自动回答yes #yum reinstall package_name … :重新安装软件包 #yum groupinstall "package-group_name" :安装一个包组 //升级 #yum update package_name :升级软件包 #yum check-update :查询可升级的包 #yum update-to :升级到指定的版本 #yum groupupdate "group_name" :升级包组 //卸载 #yum remove package_name … :卸载一个软件包 #yum groupremove "group_name" :卸载一个包组