在Linux下软件分三种:
1.绿色软件:即不用安装直接就能用的软件
2.rpm安装包:以rpm结尾的可执行文件 
3.源码文件:没有进行过编译和打包的文件,需要编译后再进行安装

一、绿色软件的安装
这类软件安装最简单,只需要将复制到/usr/bin目录下面,即可完成安装;

二、rpm安装包安装
使用rpm命令来安装rpm程序:以安装Java JDK为例:
1.首先要检查在当前系统中是否安装了jdk: 使用命令: rpm -qa | grep jdk  如果什么执行命令后,什么也没显示就代表没有安装该程序;
2.下面我们将java的rpm包上传到Home目录下  jdk-7u79-linux-x64.rpm

3.执行安装命令:rpm -ivh jdk-7u79-linux-x64.rpm  然后系统会提示你是否安装,输入y

4.安装完成以后想查看是否安装成功:
 先使用rpm -qa | grep jdk   命令来查询看已安装过的软件中是否存在这个软件,我们查到的结果是  jdk-1.7.0_79-fcs.x86_64
 然后使用 rpm -qc jdk-1.7.0_79-fcs.x86_64  可以查看软件安装到哪个目录下面了;

注:每个rpm包在软件商打包的时候,指定的安装目录都不一样,所以不能指定软件的安装目录,但是可以使用上面的方法查询安装的目录;

5.配置JDK的环境变量
Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的环境变量。
系统级:/etc/profile  一些系统级的环境变量都会在这里面配置(强烈不不不不推荐用户将程序的系统变量配置在这里面,因为会影响其他用户的使用)
用户级:~/.bash_profile 在这里配置环境变量只有当前登录的用户才用得到,强烈推荐在这里配置
命令:vi ~/.bash_profile  然后在PATH下面输入以下命令:

保存退出以后,需要使该配置文件生效,使用命令  source ~/.bash_profile  可以使用文件配置文件生效

然后输入  java -version  如果能显示Java的版本号,就表明安装成功了

下面来详细说明一下rpm的参数的功能:

1、安装
rpm -i /PATH/TO/PACKAGE_FILE
-h: 以#显示进度;每个#表示2%; 
-v: 显示详细过程
-vv: 更详细的过程

rpm -ivh /PATH/TO/PACKAGE_FILE

--nodeps: 忽略依赖关系;
--replacepkgs: 重新安装,替换原有安装;
--force: 强行安装,可以实现重装或降级;

安装jdk

配置环境变量:编辑/etc/profile 或者 ~/.bash_profile
export JAVA_HOME=/usr/java/jdk1.7.0_71
    export PATH=$PATH:$JAVA_HOME/bin

2、查询
rpm -q PACKAGE_NAME: 查询指定的包是否已经安装
rpm -qa : 查询已经安装的所有包
rpm -qi PACKAGE_NAME: 查询指定包的说明信息;
rpm -ql PACKAGE_NAME: 查询指定包安装后生成的文件列表;
rpm -qc PACEAGE_NEME:查询指定包安装的配置文件;
rpm -qd PACKAGE_NAME: 查询指定包安装的帮助文件;
rpm -q --scripts PACKAGE_NAME: 查询指定包中包含的脚本
rpm -qf /path/to/somefile: 查询指定的文件是由哪个rpm包安装生成的;

如果某rpm包尚未安装,我们需查询其说明信息、安装以后会生成的文件;
rpm -qpi /PATH/TO/PACKAGE_FILE
rpm -qpl

3、升级
rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE: 如果装有老版本的,则升级;否则,则安装;
rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的,则升级;否则,退出;
--oldpackage: 降级

4、卸载
rpm -e PACKAGE_NAME
--nodeps

5、校验
rpm -V PACKAGE_NAME

6、重建数据库
rpm 
--rebuilddb: 重建数据库,一定会重新建立;
--initdb:初始化数据库,没有才建立,有就不用建立;

