[linux笔记]理清linux安装程序用到的(configure, make, make install)
我作为一名经常和linux打交道的程序员,每次在linux安装软件都祈求可以用——apt-get,yum,brew等应用程序管理器安装,有的时候事与愿违,你只能自己编译安装~wtf,说好的美丽世界呢?
这个时候你就用会用到标题上的:
configure, make, make install这四个指令,每当这个时候我的发怵 ,今天我忍不了了,我要把他们弄清楚,所以画了一整个中午的时间好好研究了它们。
不说百分之百都弄懂了,但是下次再编译安装的时候,嘿嘿。下面分享下我的收获:
后来我发现,这么直接说不直观,同时发现我的ubuntu上没有vim,索性:我就用编译的方法安装vim,配合着这些文字,希望大家看完可以跟清晰明了!
1.源文件
我用git clone下vim的源文件
git clone https://github.com/vim/vim.git vim的源文件如下:
这个时候你down下来(关键词——git clone或 wget 或 curl)得到的文件,有可能是压缩包。也有可能就是个一堆文件(git clone下来的)
2.configure
一般网上的步骤:
./configure ——这里新手有可能会执行不了,这里解释下“./”——当前目录的意思,这个是相对路径。搜索关键词:绝对路径和相对路径
configure:是一个shell脚本,它在源文件的根目录中。他的作用是检查你的系统中是否有编译这个程序依赖的其它库之类的东西。
如果在windows下安装过大型游戏的小伙伴就知道那种感觉了。如果configure脚本检查编译环境不完整(需要的其它软件你没有安装或者找不到——路径不对没有关联上)。
就会中断,你必须解决它报告出来的error,才能进行下一步。
需要注意的一点:prefix参数——指定安装路径(安装到哪里),这个一定要指定,否则你不知道默认安装到哪里,不方便以后的管理
其它参数——搜索关键词:configure 参数
下面我运行:configure脚本并加上prefix参数(我要安装到root/learn_install目录下):
检查环境的时候遇到问题(这个就是需要依赖其它库):
搜索之后,解决方案如下:
安装完terminal library,重新运行configure脚本,成功!
make工具的来源是因为:
源文件多了可真是件让人头疼的事。幸运的是,实用程序make可以帮我们解决这两个问题——当程序的源文件改变后,它能保证所有受影响的文件都将重新编译,而不受影响的文件则不予编译,这真是太好了。
make:
make指令最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译的工作。
Makefile:这个文件是按照特定的语法编写的,文件中说明了,如何编译的各个源文件并链接生成可执行文件,并要求定义
源文件之间的依赖关系。
简单的说就是定义好源文件之间的依赖关系,并编译(这里是编译,不是检查)。
我认为就相当于:编译一边import中所有的模块,这样执行源文件的时候,就可以顺利执行了~(我是pythoner,c++貌似是include)
make完成:
make install:
执行完这条命令,安装完成,你会发现,在执行configure的时候prefix指定的安装路径,出现了~
下面是我第一步执行的:
下面我运行:configure脚本并加上prefix参数(我要安装到root/learn_install目录下):
结果如下:
vim就在bin目录下。执行:/root/learn_install/bin/vim
但是还有最后一个问题,一般我们用vim的时候,无论在任何地方输入:vim都可以,但是现在就不行了。只能到这个/root/learn_install/bin目录下执行./vim才能执行.
这是因为:
你键入的指令都是在这些目录中查找,所以输入vim,他还是提示你没有安装。
所以我们可以建立一个软连接到/usr/bin目录下:
关键词:ln 软链接
这个不是我矫情啊,我一般都是用vi指令,但是vim是vi的升级版我干嘛放着plus不用,所以搜索一下,关键词:alias
输入:alais vi="vim"(这种方式重启后失效)
ok啦,这个时候你在哪里输入vi都可以了,嘿嘿
[linux笔记]理清linux安装程序用到的(configure, make, make install)的更多相关文章
- 【Linux笔记】Linux目录结构
[Linux笔记]Linux目录结构 本文内容整理自网络,以作参考. /:根目录,位于linux文件系统目录结构的顶层,一般根目录下只存放目录,不要存放文件,/etc./bin./dev./lib ...
- Linux源码编译安装程序
一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件:就是通常我们见到的lib目录下的文件 配置文件:这个不必多说,都知道 帮助文档:通常是我们在 ...
- linux 下通过源代码安装程序 ./configure 解释
大家 都知道在 linux 通过源代码 安装程序 1. 下载源码 2.解压缩 3. 执行 ./configure 4. make 5 make install make 命令 是对 makefile ...
- 『学了就忘』Linux软件包管理 — 49、拓展:Linux中通过脚本安装程序
目录 1.脚本程序简介 2.Webmin安装 (1)简介 (2)安装 (3)使用 1.脚本程序简介 脚本程序包并不多见,所以在软件包分类中并没有把它列为一类.它更加类似于Windows下的程序安装,有 ...
- linux笔记:linux系统安装-vmware虚拟机安装
vmware版本:vmware8(百度云里备份了安装程序VMware_Workstation_wmb.zip) vmware软件安装过程: 1.在百度云中下载安装程序压缩包VMware_Worksta ...
- Linux源码包安装程序
★安装OS时,建议提前安装开发组件 CentOS 6:Development Tools.Server Platform DevelopmentCentOS 7:Development Tools.D ...
- Linux下编译安装源码包软件 configure ,make, make install, make test/check, make clean
http://www.360doc7.net/wxarticlenew/541275971.html 一.什么是源码包软件? 顾名思义,源码包就是源代码的可见的软件包,基于Linux和BSD系统的软件 ...
- Linux下编译安装源码包软件 configure ,make, make install, make test/check, make clean 假目标
http://www.360doc7.net/wxarticlenew/541275971.html 一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 ...
- linux笔记:linux软件包管理,软件安装位置
linux软件包简介 软件包分类:1.源码包(用C语言等编写的源代码,没有进行编译):脚本安装包(对源码包进行了安装优化的源码包)优点:开源,可修改可以自由选择所需的功能编译安装,更适合自己的系统,稳 ...
随机推荐
- Android之判断当前指定App是否在前台
直接上代码,不多说 //在进程中去寻找当前APP的信息,判断是否在前台运行 private boolean isAppOnForeground() { ActivityManager activity ...
- Awesome C/C++
Awesome C/C++ A curated list of awesome C/C++ frameworks, libraries, resources, and shiny things. In ...
- 【转】webstorm 注册码 / phpstorm 注册码
WebStorm注册码 User Name: EMBRACE License Key: ===== LICENSE BEGIN ===== 24718-12042010 00001h6wzKLpfo3 ...
- 奇怪吸引子---WimolBanlue
奇怪吸引子是混沌学的重要组成理论,用于演化过程的终极状态,具有如下特征:终极性.稳定性.吸引性.吸引子是一个数学概念,描写运动的收敛类型.它是指这样的一个集合,当时间趋于无穷大时,在任何一个有界集上出 ...
- Javascript 严格模式
简介 严格模式是一种将更好的错误检查引入代码中的方法. 在使用严格模式时,你无法使用隐式声明的变量.将值赋给只读属性或将属性添加到不可扩展的对象等. 声明严格模式 可以通过在文件.程序或函数的开头添加 ...
- java/.net-常用工具下载地址&常用学习网址&快捷键
HTML5 HTML5:http://www.html5cn.org/ php常用网址 thinkphp框架:http://www.thinkphp.cn/ wampserver开发服务器:http: ...
- C变量类型和作用域
C语言中所有变量都有自己的作用域,申明变量的类型不同,其作用域也不同.C语言中的变量,按照作用域的范围可分为两种, 即局部变量和全局变量. 一.局部变量 局部变量也称为内部变量.局部变量是在函数内作定 ...
- 小试ijkplayer编译
同步发表于 http://avenwu.net/ijkplayer/2015/05/07/hands_on_ijkplayer_preparation 谈到视频播放大家都知道ffmpeg,基于其的衍生 ...
- elasticsearch-cn-out-of-box
elasticsearch-cn-out-of-box https://github.com/hangxin1940/elasticsearch-cn-out-of-box 为elasticsearc ...
- POJ-1475-Pushing Boxes(BFS)
Description Imagine you are standing inside a two-dimensional maze composed of square cells which ma ...