centos - make install到底做什麼操作?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-04-25 09:01:08
0
2
1073

今天在安裝redis的時候發現官方的文檔上沒有說要執行make install,直接cd 到src 目錄裡面執行redis-server檔案就能啟動。
而看很多別人的筆記呢,則都寫了make install,發現實際就是把src目錄下的幾個二進位檔案複製到了系統的/usr/local/bin下面了而已。
查了一下似乎是說make install執行的是Makefile裡面的腳本。
實際的作用也就是上面說的複製二進位檔麼?
只是以redis的安裝為例,主要是問安裝程式時候的make install

曾经蜡笔没有小新
曾经蜡笔没有小新

全部回覆(2)
给我你的怀抱

make install (对 make 命令来说)字面意思就是达成 install 这个目标。这个目标既然叫 install,當然是執行軟體的安裝了。

類 UNIX 系統中,軟體的安裝通常可選擇性地包含以下步驟:

  • 將檔案複製到對應的目錄下
  • strip 去掉二進位代碼檔案中不需要的符號
  • 壓縮 man 文件及 info 文件
  • 更新各類索引,mandb、info 索引,動態連結庫緩存,軟體本身的文件目錄,等等,取決於軟體的需要

類 UNIX 系統的軟體,有些不需要安裝,執行執行檔就可以直接用了。有些則不是這樣,例如軟體需要的設定檔、資源檔沒有複製到對應的位置,包括動態連結函式庫的軟體需要更新動態連結函式庫快取否則會因為找不到剛編譯出來的動態連結函式庫而出錯,等等。

伊谢尔伦

摘自官方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 將檔案(通常僅是編譯後的檔案)複製到您所選的目的位置。

詳細內情,自己動手獲取吧。 🎜
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!