RHEL6基础二十四之RHEL软件包管理③源码安装
一、概述
Linux系统中的软件大都是开源软件,这些软件总是以源码的形式最先发布,之后才会逐渐出现rpm、deb等封装包。下载应用程序的最新源码并编译安装,可以在程序功能、安全补丁等方面得到及时更新
对于RPM格式封装的应用程序,当作者在编译源代码程序的时候,有可能绑定了许多功能,安装时被绑定的其它功能也一并安装到Linux主机上,这样就可能造成一些安全隐患。因为RPM软件包的更新并没有源代码。通过对程序源代码进行重新配置并编译安装后,可以定制更灵活、更丰富的功能
当需要对现有的程序源代码进行适当修改,以便增加新的功能时,也必须释放出该软件的源代码,进行修改后再重新编译安装
二、编译安装
编译安装的基本步骤
解包---tar
解包,释放出源代码文件
配置---./configure
该过程的主要作用是生成makefile文件。配置工作通常由源代码目录中的“configure”脚本文件来完成,配置结果将保存到源码目录中的makefile文件中。如果在配置过程中出现错误,通常是缺少相关的依赖软件包所致,一般只需根据提示安装对应的软件即可,“./configure”表示执行当前目录下的configure脚本文件,不同的应用程序其配置参数会存在区别,具体配置参数可以在源代码目录中执行“./configure --help”进行查看,但是有一个“--prefix”参数却是大多数开源软件所通用的,该配置参数用于指定软件包安装的目标文件夹。
[root@justin nagios-4.0.1]# ./configure -h `configure' configures this package to adapt to many kinds of systems. Usage: ./configure [OPTION]... [VAR=VALUE]... ... Installation directories:--prefix=PREFIX install architecture-independent files in PREFIX[/usr/local/nagios]--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX[PREFIX] ... Fine tuning of the installation directories:--bindir=DIR user executables [EPREFIX/bin]--sbindir=DIR system admin executables [EPREFIX/sbin] ... Optional Packages:--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)--with-nagios-user=<user>sets user name to run nagios--with-nagios-group=<grp>sets group name to run nagios--with-command-user=<user>sets user name for command access--with-command-group=<grp>sets group name for command access ... Report bugs to the package provider. [root@justin nagios-4.0.1]#
编译---make
将源代码文件转变为二进制可执行程序,编译的过程主要是根据makefile文件中的配置信息,将源代码编译、连接成可执行程序
检测---make test / make check
顾名思义,这一步就是对上一步 make 的检查了,要确保 make 是没有错误的,也就是这一步的 test、check要全部是 OK 的,error 为0;这步可省略
安装---make install
编译完成以后,就可以执行“make install”命令将软件的执行程序、配置文件等相关文件复制到Linux系统中了,即应用程序的最后“安装”过程
三、源码编译安装程序的卸载
很多source的Makefile都有写uninstall规则,如果原先的source还在,可直接在Souce里make uninstall&&make clean,然后重新configure......如果没有uninstall规则一句一句看Makefile里install部分他都干了些什么,然后挨个删除
编译安装ntfs-3g
[root@justin src]# wget http://tuxera.com/opensource/ntfs-3g_ntfsprogs-2013.1.13.tgz [root@justin src]# tar zxvf ntfs-3g_ntfsprogs-2013.1.13.tgz -C /usr/local/ [root@justin src]# cd /usr/local/ntfs-3g_ntfsprogs-2013.1.13 [root@justin ntfs-3g_ntfsprogs-2013.1.13]# yum -y install gcc [root@justin ntfs-3g_ntfsprogs-2013.1.13]# ./configure --prefix=/usr/local/ntfs [root@justin ntfs-3g_ntfsprogs-2013.1.13]# make && make install [root@justin ntfs-3g_ntfsprogs-2013.1.13]# ntfs-3g ntfs-3g: No device is specified. ntfs-3g 2013.1.13 integrated FUSE 27 - Third Generation NTFS DriverConfiguration type 1, XATTRS are on, POSIX ACLS are off Copyright (C) 2005-2007 Yura Pakhuchiy Copyright (C) 2006-2009 Szabolcs Szakacsits Copyright (C) 2007-2012 Jean-Pierre Andre Copyright (C) 2009 Erik Larsson Usage: ntfs-3g [-o option[,...]] <device|p_w_picpath_file> <mount_point> Options: ro (read-only mount), windows_names, uid=, gid=,umask=, fmask=, dmask=, streams_interface=.Please see the details in the manual (type: man ntfs-3g). Example: ntfs-3g /dev/sda1 /mnt/windows News, support and information: http://tuxera.com [root@justin ntfs-3g_ntfsprogs-2013.1.13]#
转载于:https://blog.51cto.com/ityunwei2017/1321626
RHEL6基础二十四之RHEL软件包管理③源码安装相关推荐
- linux下软件包管理-源码包-二进制包
linux软件包管理 1.软件包分类 源码包 二进制包(rpm包) 2.rpm包命名规则 命名规则: name-major-minjor-re ...
- 《视觉SLAM十四讲》第二版源码slambook2编译调试
slambook2-master/ch2 编译正常,log如下: slambook2-master/ch2# mkdir build && cd build && cm ...
- MFC Windows 程序设计[二十八]之字体样式(附源码)
MFC Windows 程序设计[二十八]之字体样式 程序之美 前言 主体 运行效果 核心代码 逻辑分析 结束语 程序之美 前言 MFC是微软公司提供的一个类库(class libraries),以C ...
- linux从源码编译软件,linux软件包管理——源码包编译安装
做为运维人员来讲,很多时候我们直接使用别人给我们提供的RPM包来安装程序时,总达不到自己理想的效果,第一,编译开启的功能并不是自己想要的:第二,用不上最新的源代码,因为RPM包的源代码总会滞后于最新的 ...
- 软件包管理:源码包管理-源码包与RPM包的区别
RPM会安装在默认位置,源码包会安装在指定位置. 绝大多数ROM包遵循此规范.写软件包是就固定好了. 主要影响体现在对服务的管理方法,服务的管理分三种:启动,重启动,停止. 启动时使用绝对路径来启动. ...
- RHEL6基础二十之RHEL文件挂载与卸载
一.光盘挂载.卸载 在挂载外围设备时一般习惯性地将挂载点放在/mnt目录下,光盘对应的设备文件通常为"/dev/cdrom" [root@justin ~]# mkdir /mnt ...
- RHEL6基础三十四之服务器维护基础命令④sort、uniq
sort 格式:sort [-options] filename[s] 功能:将文件的每一行作为一个单位,相互比较,最后将他们按升序输出,比较原则是从首字符向后,依次按ASCII码值进行比较. 1 2 ...
- 【DVWA系列】十四、JavaScript 攻击(源码分析漏洞利用)
文章目录 DVWA CSP Bypass 绕过浏览器的安全策略 一.Low 级别 二.Medium 级别 三.High 级别 四.Impossible 级别 DVWA CSP Bypass 绕过浏览器 ...
- mybaits二十九:mybatis工作原理以及源码分析
根据配置文件创建SqlSessionFactory SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build ...
- 深入理解Spark 2.1 Core (十四):securityManager 类源码分析
securityManager主要用于权限设置,比如在使用yarn作为资源调度框架时,用于生成secret key进行登录.该类默认只用一个实例,所以的app使用同一个实例,下面是该类的所有源代码: ...
最新文章
- 【Linux驱动】ThinkPad笔记本wifi模块rtl8821ce在ubuntu16.04的驱动(默认没有)
- 华为消息推送 有透传通道吗_华为首款头戴耳机FreeBuds Studio正式发布,能否撑起品牌之名?...
- 以主干开发作为持续交付的基础
- 数据结构线性表博客作业总结
- java遍历树结构数据_Java数据结构——二叉树的遍历(汇总)
- 什么是mysql的索引_什么是MySQL索引?【详解】
- html页面跳转时导航栏不变_解决Vue-iview封装导航栏刷新,导航栏消失之坑
- 接口传值实例DatePickerDialog
- 单片机重要组成部分还有什么,引脚封装分布知识讲解(二)
- java对象锁的使用
- 事务Transaction
- Android 集成科大讯飞语音并实现语音识别
- Matlab入门1(有手就行)
- 【跟我一起学Linux之Ubuntu】-概述与安装配置笔记
- 【历史上的今天】8 月 20 日:两位传奇程序员的诞生日!
- zeppelin入门使用
- H264——H264码流分析实例(SPS、PPS)
- Excel 2010 VBA 入门 052 DateAdd函数
- 经典面试智力题和解答
- 亚洲首台BMD8K切换台开箱
热门文章
- python 环形图_Python通过matplotlib画双层饼图及环形图简单示例
- debian rabbitmq离线安装_Rabbitmq web-mqtt在debian上的安装
- 浅谈算法和数据结构: 四 快速排序
- Linux下的Libsvm使用历程录
- 【洛谷 P3979】遥远的国度【树链剖分、换根】
- 服务器lsass占用内存_服务器内存跑满是什么原因造成的呢?
- Raki的读paper小记:FLAT: Chinese NER Using Flat-Lattice Transformer
- 刷题记录 CF每日一题打卡 2020.5月26-6月2
- vc mysql 连接_vc连接mysql数据库的方法
- Robot Framework (一)自动化测试框架搭建