热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

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

以安装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

 


推荐阅读
  • python3.7 安装pip3_python3的pip3安装
    ---恢复内容开始---pip3的安装需要对应一整套python的编译工具库,所以安装好的pip3是这个样子:inearAi:~$pip3-Vpi ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • Word2vec,Fasttext,Glove,Elmo,Bert,Flairpre-trainWordEmbedding源码数据Github网址:词向量预训练实现Githubf ... [详细]
  • 从零开始系列之vue全家桶(2)安装调试插件vue Devtools
    小白安装前提是会用git,会从github上找东西。第一步:我们可以先从github上找到vue-devtools的项目,下载到本地。下载vue-devtools链接。克隆方法:git ... [详细]
  • 编写一个简单的内核驱动模块时报错 “/lib/modules/3.13.032generic/bulid: 没有那个文件或目录。 停止。”...
    编写一个简单的内核驱动模块1staticinthello_init()2{3printk(“hello,Iaminkernelnow\n”);4return0;5}6voidadd ... [详细]
  • 用聪明的方式学习 Vim
    来自量子位Vim难学难用?但事实是,它依旧受许多程序员的欢迎。或许,只是你的「打开方式」不对。最近,在GitHub上便出现了 ... [详细]
  • Linuxchmod目录权限命令图文详解在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容。对于目录来说,执行位的作用是控制能否进入或者通过 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • Annotation的大材小用
    为什么80%的码农都做不了架构师?最近在开发一些通用的excel数据导入的功能,由于涉及到导入的模块很多,所以开发了一个比较通用的e ... [详细]
  • 本文主要介绍关于linux文件描述符设置,centos7设置文件句柄数,centos7查看进程数的知识点,对【Linux之进程数和句柄数】和【linux句柄数含义】有兴趣的朋友可以看下由【东城绝神】投 ... [详细]
  • MySQL5.6.40在CentOS764下安装过程 ... [详细]
  • PHP连接MySQL的2种方法小结以及防止乱码【PHP】
    后端开发|php教程PHP,MySQL,乱码后端开发-php教程PHP的MySQL配置报错信息:ClassmysqlinotfoundinAnswer:1.在confphp.ini ... [详细]
  • 7.4 基本输入源
    一、文件流1.在spark-shell中创建文件流进入spark-shell创建文件流。另外打开一个终端窗口,启动进入spark-shell上面在spark-shell中执行的程序 ... [详细]
  • Git GitHub多人协作
    在学校做一个小项目需要多人协作,就用到了gitHub,百度了一下多数写得乱七八糟或者支离破碎,于是总结了一下自己的步骤如下,第一次使用GitHUb,哪里不对望大神指出一.前期准备: ... [详细]
author-avatar
小文662502914775
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有