第1章 源码安装

源码包安装会比RPM包安装慢,是因为RPM的软件包是根据特定系统和平台而指定的,经常一种

程序会提供很多RPM包的格式,用户根据系统情况选择适合的RPM包直接安装,而源码包相当于

通用型,可以是用于多个系统中,所以需要运行configure脚本来检测环境,生成对应的安装信息。

1.1 源码安装优点

1、文档齐全

2、因为可以定位到代码,所以debug方便

3、本机兼容性最好(由于是本机编译的,只要编译通过,就没有各种库的依赖的问题)

1.2 源码安装的缺点

1、编译麻烦

2、缺乏自动依赖管理,软件升级麻烦

1.3 安装流程

1.3.1 解压源码包tar文件:源码包通常会使用tar工具归档然后使用gunzip或bzip2进行压缩,

后缀格式会分别

为.tar.gz与.tar.bz2,分别的解压方式:

tar -zxvf FileName.tar.gz

tar -jxvf FileName.tar.bz2

1.3.2 切换到解压后的目录

cd /解压后目录

1.3.3 准备编译工作:在开始安装服务之前,需要执行configure脚本,会自动的对当前系统进行

一系列的评估,如源文件、软件依赖库、编译器、汇编器、连接器检查等等,如果有需要,还

可以使用-prefix参数来指定程序的安装路径,而当脚本检查系统环境符合要求后,则会在当

前目录下生成一个Makefile文件。

./configure -prefix=/usr/local/program

1.3.4 生成安装程序:上步生成的Makefile文件会保存有系统环境依赖关系的安装规则,接下来

需要使用make命令来根据Makefile文件提供的规则使用合适的SHELL来编译所有依赖的

源码,然后make命令会生成一个最终可执行的安装程序。

make 编译

1.3.5 安装服务程序:如果在configure脚本阶段中没有使用-prefix参数,那么程序一般会被默认

安装到/usr/local/bin目录中。

make install 编译安装

1.3.6 清理临时文件(可选):

make clean

1.3.7 卸载服务程序命令(需要才执行)

make uninstall

1.3.8 查看安装信息

whereis 命令定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的

属性应属于原始代码,二进制文件,或是帮助文件。

例如:whereis java

whereis [-bmsu] [BMS 目录名 -f ] 文件名

-b 搜索文件的二进制部分。

-m 搜索文件的手册部分。

-s 搜索文件的源部分。

-u 没有说明文档的文件

-B、-M 和 -S 标志可以用于更改或限制 whereis 命令搜索的位置。由于该程序为了运行得

更快而使用了chdir子例程,所以用-M、-S 和 -B标志目录列表给出的路径名必须是完整的;

例如,它们必须以一个/(斜杠)开始。

-B 与 -b 一样,但是添加了要搜索的目录。更改或限制 whereis 命令搜索二进制文件的位置。

-M 与 -m 一样,但是添加了要搜索的目录。更改或限定 whereis 命令搜索手册部分的位置。

-S 与 -s 一样,但是添加了要搜索的目录。更改或限定 whereis 命令搜索源的位置。

-f 终止最后的 -M、-S 或 -B 目录列表并发文件名起始位置信号。

(四)[参数][文件]

-c 压缩文件

-x 解压文件

-t 查看压缩包内有哪些文件

-z 用Gzip压缩或解压

-j 用bzip2压缩或解压

-v 显示压缩或解压过程信息

-f 目标文件名

-P 保留原始权限和属性

-p 使用绝对路径压缩

-C 指定解压到的目录

第2章 RPM包安装

对于一个rpm包来说,都是有"-"和"."构成的,基本上有以下几部分组成:

* 包名 *版本信息 * 发布版本号 * 运行平台,当出现noarch,代表的是软件可以平台兼容

2.1 常用用法1

2.1.1 安装

rpm -i 需要安装的包文件

rpm -iv 需要安装的包文件(显示安装详情)

rpm -ivh 需要安装的包文件(显示安装详情及进度)

2.1.2 升级

rpm -U 需要升级的包文件

rpm -Uvh 需要升级的包文件(显示升级详情及进度)

2.1.3 卸载

rpm -e 需要卸载的软件包

