一、Linux中软件的安装
Linux中软件的安装主要有两种形式:一种是直接下载源代码包自行编译后安装,另一种直接获取rpm软件包进行安装。
不论是通过那种途径安装软件都具有一下4个特点:
1.都有配置文件,通过设置配置文件来改变程序启动时的运行特征
2.都具有二进制的程序主体
3.都自带库文件,供程序主体进行调用
4.都带有帮助文件,对程序的使用方法进行说明
软件的安装路径:
除了自行下载源码编译安装的软件可以自定义安装路径之外,rpm包的安装都是按照自身预设的安装路径进行安装。主要有以下几类:
1./:系统根目录,在此安装的文件通常是os在运行时需要调用到的程序
2./usr:此目录下一般情况下是提供基本服务的软件
3./usr/local:此目录下一般情况下是用户自行安装的第三方软件
系统相关:
配置文件路径:/etc
二进制文件路径:/bin 、/sbin
库文件路径:/lib
系统提供功能服务相关
配置文件路径:/etc
二进制文件路径:/usr/bin /usr/sbin
库文件:/usr/lib
第三方软件:
配置文件路径/usr/local/etc
二进制文件路径:/usr/local/bin /usr/local/sbin
库文件:/usr/local/lib
说明文件主要都存放在/usr/share/man和/usr/local/share/man
RPM(RedhatPackage Manager)是由redhat公司提供的软件包管理器 ,可以实现软件包的安装、查询、卸载、升级以及校验等但是rpm不能很好的解决软件之间的依赖关系
软件包的安装方法之rpm安装相关操作
rpm包的组成:name-version-release.arch.rpm
name:表示包的名称,包括主包名和分包名
version:表示包的版本信息
release:用于标识rpm包本身的发行号,可还包含适应的操作系统
arch:表示主机平台,noarch表示此包能安装到所有平台上面
gd-devel-2.0.35-11.el6.x86_64.rpm
gd是这个包的主包名,devel是这个包的分包名,2.0.35是表示版本信息,2为主版本号,0表示次版本号,35为源码包的发行号也叫修订号,11.el6中的11是rpm的发行号,el6表示RHEL6,x86_64是表示适合的平台。
rpm安装功能:
rpm�Cihv PACKAGENAME
-i安装对应软件包
-v显示安装过程
-h以#显示安装进度,一个#表示2%的进度
-vh 显示安装读条
--nodeps:忽略依赖关系安装
--test:测试安装
--replacepkgs:重新安装
rpm卸载功能
rpm -e PACKAGENAME 卸载软件包
--nodeps忽略依赖关系卸载
rpm的查询功能:
rpm�Cq PACKAGENAME
-qa:查询所有本机安装过的包
rpm�Cqa | grep ‘pattern’查询pattern名的软件包
rpm�Cql PACKAGENAME 列出此安装包生成了那些文件
-qc PACKAGENAME 列出此安装包生成了那些配置文件
-qd PACKAGENAME 查询包安装生成的帮助文档
-qf FILENAME 查看文件是由哪些安装包产生的
-qi PACKAGENAME 查询包的摘要信息
rpm �Cq �Cscripts PACKAGENAME查询包相关的脚本
preinstall: 安装前脚本
postinstall: 安装后脚本
preuninstall: 卸载前脚本
postuninstall: 卸载后脚本
升级功能:
rpm�CUvh PACKAGENAME 安装过的直接升级,否则直接安装新版本
-FvhPACKAGENAME 只对安装过的软件升级
校验功能:
rpm �CV PACKAGENAME 校验已经安装过的文件是否被人修改过
注意:rpm的安装查询是基于rpm生产的数据库,数据库的重建一般使用rpm �Crebuilddb, rpm �Cinitdb是新建数据库,rpm在安装时会产生日志文 件,/root/install.log文件记载了安装记录
1.rpm软件管理器不能很好的解决软件直接的依赖关系
2.卸载已经安装的rpm软件包只需要指定报名即可
3.先安装bind之后在安装bind-chroot即可解决依赖关系
4.列出软件包bind生成了那些文件
5.查看软件包bind生成了那些配置文件
6.查看安装bind软件包生成的帮助文档
7.查询软件包bind的摘要信息
二、使用yum软件升级器进行安装
yum是YellowdogUpdater Modified的缩写,它是一种基于自身软件库的安装,它可以通过查询软件库的连接ftp:// http:// file:///在远程服务器或者指定的本地文件库中获取要安装的软件包,可见软件库的配置在yum的使用中是非常重要的一环。并且yum是基于rpm的一个管理工具,它能自动解决安装rpm包产生的依赖关系
yum库文件的配置:
通过/etc/yum.conf 和 /etc/yum.repos.d目录下的且以.repo结尾的文件进行对yum软件库的设置
yum的配置文件 /etc/yum.conf
yumrepository仓库的配置文件/etc/yum.repos.d/*.repo
方式一:用本地光盘搭建yum仓库
1.先下载一个iso镜像文件,将其挂载到/media下
2.设置yum仓库的配置文件
配置文件的具体格式:
[iso]是仓库名repository_ID,名字可以随便取
name是yum的名称也可以随便取“=”两边不能有空格
baseurl指定rpm包的路径,该路径下必须有repodata这个文件
enabled默认为1,表示启动此仓库,0表示不启用
gpgcheck默认也是1,1表示检查公钥,0表示不检查,当检查公钥时要指定gpgkey的地址
cost默认是2000,越小越先访问
3.安装软件并且可以自动解决包彼此之间的依赖关系
卸载时依赖卸载文件的包也会卸载
方式二:搭建外网的yum仓库(sohu的yum仓库)
1.设置yum仓库的配置文件
2.导入yum源的gpgkey
方式三:自己手动创建Yum仓库
createrepo:生成repodata软件信息仓库,然后搭建该目录的yum仓库
rpm包可以在下面两个网站去搜索
http://rpm.pbone.net
http://www.rpmfind.net
1.首先要安装createrepo
2.为演示效果我复制了几个rpm包到hailian目录下
3.配置文件设置好之后就可以进行安装了
yum的常用功能介绍:
软件包安装 yum install PACKAGENAME1PACKAGENAME2 …
yum�Cy:自动回答为yes
reinstall packagename …重新安装软件包
groupinstall“package-group_name”:安装一个包组
查询yum list
list{all | installed | available}
all显示所有安装过的,未安装的软件包
available查询在软件库中可安装尚未安装的软件包
installed:查询已经安装过的软件包
repolist{all| enabled | disabled}列出yum源
all:表示所有的yum源
enabled:表示开启的
disabled:未开启的
infoPACKAGENAME:查看软件包信息,也可以查询未安装的软件包信息
groupinfo“group_name 查询包组的信息
makecache:生成yum缓存
软件包卸载 yum remove PACKAGENAME
清除软件列表缓存 yum clean {packages|metadata|expire-cache|rpmdb|plugins | all}
yumclean all 清除缓存目录(/var/cache/yum)下的软件包以及旧的headers
localinstall:安装本地软件包,rhel6直接用yum install就可以了
--nogpgcheck:安装时不对软件包做验证
升级yum update
check-update:查询可升级的包
updatepackagename:升级软件包
updateto:升级到指定的版本
groupupdate“group_name”:升级包租
卸载yum remove
removepackage_name …:卸载一个软件包
groupremove“group_name”:卸载一个包组
三、软件包安装之tar源码包编译安装
http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.25.tar.bz2下载apache的tar源码包地址
1.安装tar源码包可以先安装开发工具,可以减少安装相关的依赖性包
RHEL6,CentOS6:”Developmenttools””Server Platform Development””Desktop Platform Develoment”
RHEL5,CentOS5:”Developmenttools””Develoment Libraries”
我们以rhel5为例安装开发工具使用命令:
yum�Cy “Development tools””Development Libraries”
我们在ftp上下载一个tar源码包
2.我们把下载好的httpd-2.2.25.tar.bz2先解压通过命令tar xf httpd-2.2.25.tar.bz2,然后cd httpd-2.2.25 进入到解压的目录
3.通过./configure 检查编译环境,然后make进行编译最后就可以编译安装了通过make install
用tar安装包后需要修改几个地方,使得tar安装后能与系统识别的路径相关联
1)改PATH环境变量
写到/etc/profile.d/*.sh--------->source /etc/profile里面写安装软件后bin的路径
或者直接export PATH=/usr/local/apache/bin:$PATH
2)添加库文件的搜索/etc/ld.so.conf etc/ld.so.conf.d/*.conf 在/etc/ld.so.conf.d/*.conf写lib的路径 ldconfig �Cv
3)帮助文档的使用/etc/man.conf MANPATH在/etc/man.config写man手册的路径
echo“MANPATH/usr/local/apache/man”>>/etc/man.config
然后就可以直接使用man httpd等命令了,不在配置文件中指定路径可以直接man �CM/usr/local/apache/man httpd
4)头文件用链接ln �Csv 源目的/usr/include 把头文件的路径链接到系统头文件中
ln�Csv /usr/local/apache/include /usr/include/apache
用apachectl start开启服务
四、软件包安装之rpm源码包src安装
rpm包可以在下面两个网站去搜索
http://rpm.pbone.net
http://www.rpmfind.net
下载nginx的rpm源码包,通过此包来安装nginx,所需包的下载地址
http://mirrors.sohu.com/fedora-epel/6Server/SRPMS/nginx-1.0.15-5.el6.src.rpm
ftp://195.220.108.108/linux/epel/6/x86_64/GeoIP-devel-1.4.8-1.el6.x86_64.rpm
ftp://195.220.108.108/linux/epel/6/x86_64/GeoIP-1.4.8-1.el6.x86_64.rpm