以安装vim为例。

(vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面)。

1.获取源文件

首先进入/usr/local下(只是为了方便处理安装文件,位置随意)

用git clone下vim的源文件,执行命令:sudo git clone https://github.com/vim/vim.git,也可以使用wget的方式,仅仅是为了获取源文件。

使用命令进入到vim文件夹,ls查看

这些都是vim的源文件。

2.configure命令

configure:是一个shell脚本,它在源文件的根目录中。他的作用是检查你的系统中是否有编译这个程序依赖的其它库之类的东西。

prefix 参数——指定目标安装路径,必须指定,否则不知道默认安装到哪里,不方便以后的管理(类似windows的安装路径)。

命令全文: sudo ./configure --prefix=/usr/local/vimdir     ( prefix后的路径随意; 另外 ./configure    “./”——表示当前目录,这个是相对路径。)

执行后,可能会遇到问题:

错误提示:no terminal library found

解决方法:

sudo apt-get update

sudo apt-get install libncurses5-dev

安装完terminal library,再重新运行configure脚本,成功!

3.make

make指令最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译的工作。

Makefile:这个文件是按照特定的语法编写的,文件中说明了,如何编译的各个源文件并链接生成可执行文件,并要求定义源文件之间的依赖关系。

简单的说:定义好源文件之间的依赖关系,并编译生成可执行性文件(这里是编译,不是检查)。

完整命令: sudo make

4.make install:

执行安装,在执行configure的时候prefix指定的安装路径也是在此时创建出来的。

完整命令: sudo make install

到此为止,vim就在bin目录下。执行:/usr/local/vimdir/bin/vim下了。

5.ln命令软链接

一般用vim的时候,无论在任何地方输入vim都可以,但是现在就不行。只能到这个/root/learn_install/bin目录下执行./vim才能执行。

原因:

系统对应的所有的指令目标目录的路径,只有上述的这些,并没有新装的 /usr/local/vimdir/bin,所以当我们在非此目录输入 vim 时,会提示未安装。

解决方法:

建立一个软连接到/usr/bin目录下:

完整命令:

sudo ln -s /usr/local/vimdir/bin/vim /usr/bin/vim

Linux编译安装程序(使用configure、make、 make install)的更多相关文章

  1. Linux下通过源码编译安装程序(configure/make/make install的作用,然后在/etc/profile文件里修改PATH环境变量)

    一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件:就是通常我们见到的lib目录下的文件 配置文件:这个不必多说,都知道 帮助文档:通常是我们在 ...

  2. Ubuntu16.04.2 LTS下使用编译安装程序(使用configure、make、 make install)

    以安装vim为例. (vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面). 1.获取源文件 首先进入/usr/local下(只是为了方便处理安装文件,位置随意) 用git ...

  3. linux套件安装过程中configure,make,make install的作用

    ./configure,make,make install都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤.其中: ./configure是检测程序文件,用来检测你的安装平 ...

  4. Python在Linux下编译安装报错:Makefile:1141:install

    正常情况下执行:./configuremake && make install可以直接安装python,但是在在更新了乌版图后居然报错了!!!检查了一圈,发现乌版图安装了python3 ...

  5. Linux编译安装Apache+PHP

    Linux编译安装Apache+PHP 来自:自学it网,http://www.zixue.it/. 1]编译安装Apache+PHP 1.安装程序依赖库和开发环境   为了省事把所需要的库文件全都安 ...

  6. 【转】linux 编译安装nginx,配置自启动脚本

    linux 编译安装nginx,配置自启动脚本 本文章来给各位同学介绍一篇关于linux 编译安装nginx,配置自启动脚本教程,希望有需要了解的朋友可一起来学习学习哦. 在公司的suse服务器装ng ...

  7. linux 编译安装nginx,配置自启动脚本

    本文章来给各位同学介绍一篇关于linux 编译安装nginx,配置自启动脚本教程,希望有需要了解的朋友可一起来学习学习哦. 在公司的suse服务器装nginx,记录下安装过程: 参照这篇文章:Linu ...

  8. Linux 编译安装 源代码

    编译安装 源代码包的安装一般为下载软件源代码,然后编译安装. 常见的C程序软件的安装步骤是 configure, make, make install三部曲,大致是下面这样操作: 首先得安装gcc.m ...

  9. linux 编译安装PHP模块

    本文移到:http://www.phpgay.com/Article/detail/classid/6/id/54.html  linux 编译安装PHP模块 1.首先你要有你服务器上安装的PHP的版 ...

随机推荐

  1. Spring学习(2)---IOC

    1.接口及面向接口编程 2.什么是IOC 3.Spring的Bean配置 4.Bean的初始化 5.Spring的常用注入方式 (一)接口 用于沟通的中介物的抽象化 实体把自己提供给我外接的一种抽象化 ...

  2. maven问题:org.springframewor.web.filter.CharacterEncodingFileter不能强转为javax.servlet.Filter

    使用maven搭建ssm(SpringMVC.Spring .Mybatis)项目,启动时报: java.lang.ClassCastException:org.springframewor.web. ...

  3. js 过滤敏感词 ,可将带有标点符号的敏感词过滤掉

    function transSensitive(content) { // var Sensitive = H.getStorage("Sensitive");//敏感词数组 va ...

  4. nodejs 字符串全排列 和 去重

    以前写了个java版的 现在写个nodejs 版的 var list = sort('CCAV');var noRepeat = {};for(var i in list){ noRepeat[lis ...

  5. python+NLTK 自然语言学习处理二:文本

    在前面讲nltk安装的时候,我们下载了很多的文本.总共有9个文本.那么如何找到这些文本呢: text1: Moby Dick by Herman Melville 1851 text2: Sense ...

  6. java架构师负载均衡、高并发、nginx优化、tomcat集群、异步性能优化、Dubbo分布式、Redis持久化、ActiveMQ中间件、Netty互联网、spring大型分布式项目实战视频教程百度网盘

    15套Java架构师详情 * { font-family: "Microsoft YaHei" !important } h1 { background-color: #006; ...

  7. maven下载jar包失败后无法再次重新下载

    maven下载jar包失败后无法再次重新下载:删除maven 资源库中的 *.lastUpdated文件

  8. BigDecimal四舍五入使用总结

    //BigDecimal四舍五入double f1 = new BigDecimal(1).setScale(2,RoundingMode.HALF_UP).doubleValue();//转化成字符 ...

  9. Vue.js 介绍入门

    Vue.js 的目标 是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件.Vue.js 是一个用于创建 Web 交互界面的库.它让你通过简单而灵活的 API 创建由数据驱动的 UI 组件. ...

  10. 【Android Developers Training】 2. 运行你的应用

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...