注:如果其他程序依赖要卸载的包,系统会提示不能删除,若需要强行删除加上--nodeps,

会强制删除,但可能导致依赖于它的软件不能运行。

2.1.4 查看已安装

rpm -qa

2.1.5 查看指定包

rpm -qa | grep "软件或者包的名字"

2.2 常用方法2

2.2.1 第一种:对于已安装的如软件服务信息查询

1、查询系统中已经安装的软件

rpm -qa

2、查询一个已经安装的文件属于哪个软件包;

rpm -qf 文件名的绝对路径

3、查询已安装软件包都安装到何处;

软件名定义是:rpm包去除平台信息和后缀后的信息

rpm -ql 软件名

4、查询一个已安装软件包的信息

rpm -qi 软件名

5、查看一下已安装软件的配置文件;

rpm -qc 软件名

6、查看一个已经安装软件的文档安装位置:

rpm -qd 软件名

7、查看一下已安装软件所依赖的软件包及文件;

rpm -qR 软件名

2.2.2 第二种:对于未安装的软件包信息查询

1、查看一个软件包的用途、版本等信息;

rpm -qpi rpm文件

2、查看一件软件包所包含的文件;

rpm -qpl rpm文件

3、查看软件包的文档所在的位置;

rpm -qpd rpm文件

4、查看一个软件包的配置文件;

rpm -qpc rpm文件

5、查看一个软件包的依赖关系

rpm -qpR rpm文件

2.2.3 [选项] [参数]:

-a:查询所有软件包

-e:删除指定的软件包

-f<文件>:查询拥有指定文件的套件;

-h或--hash:显示进度信息

-i:显示包的详细信息

-i<软件包>或--install<软件包>:安装指定的软件包

-l:显示包的文件列表

-p:查询指定的RPM包

-q:使用询问模式

-U<软件包>或--upgrade<软件包>:升级指定的程序包

-v:显示指令执行过程;

-vv:详细显示指令执行过程,便于排错。

常用命令组合:

-ivh:安装显示安装进度--install--verbose--hash

-Uvh:升级软件包--Update;

-qpl:列出RPM软件包内的文件信息[Query Package list];

-qpi:列出RPM软件包的描述信息[Query Package install package(s)];

-qf:查找指定文件属于哪个RPM软件包[Query File];

-Va:校验所有的 RPM软件包,查找丢失的文件[View Lost];

-e:删除包

--force 强制操作 如强制删除等;

--requires 显示该包的依赖关系;

--nodeps 忽略依赖关系并继续操作

第3章 yum

3.1 安装流程

1、安装: yum install 软件

2、升级: yum update 软件

3、删除: yum remove 软件

4、查看: yum info 软件

5、搜索软件: yum search 软件

6、查看依赖关系: yum deplist 软件

7、查看已安装软件: yum list installded

3.2  [选项] [参数]:

-e 静默执行

-t 忽略错误

-R[分钟] 设置等待时间

-y 自动应答yes

check-update 检查可更新的包

clean all 清除全部

clean packages 清除临时包文件(/var/cache/yum 下文件)

clean headers 清除rpm头文件

clean oldheaders 清除旧的rpm头文件

deplist 列出包的依赖

list 可安装和可更新的RPM包

list installed 已安装的包

list extras 已安装且不在资源库的包

info 可安装和可更新的RPM包 信息

info installed 已安装包的信息(-qa 参数相似)

install[RPM包] 安装包

localinstall 安装本地的 RPM包

update[RPM包] 更新包

upgrade 升级系统

search[关键词] 搜索包

provides[关键词] 搜索特定包文件名

reinstall[RPM包] 重新安装包

repolist 显示资源库的配置

resolvedep 指定依赖

remove[RPM包] 卸载包

