今天在安裝redis的時候發現官方的文檔上沒有說要執行make install,直接cd 到src 目錄裡面執行redis-server
檔案就能啟動。
而看很多別人的筆記呢,則都寫了make install
,發現實際就是把src目錄下的幾個二進位檔案複製到了系統的/usr/local/bin
下面了而已。
查了一下似乎是說make install
執行的是Makefile
裡面的腳本。
實際的作用也就是上面說的複製二進位檔麼?
只是以redis的安裝為例,主要是問安裝程式時候的make install
make install
(对make
命令来说)字面意思就是达成install
这个目标。这个目标既然叫install
,當然是執行軟體的安裝了。類 UNIX 系統中,軟體的安裝通常可選擇性地包含以下步驟:
strip
去掉二進位代碼檔案中不需要的符號類 UNIX 系統的軟體,有些不需要安裝,執行執行檔就可以直接用了。有些則不是這樣,例如軟體需要的設定檔、資源檔沒有複製到對應的位置,包括動態連結函式庫的軟體需要更新動態連結函式庫快取否則會因為找不到剛編譯出來的動態連結函式庫而出錯,等等。
摘自官方README:
同樣,
摘抄自https://github.com/antirez/redis/blob/3.0/Makefile
不過這個只是去執行src目錄下面的
make install
。看了那個src/資料夾下的Makefile,就是對許多東西(請允許我不一一列舉),以/usr/local/bin為目錄參數(預設情況)執行
install
指令。備註: make後面加一個參數,通常是執行Makefile中的某個目標。例如
make install
就是执行Makefile中install:
就是執行Makefile中install:
下面的一組指令。那麼
install
命令是什么呢?man install
命令是什麼呢?man install
一下,你就知道: