在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学习笔记 (三)Vi文本编辑器

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

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

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

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

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

  4. Linux学习笔记(三)

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

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

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

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

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

  7. Linux防火墙iptables学习笔记(三)iptables命令详解和举例[转载]

     Linux防火墙iptables学习笔记(三)iptables命令详解和举例 2008-10-16 23:45:46 转载 网上看到这个配置讲解得还比较易懂,就转过来了,大家一起看下,希望对您工作能 ...

  8. 20155303狄惟佳预备作业三Linux学习笔记

    20155303狄惟佳预备作业三Linux学习笔记 初次接触Ubuntu系统以及Linux内核,了解了其产生的历史,从感性来讲,深深吸引我的是其中蕴含的珍贵的开源精神,以及Stallman等人对&qu ...

  9. Linux 学习笔记

    Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...

  10. Linux 学习笔记之超详细基础linux命令 Part 12

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 11---------------- ...

随机推荐

  1. Python: 测试函数是否被调用

    # helper class defined elsewhere class CallLogger(object): def __init__(self, meth): self.meth = met ...

  2. Spring的meta标签

    Spring的解析源码 public void parseMetaElements(Element ele, BeanMetadataAttributeAccessor attributeAccess ...

  3. php中时间戳和日期格式的转换

    一,PHP时间戳函数获取指定日期的unix时间戳 strtotime(”2009-1-22″) 示例如下: echo strtotime(”2009-1-22″) 结果:1232553600 说明:返 ...

  4. 推荐一个PHP在线代码运行的网站

    地址:http://www.manongjc.com/runcode 该网站可以运行php代码.html代码.js代码, 对于初学者来说,免去了安装环境这一步.

  5. APUE习题8.7

    看书的时候发现这个习题没有答案,于是就想把自己做的结果贴上来,和大家分享分享! 首先把题目贴上来吧: /*********** 8.10节中提及POSIX.1要求在调用exec时关闭打开的目录流.按下 ...

  6. 通过Linux命令过滤出binlog中完整的SQL语句

    DB:5.6.16CentOS:CentOS release 6.3 (Final) 当insert语句通过空格跨行输入的时候,如何提取完整的insert语句! 创建一个空表:mysql> cr ...

  7. 隐藏和显示 ng-show ng-hide

    <div ng-controller='DeathraymenueController'>    <button ng-click="toggleMenue()" ...

  8. Spring Boot 1.5.4集成Redis

    本文示例源码,请看这里: 如何安装与配置Redis,请看这里 首先添加起步依赖: <dependency> <groupId>org.springframework.boot& ...

  9. 使用echarts,制作色温图

    1.需要下载echarts的echarts-all.js文件和创建地图需要用到的数据源 2.在项目中创建jsp文件,将js文件引入 <script type="text/javascr ...

  10. NIO相关基础篇二

    转载请注明原创出处,谢谢! 上篇NIO相关基础篇一,主要介绍了一些基本的概念以及缓冲区(Buffer)和通道(Channel),本篇继续NIO相关话题内容,主要就是文件锁.以及比较关键的Selecto ...