今天在安装redis的时候发现官方的文档上没有说要执行make install,直接cd 到src 目录里面执行redis-server
文件就能启动。
而看很多别人的笔记呢,则都写了make install
,发现实际就是把src目录下的几个二进制文件复制到了系统的/usr/local/bin
下面了而已。
查了下似乎是说make install
执行的是Makefile
里面的脚本。
实际的作用也就是上面说的复制二进制文件么?
只是以redis的安装为例,主要是问安装程序时候的make install
给我你的怀抱2017-04-25 09:03:08
make install
(对 make
命令来说)字面意思就是达成 install
这个目标。这个目标既然叫 install
,当然是执行软件的安装了。
类 UNIX 系统中,软件的安装通常可选地包含以下步骤:
strip
去掉二进制代码文件中不需要的符号类 UNIX 系统的软件,有些不需要安装,执行可执行文件就可以直接用了。有些则不是这样,比如软件需要的配置文件、资源文件没有复制到相应的位置,包括动态链接库的软件需要更新动态链接库缓存否则会因为找不到刚刚编译出来的动态链接库而出错,等等。
伊谢尔伦2017-04-25 09:03:08
摘自官方README:
To run Redis with the default configuration just type:
% cd src
% ./redis-server
同样,
In order to install Redis binaries into /usr/local/bin just use:
% make install
You can use "make PREFIX=/some/other/directory install" if you wish to use a
different destination.
摘抄自https://github.com/antirez/redis/blob/3.0/Makefile
install:
cd src && $(MAKE) $@
不过这个只是去执行src目录下面的make install
。
看了那个src/文件夹下的Makefile,就是对许多东西(请允许我不一一列举),以/usr/local/bin为目录参数(默认情况)执行install
命令。
备注: make后面加一个参数,一般是执行Makefile中的某个目标。比如make install
就是执行Makefile中install:
就是执行Makefile中install:
下面的一组命令。
那么install
命令是什么呢?man install
命令是什么呢?
man install
一下,你就知道:此install 将文件(通常仅是编译后的文件)复制到您所选择的目的位置。
详细内情,自己动手获取吧。🎜