天天看點

linux沒有root權限如何安裝軟體,我如何安裝沒有root權限的軟體包?

問題描述

我在這台機器上沒有root權限。

我想知道是否有辦法下載下傳Ubuntu軟體包并将它們安裝為non-root?

可能在我的~/bin或~/usr/share或類似的東西?這會起作用嗎?

最佳解決辦法

Apt不直接支援它,但有辦法做到這一點。

一種是使用schroot建立non-root chroot。這是一個有點involved process,但你應該能夠找到社群幫助為許多開發人員設定chroot環境來編譯代碼。

我知道的第二種方法是從.deb包安裝。您可以從網站下載下傳它,或者如果它位于可以下載下傳的Ubuntu存儲庫中。

apt-get download package

将package替換為軟體包的名稱

一旦你有你的deb檔案直接從指令行調用dpkg。以下示例将package.deb安裝到您的主目錄中。

dpkg -i package.deb --force-not-root --root=$HOME

像這樣使用dpkg的缺點是錯誤資訊很可能是神秘的; dpkg不會自動解決依賴關系或建立它期望的目錄結構。

最後,您可以使用apt-get source指令來擷取軟體包的源代碼并将其配置為在本地安裝。通常這看起來像這樣:

apt-get source package

cd package

./configure --prefix=$HOME

make

make install

這種方法的缺點是你需要這種方法可用的開發環境才能工作,并且你可能會發現自己編譯了數十個包來解決所有的依賴關系。

次佳解決辦法

我假設你想安裝jedit。首先你必須找到包并下載下傳它。我拿着deb file from some mirror并打開一個控制台/終端:

mkdir /tmp/jedit && cd /tmp/jedit – 在tmp中建立了一個新的方向,并進行了更改。

wget http://mirrors.kernel.org/ubuntu/pool/universe/j/jedit/jedit_4.3.1.dfsg-0ubuntu1_all.deb – 下載下傳包

ar x jedit_4.3.1.dfsg-0ubuntu1_all.deb或易于輸入的ar x *.deb – 提取檔案内容

tar xvzf data.tar.gz – 檔案data.tar.gz具有執行軟體所需的所有東西

usr/bin/jedit打開編輯器

完成:-)

您可以将檔案移動到主目錄中的某個位置,然後從那裡執行它們。

第三種解決辦法

我寫了一個名為JuJu的程式,它基本上允許在你的$ HOME /.juju目錄中有一個非常小的Linux發行版(隻包含軟體包管理器)。

它允許您的自定義系統通過proot通路主目錄,是以,您可以安裝任何沒有root權限的軟體包。它可以正常運作到所有主要的Linux發行版,唯一的限制是JuJu可以在最低推薦版本2.6.32的Linux核心上運作。

例如,安裝JuJu安裝jedit之後:

$>juju -f

(juju)$> pacman -S jedit

(juju)> jedit

參考資料