Software-Installation

如何在沒有 sudo 權限的情況下在本地安裝程序?

  • April 21, 2020

假設我以使用者身份可以 ssh 訪問某些 Ubuntu 伺服器,並且為了方便起見,我需要安裝一些非系統工具(mc、rtorrent、mcedit)。我不想為這些小程序打擾管理員。

有沒有辦法安裝它們(讓它們執行)而不使用類似的東西sudo apt-get install

  1. 編譯並安裝到~/bin(並編輯您.bashrc的設置PATH以包含它)。庫可以類似地編譯並安裝到~/lib(設置LD_LIBRARY_PATH為指向它),開發標頭檔可以安裝到例如~/includes.
  2. 根據您要安裝的程序的具體細節和它們所依賴的庫,您可以下載 .deb 文件並使用 ’ dpkg-deb -x’ 將它們解壓縮到您的主目錄下。然後,您將有很多“樂趣”設置PATH,LD_LIBRARY_PATH和其他variables. 您安裝的程序或應用程序越複雜,您就會越開心:)

當然,您將無法以setuid這種方式安裝二進製文件 - 它們會安裝,但是(因為您無權將它們設置為 root 或setuid在它們上設置位)它們將只是您擁有的普通二進製文件.

類似地,期望以特定方式執行UID或能夠更改 uid 或期望文件處於正確狀態等的守護程序和系統服務/etc不太~/etc可能正常工作,如果有的話。 3. 大多數係統管理員會考慮mc並認為mcedit是“幾乎無害”的無害程序。

然而,很少有人會考慮安裝洪流客戶端是無害的,特別是如果他們必須支付頻寬費用或最終承擔法律責任。大多數係統管理員可能不會完全高興最終使用者未經許可安裝此類軟體。他們可能會說“當然,繼續,把自己打暈”或者他們可能不會……但是您應該詢問任何可能給機器所有者/管理員帶來問題的事情。

您需要從原始碼編譯這些。這應該只是一個問題

apt-get source PACKAGE
./configure --prefix=$HOME/myapps
make
make install

然後二進製文件將位於~/myapps/bin. 因此,添加export PATH="$HOME/myapps/bin:$PATH"到您的.bashrc文件並.bashrc使用source ~/.bashrc. 當然,這是假設系統上安裝了 gcc。

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