Linux下rpm、yum和源码三种安装方式详细介绍的更多相关文章

  1. 【转】vue.js三种安装方式

    Vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的渐进式框架.Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件.它不仅易于上手 ...

  2. vue.js三种安装方式

    Vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的渐进式框架.Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件.它不仅易于上手 ...

  3. Linux下查看磁盘挂载的三种方法

    Linux下查看磁盘挂载的三种方法 2009-06-05 23:17 好久没有更新日志了,呵呵.不是没有要写的东东.实在抽不出时间来写,要准备公司的考试呢,C++考试.已经有七个月没有写C++代码了, ...

  4. grub安装的 三种安装方式

    1. 引言 grub是什么?最常态的理解,grub是一个bootloader或者是一个bootmanager,通过grub可以引导种类丰富的系统,如linux.freebsd.windows等.但一旦 ...

  5. Hive的三种安装方式(内嵌模式,本地模式远程模式)

    一.安装模式介绍:     Hive官网上介绍了Hive的3种安装方式,分别对应不同的应用场景.     1.内嵌模式(元数据保村在内嵌的derby种,允许一个会话链接,尝试多个会话链接时会报错)   ...

  6. EF三种编程方式详细图文教程(C#+EF)之Database First

    Entity Framework4.1之前EF支持“Database First”和“Model First”编程方式,从EF4.1开始EF开始支持支持“Code First”编程方式,今天简单看一下 ...

  7. Linux下修改Mysql密码的三种方式

    前言 有时我们会忘记Mysql的密码,或者想改一个密码,以下将对这两种情况修改密码的三种解决方法做个总结 本文都以用户为 root 为例 一.拥有原来的myql的root的密码 方法一: 在mysql ...

  8. centOS下 JDK的三种安装方式

    由于各Linux开发厂商的不同,因此不同开发厂商的Linux版本操作细节也不一样,今天就来说一下CentOS下JDK的安装: 方法一:手动解压JDK的压缩包,然后设置环境变量 1.在/usr/目录下创 ...

  9. MYSQL三种安装方式--rpm包安装

    1. 首先检查机器里是否已经存在MySQL $ rpm -qa | grep mysql 2. 去官网下载相应的rpm包:https://dev.mysql.com/downloads/mysql/ ...

随机推荐

  1. (转)C系程序员面试必知必会之大端小端

      C程序员经常被问及的一道面试题是:什么是大端/小端,怎么样判断是大端/小端?大端小端问题对于嵌入式程序员绝对不会陌生(否则,别告诉我你是搞嵌入式的),它与CPU体系结构有关.比如常见的X86处理器 ...

  2. 程序编写安全代码——sendto和recvfrom的大坑

    近日帮一个兄弟查代码问题,再处理完一系列问题以后,发现程序某些时候工作还是不正常,甚至会崩溃.因为环境所限,不能使用gdb,所以我只能review他的代码.最终发现原来是sendto和recvfrom ...

  3. c# 扩展方法奇思妙用基础篇五:Dictionary<TKey, TValue> 扩展

    Dictionary<TKey, TValue>类是常用的一个基础类,但用起来有时确不是很方便.本文逐一讨论,并使用扩展方法解决. 向字典中添加键和值 添加键和值使用 Add 方法,但很多 ...

  4. 2016/05/25 PHP mysql_insert_id() 函数 返回上一步 INSERT 操作产生的 ID

    定义和用法 mysql_insert_id() 函数返回上一步 INSERT 操作产生的 ID. 如果上一查询没有产生 AUTO_INCREMENT 的 ID,则 mysql_insert_id() ...

  5. java zip压缩优化版 解决压缩后文件一直被占用无法删除

    最近进行zip操作,从网上找到一个处理方法,但是经过试验存在一些bug,主要是文件流的申明存在问题,导致jvm一直占用文件而不释放,特意把自己修改的发出来,已备记录 import java.io.Bu ...

  6. java的自定义异常类

    编写自定义异常类的模式 编写自定义异常类实际上是继承一个Exception标准异常类,用新定义的异常处理信息覆盖原有信息的过程.常用的编写自定义异常类的模式如下: public classCustom ...

  7. HDOJ 5045 Contest

    状压DP.. . . Contest Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Other ...

  8. Android 的assets文件资源与raw文件资源读取

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zpf8861/article/details/34504183   res/raw和assets的同 ...

  9. UISegmentedControl方法与属性的总结

    SegmentedControl又被称作分段控制器,是IOS开发中经常用到的一个UI控件. 初始化方法:传入的数组可以是字符串也可以是UIImage对象的图片数组 - (instancetype)in ...

  10. 静态代理、动态代理和cglib代理

    转:https://www.cnblogs.com/cenyu/p/6289209.html 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处 ...