アプリケーションを別のHDDにインストールする方法は?


10

私は窓がとても上手でしたが、今では完全なばかのように感じています。

ubuntu用のSSDがあり、プログラムの大部分を別のHDDにインストールしたいのですが、方法がわかりません。
私が試したすべての検索は、デュアルブートインストールでのみ検出されます。

  • (解決済み->) 「/ etc /」の検索にも問題があります。具体的には、Conkyを変更します。
    この用語を検索すると、このファイルにアクセスする方法ではなく、ユーザーがこのファイルにアクセスするように指示されているインスタンスのみが表示されます。

1
これを見てください。始めましょう。
ミッチ

私はすべてがホームフォルダーから拡張されているような印象を受けました。おっと。あなたがリンクしたそのページは私の問題に関しては役に立ちませんでしたが、私は今それを読んで多くを学んでいるので、ありがとう。
plaguedoctor 2013年

mountタグとfstabタグを追加しました。特定のファイルシステムを特定のパーティションまたはドライブにマウントするように手動で設定することで、説明していることを実行できます。
belacqua 2013年

@belacquaそれ以外の方法はありますか?別のドライブに特定のファイルシステムが必要なだけでなく、特定のプログラムのすべてのファイルシステムが必要です。そうすれば、ゲーム/ virtualboxなどが完全に私のSSDにあり、libreoffice / thunderbirdのようなものがHDDの1つに完全にあるように、それらが私のシステムの集中度でソートできます。
plaguedoctor 2013年

特定のインストールとそのファイルがどこに存在するかを判別するのはそれほど簡単ではありません。シンボリックリンクのようなものも使用できますが、簡単に始めることをお勧めします。サンプルアプリケーションを見つけ、ここで具体的な質問をして(またはこれを一般的でないものに変更して)、そこから行きます。または慎重に実験してください。
belacqua 2013年

回答:


22

WindowsとGNU / Linuxの間には大きな違いがあります。Windowsでは、各プログラムが依存するすべてのライブラリと共に、別のフォルダにインストールされることが一般的です。これは、ライブラリを使用する各プログラムに対して、ライブラリが複数回インストールされるため、多くの場合、無駄なディスク領域の無駄になります。

Linuxでは、プログラムはFilesystem Hierarchy Standard(FHS)に従ってインストールされます。つまり、プログラムが依存するライブラリはすべて共通の専用の場所にインストールされるため、使用するプログラムの数に関係なく、通常は一度だけインストールされます。また、プログラムは、特定のライブラリの同じバージョンを使用するように構築されています。これはディスクスペース(および実行時のRAM)を節約しますが、少なくともシステム構成ファイル(たとえば/etc/ld.so.conf.dを編集しないと)を異なるパーティションまたはハードディスクにプログラムを自由にインストールできないという欠点があります。別のライブラリフォルダーを含める)。

DebianパッケージシステムはFHSを考慮して実装されているため、私が知る限り、Debianパッケージをインストールする予定のフォルダとは異なるフォルダにインストールして、手動で移動せずに機能させる簡単な方法はありません。その後、ファイルを編集します。これは、パスがコンパイル時にハードコードされることが多いためです。したがって、たとえばdpkg --instdir=folder/ package.debコマンドラインを使用してパッケージを別のフォルダーにインストールした場合でも、プログラムは 'folder / etc'ではなく '/ etc'でその構成を探しますが、付属の構成ファイルはもちろんパッケージは 'folder / etc'にインストールされました...メニューファイルはfolder / usr / share /ではなく '/ usr / share applications'にあるはずなので、プログラムもメニューに追加されません。アプリケーション。

もちろん、プログラムをソースコードから手動で構成およびコンパイルして、バイナリファイルとデータパーツを好きな場所にインストールし、構成ファイルをFHS準拠の場所にインストールすることもできますが、これは私がお勧めするものです上級ユーザー。ソースからコンパイルする場合は、debianパッケージを自動的に作成するツールであるcheckinstallをご覧ください。

linuxfromscratchで提案された別のオプションは、パッケージを適切な場所に解凍し、対応するFHSの場所にインストールされているすべてのファイルへのシンボリックリンクを作成することです。

コメントであなたがゲームについて言及していたので、Ubuntu Software Center経由で購入されない多くのゲームはインストーラーの実行可能ファイルとして提供され、それらはもちろん任意のフォルダー、通常はホームディレクトリのサブフォルダーにインストールできます。WINEを使用して実行されているWindowsゲームも、任意のディレクトリにインストールできます。wineにはWINEPREFIXと呼ばれる環境変数があり、それを使用して、独自の仮想C:ドライブを含む多数の独立したWINEフォルダを設定できます。詳細については、WINEのマニュアルページを参照してください。

ゲーム/プログラムがDebianパッケージとして提供されている場合でも、お気に入りのアーカイブマネージャーでパッケージの内容を確認できます。ゲームが/ optにインストールされる場合、通常、/ optはFHSに準拠していないプログラムのインストール場所として使用されるため、別のフォルダーに安全にインストールできます。


正しい投票に値するO
Rinzwind 2013

1
それでも、それは完全ではありません。任意の場所にパッケージをインストールするために何が必要か、どのファイルを編集する必要があるか、どの環境変数を設定する必要があるかを詳しく説明しなかったためです。それが中型の小説になるのではないかと心配しています...
soulsource

1
気にしません。/ etc /を別の場所にマウントするだけです。SSDからディスクロードの90%を使用します。
Rinzwind 2013

5