7、检验来源合法性,及软件包完整性;
加密类型:
对称:加密解密使用同一个密钥
公钥:一对儿密钥,公钥,私钥;公钥隐含于私钥中,可以提取出来,并公开出去;
单向:

# ls /etc/pki/rpm-gpg/
RPM-GPG-KEY-redhat-release

rpm -K /PAPT/TO/PACKAGE_FILE
dsa, gpg: 验正来源合法性,也即验正签名;可以使用--nosignature,略过此项
sha1, md5: 验正软件包完整性;可以使用--nodigest,略过此项

二、使用yum 安装程序
在使用rpm安装程序的时候,每次只能安装一个安装包,并且如果要安装的安装包还依赖于其他的程序,那还需要一步一步的去解决依赖关系,所以非常麻烦,幸好有yum 他可以解决程序之间的依赖关系;
在使用yum 安装的时候,他首先会根据程序名称到yum 源中下载要安装的软件包和依赖包,然后进行安装;
下面我们以安装httpd来说明:
1.检查yum 源中是否存在httpd的安装包 使用命令 yum search httpd

2.在结果中,这两上是我们想要的,一个是32位安装包,一个是64位安装包,下面是安装了 使用命令 yum install httpd-devel.x86_64

安装过程有点慢, 因为yum 需要先下载安装包,然后解决依赖关系,所以较慢。
3.怎么查看我们安装到哪个目录下面了呢,使用rpm 命令,如上面,命令: rpm -qc `rpm -qa | grep httpd`
4.启动httpd  命令:service httpd start
5.关闭防火墙,并访问httpd默认端口 命令:service iptables stop  然后在浏览器中访问:http://ip:80 如果弹出Apache的页面,说明成功了

6.启动以后就可以使用命令:netstat -nptl  查看到httpd监听的端口等信息

yum帮助文档:http://vbird.dic.ksu.edu.tw/linux_basic/0520rpm_and_srpm_4.php

三、源码文件安装(这个最复杂)
源码文件安装要遵循六大步骤:
1、下载
2、查看源码:查看源代码,查看软件是什么语言、什么开发平台开发的
3、准备编译环境:根据源代码的开发环境去下载安装,相应的编译环境;
4、检查(依赖,兼容),预编译:在真正编译前要解决软件的依赖关系和依赖的软件
5、编译:编译软件
6、安装:安装
下面我们以安装nginx这个软件为例:
1.下载地址:http://nginx.org/en/download.html  源码软件一般下载下来都是一个压缩包

2.查看代码的开发语言和平台,解压后通过查看src下的core目录下的文件扩展名及代码,可以看出该软件的开发语言是C和C++;

3.那我们要安装的编译器就是gc和gc++ 还是使用yum工具,运行命令:yum search gc 找到我们要安装的gc软件  gc-devel.x86_64   
然后命令:yum install gc-devel.x86_64; yum install gcc-c++
4.预编译,先解压Nginx的压缩包 使用命令: tar -zxvf  压缩包名  进行解压
解压完成后,要进行预编译,进么该目录下会看一个configure 文件,通过这个文件我们可以指定软件的安装目录,同时还会报出一些软件依赖,然后我们要解决这些依赖;

默认的情况下我们的软件都放在/usr/bin/下面;仍然使用命令: ./configure --prefix=/usr/bin/nginx-1.8.0

我们看到有一个叫PCRE 的软件依赖,那我们依然使用yum 进行安装这个PCRE

安装完成PCRE以后,继续运行命令: ./configure --prefix=/usr/bin/nginx-1.8.0

这时我们又看到,又一个叫zlib的依赖,然后继续解决依赖(就是这么让人xx疼);

安装完成以后,发现没再报什么依赖错误,我们就可以安心的进行下一步了;
5.编译
运行命令:make 进行编译
6.安装软件 运行命令:make install
在安装完成以后,到预编译的目录下面去查看一下文件是否安装在该目录下面,如果有就说明我们安装成功了