linux中软件的安装
linux中软件的安装主要有两种形式:一种是直接下载源代码包自行编译后安装;另一种直接获取rpm软件包进行安装。

不论是通过哪种途径安装的软件都具有以下4个特点:

1. 都具有配置文件,通过设置配置文件来改变程序启动时的运行特征;

2. 都具有二进制的程序主体;

3. 都自带库文件,共程序主体进行调用;

4. 都自带帮助文件,对程序的使用方法进行说明。

软件的安装路径:
除了自行下载源码编译安装的软件可以自定义安装路径之外,rpm包的安装都是按照软件自身预设的安装路径进行安装。主要有以下几类:
1. / :系统根目录,在此安装的文件通常是os在运行时需要调用到得程序;
2. /usr :此目录下的一般情况下是提供基本服务的软件。
3. /usr/local :此目录下一般情况下是用户自行安装的第三方软件。

系统相关:
i.配置文件路径:/etc
ii.二进制文件路径:/bin、/sbin
iii:库文件路径:/lib
系统提供功能服务相关:
i:配置文件路径:/etc
ii:二进制文件路径:/usr/bin、/usr/sbin
iii:库文件:/usr/lib
第三方软件:
i:配置文件路径/usr/local/etc、/usr/local/APP/etc
ii:二进制文件路径:/usr/local/bin、/usr/local/sbin
iii:库文件:/usr/local/lib

说明文件主要都存放在:/usr/share/man和/usr/local/share/man

下面就详细说一说到底如何在linux上安装软件:

二进制软件包的安装
[root@server155 axel-2.4]#./configure
The strip option is enabled. This should not be a problem usually, but on some
systems it breaks stuff.

Configuration done:
Internationalization enabled.
Debugging disabled.
Binary stripping enabled
[root@server155 axel-2.4]# make
[root@server155 axel-2.4]# make install
总共3个命令即完成二进制程序的安装。

使用RPM对软件包进行安装:
rpm 是redhat package manger的缩写,是由redhat公司提供的软件包管理器。
常用的功能:
查询 rpm –q
-qa 查询所有本机安装过的包
-q PACKAGENAME
查询已安装软件包的版本
eg :rpm –qa #显示本机装过的软件包
rpm –qa | grep “xxx” 查询xxx名的软件包
-ql PACKAGENAME
列出此安装包生成了那些文件
-qc PACKAGENAME
列出此安装包生成了哪些配置文件
-qd PACKAGENAME
列出此安装包生成了那些文档
-qf FILENAME
查看文件是由那些安装包产生的
-qi PACKAGENAME
查看软件包信息

安装 rpm –ivh PACKAGENAME
-i 安装对应软件包
-vh 显示安装读条
--nodeps 忽略依赖关系安装

卸载 rpm -e PACKAGENAME
卸载软件包
--nodeps 忽略依赖关系卸载

升级 rpm -Uvh PACKAGENAME 安装过的直接升级;否则直接安装新版本
-Fvh PACKAGENAME 只对安装过的软件升级

校验 rpm –V PACKAGENAME 校验已经安装过的文件是否被人修改过

注意:rpm的安装查询是基于rpm生成的数据库,数据库的重建一般使用rpm –rebuilddb
和rpm –initdb,前者直接重建后者则是在未检测到当前数据库是才创建;rpm在安装时会产生日志文件,/root/install.log文件中记载了安装记录。

使用yum软件升级器进行安装:
yum是Yellowdog Updater Modified 的缩写,它是一种基于自身软件库的安装。
它可以通过查询软件库中的链接ftp:// http:// file:///在远程服务器或者指定的本地文件库中获取要安装的软件包。可见软甲库的配置在yum的使用中是非常重要的一环。
yum库文件的配置:
通过/etc/yum.conf和/etc/yum.repos.d目录下的、且已.repo结尾的文件进行对yum软件库的设置。

配置文件的具体格式:
[仓库名]
name=字符串 #起标示作用
baseurl= {ftp://|http://|file:///}软件库的链接
gpgcheck={0|1} #下载到软件包之后是否进行校验

eg:
[base]
name=Instructor Server Repository
baseurl=ftp://instructor.example.com/pub/Server
gpgcheck=0

yum的常用功能:
软件包安装 yum install PROGRAMNAME1 PROGRAMNAME2 PROGRAMNAME3…

软件包升级 yum update PROGRAMNAME

软件包安装情况查询
yum list {installed|available|PROGRAMNAME|all}
installed 查询已经安装过的软件包
available 查询在软件库中可安装尚未安装的的软件包
PROGRAM 按具体名称查询安装过的软件包
all 显示有所有安装过的、未安装过的软件包

软件包卸载 yum remove PROGRAMNAME

清除软件列表缓存
yum clean all
#查询信息从软件库同步到本地缓存,此命令用于清除

查看文件关联的软件包
yum provides FILENAME
#FILENAME需要提供文件的绝对路径
eg:

[root@server28 myscript]# yum provides /boot/grub
Loaded plugins: rhnplugin
This system is not registered with RHN.
RHN support will be disabled.
Importing additional filelist information
grub-0.97-13.5.i386 : GRUB - the Grand Unified Boot Loader.
Repo : base
Matched from:
Filename : /boot/grub

grub-0.97-13.5.i386 : GRUB - the Grand Unified Boot Loader.
Repo : installed
Matched from:
Other : Provides-match: /boot/grub

查看软件包信息:
yum info PROGRAMNAME
eg:

[root@server28 myscript]# yum info grub
Loaded plugins: rhnplugin
This system is not registered with RHN.
RHN support will be disabled.
Installed Packages
Name : grub
Arch : i386
Version : 0.97
Release : 13.5
Size : 1.0 M
Repo : installed
Summary : GRUB - the Grand Unified Boot Loader.
URL : http://www.gnu.org/software/grub/
License : GPL
Description: GRUB (Grand Unified Boot Loader) is an experimental boot loader
: capable of booting into most free operating systems - Linux, FreeBSD,
: NetBSD, GNU Mach, and others as well as most commercial operating
: systems.

使用本地软件包文件进行安装:
yun localinstall 软件包的绝对路径

组件包安装: yum groupinstall GROUPPROGRAMNAME

组件包查询: yum grouplist GROUPPROGRAMNAME

组件包删除: yum groupremove GROUPPROGRAMNAME

组件包信息查询:yum groupinfo GROUPPROGRAMNAME