在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
在安装完成以后,到预编译的目录下面去查看一下文件是否安装在该目录下面,如果有就说明我们安装成功了

Linux学习笔记4-三种不同类型的软件的安装(绿色软件、rpm软件、源代码软件)的更多相关文章

  1. Linux 学习笔记 1 使用最小的系统,从分区安装系统开始

    我们常用的linux系统在安装过程中大多都省略了对系统进行分区的操作,以至于后期,不了解什么是分区以及分区当中最基本的一些概念, 我们不说最细的知识,只求了解这个过程,那直接步入正题,开始第一节的学习 ...

  2. Linux学习笔记 (三)Vi文本编辑器

    vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任何版本,vi编辑器是完全相 ...

  3. JavaScript新手学习笔记3——三种排序方式(冒泡排序、插入排序、快速排序)

    每种编程语言学到数组的时候,都会讲到排序算法,当时学C语言的时候,卡在排序算法.今天来总结一下javascript中如何实现三种排序算法. 1.冒泡排序(默认升序排列哦) 原理: 冒泡排序的原理,顾名 ...

  4. Python学习笔记(三)字符串类型及其操作(2)

    1.字符串的表示 字符串是字符的序列表示,可以由一对单引号(‘).双引号(“)或三引号(’‘’)构成.其中,单引号.双引号和三引号都可以表示单行字符串,但是只有三引号可以表示多行字符串 在使用双引号时 ...

  5. Javascript学习笔记:2种其他类型转换为数字Number类型的方式

    ①使用parseInt()/parseFloat()(在ECMAScript6中是Number.parseInt()/Number.parseFloat()) console.log(parseInt ...

  6. Linux学习笔记(三)

    昨天将计算机概论部分算是看完了,然后我又将后面的内容过了一遍,因为我本身对Linux有一些了解,所以就跳到这文件权限与目录管理配置这章了,话不多说,开始做笔记. Linux文件权限与目录配置 群组 所 ...

  7. 慕课Linux学习笔记(三)系统分区

    Linux的系统分区 主分区:最多四个 扩展分区:最多只能一个,不能写入数据,只能包含逻辑分区 逻辑分区 必须分区: / (根分区) Swap 分区 (交换分区,内存的两倍,不超过2GB,如果内存大于 ...

  8. MySQL学习笔记:三种组内排序方法

    由于MySQ没有提供像Oracle的dense_rank()或者row_number() over(partition by)等函数,来实现组内排序,想实现这个功能,还是得自己想想办法,最终通过创建行 ...

  9. Linux学习笔记(三)Linux常用命令:链接命令和文件查找命令

    一.链接命令 ln -s [原文件] [目标文件] (link) -s意为创建软连接 硬链接和软连接 硬链接的特点: (1)拥有相同的 i 结点和block块,可以看作是同一个文件 (2)可以通过 i ...

  10. Linux学习笔记(三)目录和文件都能操作的命令

    目录和文件都能操作的命令 rm cp mv rm 英文原意:remove files or directories 功能:删除文件或目录 语法:rm 选项[-fir] 文件或目录 rm -f 强制删除 ...

随机推荐

  1. SQL Server 2008 对XML 数据类型操作

    原文 http://www.cnblogs.com/qinjian123/p/3240702.html 一.前言 从 SQL Server 2005 开始,就增加了 xml 字段类型,也就是说可以直接 ...

  2. Centos下编译Linux内核

    Linux内核编译是一件简单却费事的事.但是独立的编译linux内核会帮助你很好的理解Linux内核的工作机理. 首先编译linux内核我们需要在当前linux操作系统下安装gcc编译器,因为我是Ce ...

  3. linux命令之ls命令的简明讲解

    我详细熟悉linux操作系统的同学对ls命令是再熟悉不过了因为我们通常使用该命令查看某个目录下的文件 其命令形式是:ls [选项] 目录或者文件 本文中主要讲解两个最常用的选项: -l:用于列出文件的 ...

  4. 电子科大POJ "任意阶矩阵相乘"

    任意阶矩阵的乘法 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) C-sourc ...

  5. poj 1276 Cash Machine_多重背包

    题意:略 多重背包 #include <iostream> #include<cstring> #include<cstdio> using namespace s ...

  6. 常见Web Service 使用网址

    下面的网址是常用Web Service http://www.webxml.com.cn/zh_cn/web_services.aspx 里面的很多Web Service接口...可以用到的,很有用!

  7. JS实现简单倒计时

    /*倒计时*/ lcf.downTime = function (endTime,obj,callback){ /*基本判断*/ if(!endTime || typeof endTime !== & ...

  8. 关于DLL中Resources文件修改

    1.先用IL DASM工具将所需要修改的DLL进行文件转换成IL文件,其中*.il文件就是代码,*.resources,这个文件就是资源. 2.找到需要修改的resources文件 //新文件 IRe ...

  9. iOS开发--系统通讯录的访问与添加联系人

    公司项目有访问通讯录的需求,所以开始了探索之路.从开始的一无所知,到知识的渐渐清晰.这一切要感谢广大无私分享的 “coder”,注:我是尊称的语气! 苹果提供了访问系统通讯录的框架,以便开发者对系统通 ...

  10. 前端公共库cdn服务推荐//提高加载速度/节省流量

    前端公共库cdn服务推荐,使用可以提高js库加载速度同时也可以节省自己空间的流量,CDN加速公共库虽好,不过一定要使用靠谱的前端cdn服务提供方. 以下整理出比较靠谱的国内cdn加速服务器.排名不分先 ...