TL; DR

  1. インストールしたばかりのUbuntuのバージョンで外部USBディスクを起動します。私は/dev/sdaSSDで/dev/sdbあり、HDDであると想定しています。

  2. HDDにパーティションを作成し、gpartedを使用して、インストールするすべてのアプリケーション(たとえば64 GB)を含めます。これは、HDDに作成する3番目のパーティションになると思います(/dev/sbd3

  3. 次のコマンドを実行します。

    mkdir /media/apps
    mount /dev/sdb3 /media/apps
    mkdir /media/apps/usr
    cp --preserve=all --recursive /opt /media/apps
    cp --preserve=all --recursive /usr/bin /media/apps/usr
    
  4. sudo nano後に以下の権利が含まれるように、エントリ(ルートディレクトリ)fstab/dev/sda1/etc//

    /dev/sdb3  /media/apps          ext4   errors=remount-ro  0   0 
    /opt       /media/apps/opt      none   defaults,bind      0   0
    /usr/bin   /media/apps/usr/bin  none   defaults,bind      0   0
    
  5. 再起動してテスト

長いバージョン:

Unix / Linux / Ubuntuはデスクトップを備えたサーバーOSであると考えられていたのに対し、WindowsはデスクトップOSであると考えられており、サーバーは後付けとなっています。

したがって、Linux Filesystem Hierarchy Standardでは、無制限のドライブ/パーティションをどこにでも配置して、それらを正しいドライブまたはパーティションにバインドし、ユーザーに対して完全に透過的にすることができます。これに対して、Windows OSは最大24のアクセス可能なドライブ/パーティション(as C:からZ:A:およびB:フロッピーディスク用に予約されています。)

自分でインストールするほとんどのアプリケーションはとにインストールされるので、Ubuntuを通常の方法でインストールして/opt/から/usr/bin、以下の手順に従って/dev/sda、SSD、/dev/sdbHDD /dev/sdd、USBスティックを確認します。

  1. インストールしたばかりのUbuntuのバージョンで外部USBディスクを起動します。
  2. HDDにパーティションを作成し、gpartedを使用して、インストールするすべてのアプリケーション(たとえば64 GB)を含めます。これは、HDDに作成する3番目のパーティションになると思います(/dev/sbd3
  3. そのパーティションを一時ディレクトリにマウントします。

    mkdir /media/apps
    mount /dev/sdb3 /media/apps
    
  4. 既存のコピー/opt/usr/binそこに:

    mkdir /media/apps/usr
    cp --preserve=all --recursive /opt /media/apps
    cp --preserve=all --recursive /usr/bin /media/apps/usr
    
  5. sudo nano後に以下の権利が含まれるように、エントリ(ルートディレクトリ)fstab/dev/sda1/etc//

    /dev/sdb3  /media/apps          ext4   errors=remount-ro  0   0 
    /opt       /media/apps/opt      none   defaults,bind      0   0
    /usr/bin   /media/apps/usr/bin  none   defaults,bind      0   0
    
  6. 再起動してテスト

  7. すべてが正常に動作する場合は、再度USBスティックに、再起動、削除のすべて/dev/sda1/opt/dev/sda1/usr/bin今時代遅れのディレクトリでまだ使用中のディスク領域を再利用するためには、既にどこかに取り付けられました。

警告:ハードウェア障害が原因でマウントされないというまれなケースでは、最後のコマンドでシステムがクラッシュする可能性もあります/dev/sbd3


Windowsは、実際には約10年間、ルート以外のパスにドライブをマウントするための同じサポートを持っています。また、これらのドライブ文字はユーザーごとにマップできるため、H:\をユーザーごとのホームディレクトリにすることもできます。大きな驚きはありません。WindowsNTシリーズは、VMSから発想を得たもので、非常にマルチユーザーシステムです。UnixもサーバーOSとしては考えられていませんでした。AT&Tは電話交換機を作りました。また、UNIXは特に、当初マルチユーザー指向ではないという点で、Multicsの発想とは異なります。電話交換機では、その必要はありませんでした。
MSalters

@MSaltersわあ、AT&T電話切り替えビットを知らなかった...私 VMS / NTの部分を覚えており、そのM $はDECのPrinciple EngineerとOS / 2の部分も雇ったが、それ以前はシングルだった。ユーザーが先制的にマルチタスクデスクトップシェル。 > :-)更新されました!
Fabby

1
Windows は、DOSの一部のバージョン(他の文字など)と同様に1:、文字以外のドライブ(!:など)もサポートしています[:。Windowsは24パーティションに制限されていません(ボリュームマウントポイントを検索)。Windowsの初期のバージョン(95より前)では、Windowsプロセス間でプリエンプティブではなく協調的なマルチタスクが使用されていました。(拡張モードで)DOS VMのみが先制的にマルチタスク処理されました。
Stephen Kitt

1
私はUNIXグループのAT&Tで働いていました。それは電話交換機としての生活を始めませんでした。
stevegt

@MSalters Unixは、電話交換機とは何の関係もないようですが、責任のある会社が両方を開発しました。そして、その名前が作り出されたころ、ごく初期の段階でマルチユーザーだったようです。SE RCでこの回答を参照してください。
ピーター-モニカの復活

2

Chromebookで使用した解決策は、パッケージをインストールするのではなく、対応する.tar.gzをダウンロードすることです。

これはあなたが探しているものではないかもしれませんが、非常に小さなドライブがあり、重要なソフトウェア(GNOMEデスクトップ、Webブラウザー)を追加のソフトウェア(GIMP、IDE、ゲーム)から分割してローカルスペースを節約し、外付けドライブがなくてもコンピューターを機能させることができます。これまでのところ、IMOは最良のソリューションです。

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