Compiling

組織本地建構

  • August 26, 2015

對於在沒有 root 權限的情況下在機器上工作的人來說,一個常見的事情是在本地建構自己喜歡的工具的小套裝。

工作流程有點像這樣:

tar xvzf fav_tool.tar.xvzf
cd fav_tool
./configure --prefix=$HOME
make install

它往往會變得有點混亂。您會在主文件夾中獲得類似bin/, etc/, include, lib/source/的文件夾。您必須管理依賴項和$PATH. 有沒有聰明的方法來做到這一點?是否有工具可以在本地跟踪您的包裹?

它往往會變得有點混亂。您會在主文件夾中獲得 bin/、etc/、include、lib/ 和 source/ 等文件夾。

選擇,是的。如果這看起來不整潔,您可以使用

./configure --prefix=$HOME/mytools

反而。然後,您需要將其添加到您的 $PATH中,或者,如果$HOME/bin已經是其中的一部分,您可以將目前那裡的所有內容移入$HOME/mytools/bin

rm ~/bin
ln -s ~/mytools/bin ~/bin

如果你的工具把東西放進去~/mytools/lib,你還想在LD_LIBRARY_PATH某個地方適當地設置。

如果您使用通常用於設置環境變數的任何初始化文件,則只需執行一次並且大約需要一分鐘。

您必須管理依賴項

如果通過“管理”您的意思是解決安裝的目的,那是./configure. 如果它不能正確地做到這一點,第三方工具不太可能做得更好。它可能會,但它也可能做得更糟

如果您的意思是別的,那麼“依賴”的概念實際上並沒有涉及任何其他內容。如果你的意思是你想要解決這個問題、下載依賴項並為你安裝它,這就是普通包管理器的用途——但請記住**,你決定不想要預建構的二進製文件**。您正在從原始碼建構。

非常不幸的是,linux 包管理器對非特權使用者大多不友好或無用,但這是一個單獨的問題(和一個單獨的問題,根據發行版的不同有不同的答案)。

是否有工具可以在本地跟踪您的包裹?

是的,原始碼包本身。建構時,解壓縮~/mytools/src. 您可以將建構目錄保留在那裡,也可以只保留 tarball。當你想解除安裝某些東西時,你只需進入相關目錄(必要時再次解包)和make uninstall.

src目錄永遠不會被系統用於任何事情。它僅包含您放入其中的內容,因此只要您不刪除下載內容,您就會有一個很好的本地安裝原始碼建構軟體的整潔列表,其中包含實際用於建構它的原始碼。

引用自:https://unix.stackexchange.com/questions/225558