debパッケージを別のディレクトリ(または同等のディレクトリ)にインストールします


7

私は、小さなハードドライブとそれに合う外部ドライブを備えたネットブックを持っています。Ubuntuを実行しています。そのハードドライブにいくつかのパッケージをインストールできるようにしたいので、ハードドライブが接続されていなくても、ネットブックは機能していても機能します。それはありません持っている私は、ポータブルハードドライブに私のインストールされたライブラリやプログラムの一部をオフロードの効果が欲しい、まさにこの方法であること。言い換えれば、外付けドライブからいくつかのディレクトリをマウントするだけでは機能しません。通常の実行には少なくともいくつかの基本的なプログラムが必要だからです。

ここに私が考えていたものがありますが、それらが実行可能かどうか、またはそれらを実行する方法を実際に理解するのに十分な情報を見つけることができませんでした。これらのいずれかを行う方法または代替方法に関するコメントは大歓迎です。

  1. dpkg installの--root = / media / externalスイッチを使用してからシステムパスに/ media / external /を追加すると、このようなことができますか?
  2. パッケージを代替ルート(--root = / media / external)にインストールし、外部ファイルにインストールされたばかりのすべてのファイルへのシンボリックリンクを内部ファイルシステムに作成するdpkgのラッパーを作成した場合システム?
  3. 外付けドライブにchrootする場所はどうですか?
  4. LVMを使用して何か。

回答:


2

--rootを使用してパッケージを別のディレクトリにインストールできますが、ほとんどのプログラムは固定された場所(/ etcなど)でファイルを探すため、そこからほとんどのプログラムを使用できません。このオプションは、ディスクレスクライアントのNFSルートにパッケージをインストールする場合などに使用できます。

UnionFSのようなものを使用して、2つのファイルシステムをマージすることもできます。


ええ、それが問題だと思ったのです。一見すると、UnionFSは非常にうまく機能するように見えます。私はそれを試してみることができるかどうかがわかります。
cheshirekow

そのため、UnionFSはKarmic以降、ubuntuから削除され、unionfs-fuse(kernalモジュールではなくfuse実装)に置き換えられたようです。私はカーネルモジュールのアイデアが好きですが、これは非常にうまく機能しているようです。これは、少なくとも、まさに私が望んでいたものですので、良い答えをありがとう:)。
cheshirekow

わかりました、私はこれに答えていません。UnionFSは、半分の答えに過ぎないようです。それは私が望むもののほとんどを行いますが、2つのディレクトリをunionfsして、その2つのうちの1つにunionをマウントすることはできないようです。答えを終える1つの方法(おそらく)は、chrootで何かをすることでしょうか?つまり、各ドライブのルートの結合としてfakerootを作成し、その中にchrootします。これは機能しますか?chrootの使い方がわかりません。
cheshirekow

aufs2は、ubuntu livecds IIRCのユニオンマウントに使用されるものです。
東武

2

debianパッケージ管理を回避できない単純な答えが必要な場合は、mountとsymlinksを使用してください。/ etc / fstabを使用して外部ドライブをマウントし、そのドライブを指すいくつかのシンボリックリンクを作成できます。注:シンボリックリンクを盲目的に行うべきではありません。何かを変更する前に確認してください;)

むしろ保存的な提案は、/ tmpをramfsに入れることです(SSDを備えた多くのネットブックでとにかく行うべきです)。

あなたのプログラムがあなたの内部ドライブで最も多くのスペースを必要としていると確信していますか?xdiskusageなどのツールを使用して確認しましたか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.