今天在安裝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 將檔案(通常僅是編譯後的檔案)複製到您所選的目的位置。
詳細內情,自己動手獲取吧。 🎜