web-dev-qa-db-ja.com

ルートアクセスなしでパッケージをインストールするにはどうすればよいですか?

このマシンにはルートアクセスなしがあります。

方法があるかどうかを知りたいbuntuパッケージをダウンロードして非ルートとしてインストールできますか?

おそらく私の~/binまたは~/usr/shareまたはそのようなもので?それはうまくいくでしょうか?

122
Weboide

Aptは直接サポートしていませんが、それを行う方法があります。

1つは、schrootを使用して非ルートchrootを作成することです。これはやや 関与するプロセス ですが、多くの開発者がコードをコンパイルするためにchroot環境をセットアップするので、コミュニティヘルプを見つけることができるはずです。

私が知っている2番目の方法は、.debパッケージからインストールすることです。これは、Webサイトからダウンロードできる場合と、ダウンロードできる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

このアプローチの短所は、このアプローチがまったく機能しない開発環境が必要であり、すべての依存関係を解決するために多数のパッケージをコンパイルする必要があることです。

編集:

dpkg -iが機能しないため(コメントを参照)、この代替案をお勧めします。

dpkg -x package.deb dir

これにより、.debパッケージがdirに抽出されます。次に、バイナリがある場所にPATHをエクスポートできます。バイナリのすべての依存関係がインストールされている限り、通常どおり実行されます。

106
jbowtie

jedit をインストールすることを想定しています。まず、パッケージを見つけてダウンロードする必要があります。 ミラーからdebファイル を取得し、コンソール/ターミナルを開きます。

  1. mkdir /tmp/jedit && cd /tmp/jedit-tmpに新しいディレクトリを作成し、変更します。
  2. wget http://mirrors.kernel.org/ubuntu/pool/universe/j/jedit/jedit_4.3.1.dfsg-0ubuntu1_all.deb-パッケージのダウンロード
  3. ar x jedit_4.3.1.dfsg-0ubuntu1_all.debまたは、入力が簡単なar x *.deb-ファイルの内容を抽出します
  4. tar xvzf data.tar.gz-ファイルdata.tar.gzには、ソフトウェアの実行に必要なものがすべて含まれています
  5. usr/bin/jeditはエディターを開きます
  6. 完了:-)

ファイルをホームディレクトリのあるポイントに移動して、そこから実行できます。

16
qbi

JuJ というプログラムを作成しました。これにより、基本的に、ごく小さなLinuxディストリビューション(パッケージマネージャーのみを含む)を$ HOME/.jujuディレクトリ内に配置できます。

Proot経由でアクセスできるホームディレクトリ内のカスタムシステムを使用できるため、ルート権限なしでパッケージをインストールできます。すべての主要なLinuxディストリビューションに対して適切に実行されます。唯一の制限は、JuJuが最小推奨バージョン2.6.32でLinuxカーネルで実行できることです。

たとえば、JuJuをインストールしてjeditをインストールした後:

$>juju -f
(juju)$> pacman -S jedit
(juju)> jedit
9
user967489