web-dev-qa-db-ja.com

apt-getインストールディレクトリを変更するにはどうすればよいですか

Apt-getのデフォルトのインストールディレクトリは/ optです。別のディレクトリに変更できますか?

14
tommywang

私が考えることができる最良の方法は、シンボリックリンクを使用することです

すべてのプログラムが同じディレクトリにインストールされているわけではなく、/ optを移動するのが最適ではない場合があることに注意してください。 (たとえば、1つのフォルダー/プログラムのみを移動する例の終わりを参照してください)

これは私がEasyPeasy(Ubuntu 10.04)でしたことです

このコードに注意深く従ってください。いくつかのコマンドは、誤って使用すると重要なファイルを削除する可能性があります。

最初に、/ opt(またはディストリビューションのデフォルトのapt-getインストールディレクトリ)が空であることを確認する必要があります。 optフォルダーにデータがある場合は、データを最初に別の場所に移動して、安全に保管することができます。

Sudo mkdir /New_Location/newtmp                                      # Generates Temporary Folder for Programs 
Sudo cp -a /opt/* /New_Location/newtmp                               # Moves Programs to Temp folder

バックアップしたら、元のディレクトリを削除できます。

Sudo rm -rf /opt/                                                    # Removes opt directory

次に、十分な容量のあるドライブに新しいProgram Filesフォルダーを作成し、シンボリックリンクを作成できます。

Sudo mkdir /New_Location/Program-Files                               # Generates New Program Directory
Sudo ln -s /New_Location/Program-Files /opt                          # Creates Symbolic Link

最後に、すべての古いプログラムファイルを新しいフォルダに移動し、一時データをクリーンアップします。

Sudo cp -a /New_Location/newtmp/* /New_Location/Program-Files        # Moves Programs to Program Files Folder 
Sudo rm -rf /New_Location/newtmp/                                    # Removes Temp folder

スペースの一部を占有している単一のプログラムのみを移動したい場合は、同じプロセスを使用できます。

例:Java(JVM約300MB)を移動するには、次の手順を実行します。Javaのディレクトリを確認します。ディスク使用状況アナライザを使用します。鉱山は/ usr/lib/jvmです。

Sudo mkdir /New_Location/Program-Files/Java                          # Generates New Program Directory
Sudo cp -a /usr/lib/jvm/* /New_Location/Program-Files/Java            # Moves Program to new folder
Sudo rm -rf /usr/lib/jvm                                             # Removes opt directory
Sudo ln -s /New_Location/Program-Files/Java /usr/lib/jvm             # Creates Symbolic Link

この時点で、キャッシュをクリアする必要がある再起動を実行するのが最善です。

ハッピーハッキング限定知能

できません:インストールパスはパッケージにハードコードされています(例: http://packages.ubuntu.com/oneiric/i386/mono-runtime/filelist を参照)。このパスは通常/ optではなく/ usrですが、パッケージによって異なります。デフォルトのディレクトリを上書きする場合は、パッケージのコンテンツを手動で抽出する必要があります。ただし、機能しません。構成ファイルは、バイナリファイルであっても、引き続き古いパスを使用します。したがって、パッケージが正しく機能するためには、それらを更新する必要があります。

5
CedX