在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. Mvc中使用MvcSiteMapProvider实现站点地图之基础篇

    MvcSiteMapProvider 是针对 ASP.NET MVC 中,提供菜单. 网站地图. 站点地图路径功能,以及更多的工具.它提供配置使用一个可插入的体系结构,可以是 XML. 数据库或动态生 ...

  2. NHbiernate 配置

    1.从网上下载NHibernate 4.0 文件.下载地址:https://sourceforge.net/projects/nhibernate/ 2.解压后把 NHibernate.dll文件引用 ...

  3. [置顶] 如何把你的笔记本电脑变成一个Wi-Fi路由器在Windows 7 & 8?

    翻译自:http://www.hakanakdag.net/windows/how-to-create-wireless-ad-hoc-internet-connection-in-windows-8 ...

  4. Handler机制原理图、源码、使用!!!!!

    android的消息处理机制——Looper,Handler,Message  (原理图.源码) 转自:http://my.oschina.net/u/1391648/blog/282892 在开始讨 ...

  5. VMware虚拟机三种网络模式的区别(上篇)

    提到VMware大家就想起了虚拟机技术,虚拟机技术在最近的几年中得到了广泛的发展,一些大型网络服务商都开始采用虚拟机技术,不仅节省了投资成本,更节约了能源的消耗. 我们知道VMware也分几种版本,普 ...

  6. This function or variable may be unsafe. Consider using scanf_s instead.

    去掉安全检查,开头加上即可: #define _CRT_SECURE_NO_WARNINGS 或者: 严重性代码 说明项目文件行禁止显示状态 错误C4996 'scanf': This functio ...

  7. UVA - 10131Is Bigger Smarter?(DAG上的DP)

    题目:UVA - 10131Is Bigger Smarter? (DAG) 题目大意:给出一群大象的体重和IQ.要求挑选最多的大象,组成一个序列.严格的体重递增,IQ递减的序列.输出最多的大象数目和 ...

  8. WAV文件格式分析

    一. RIFF概念 在Windows环境下,大部分的多媒体文件都依循着一种结构来存放信息,这样的结构称为"资源互换文件格式"(Resources lnterchange File ...

  9. 解决 Boot Camp 虚拟机升级到 Windows 10 后 Parallels Desktop 不能识别的问题

    最近几天 Win10 正式版开始推送了,对于喜欢折腾的博主,在第一时间就把 Mac 中 Boot Camp 从 Win7 升级到 Win10,初步体验还不错,等博主用过一段时间之后,再来给大家分享使用 ...

  10. IE6下a标签上发送ajax请求总是error

    IE6下真是处处是坑啊!!!走过了一个又一个坑,记录一下吧. 之前不知道a标签上注册click事件之后,发送ajax请求总是error.后来经过几番网上搜索,终于找到高人遇到此坑的解决办法.原来是a标 ...