外部ドライブにプログラムをインストールすることは可能ですか?


9

Croutonを使用して、東芝ChromebookでUbuntu 14.04を実行しています。私のOSがインストールされているドライブは小さく、空き容量はわずか3.6 GBです。sageシステムにインストールしたいのですが、システムにsage6 GBの空き容量が必要です。

ただし、SDカードは常にユニットに挿入したままにします。カードには175 GBの空き容量があります。sageSDカードにインストールできますか?

sageコマンドでダウンロードしようとしている方法

apt-add-repository -y ppa:aims/sagemath
apt-get update
apt-get install sagemath-upstream-binary

などが見つかりました。ここに


Sageをどのようにインストールしますか?debパッケージから?アーカイブを解凍することによって?ソースからコンパイルすることによって?
Gilles「SO-邪悪なことをやめなさい」

@Gilles質問を更新して、インストール方法を含めましたsage
ブライアンフィッツパトリック

回答:


4

Debianパッケージをパッケージごとに異なるディスクに分割することは困難です。それに対するサポートはありません。dpkgデフォルト以外の場所にインストールするパッケージを個別に呼び出す必要があります。

ディレクトリツリーを別のディスクに配置するのは簡単です。幸いなことに、簡単な閲覧からわかる限り、PPAのSageパッケージはにほとんどのファイルをインストールします/usr/lib/sagemath。SDカードに簡単に入れられます。SDカードが(存在する場合)にマウントされているとし/media/sdcardます。そこでディレクトリを作成し、シンボリックリンクを作成します。

mkdir /media/sdcard/sagemath
ln -s /media/sdcard/sagemath /usr/lib/sagemath

次に、dpkgがインストールするすべてのファイル/usr/lib/sagemathは、SDカードに保存されます(ファイルがどのパッケージからのものかは関係ありません)。

SDカードが存在しない状態でSageを使用したり、Sageパッケージを管理しようとすると、エラーメッセージが表示されます。SDカードを挿入して操作を繰り返しても、害はありません。


ヒントをありがとう。私はあなたの提案に従ってインストールしましたsage。ただし、発行$ sageは戻りますbash: /usr/bin/sage: Permission denied
ブライアンフィッツパトリック

「実行可能ファイル」や所有者/グループ情報などの属性が必要な場合は、外部ドライブにUNIXタイプのファイルシステム(ext4、btrfsなど)が必要です。
Ned64

@ Ned64私のsdカードはext4です。
ブライアンフィッツパトリック

@BrianFitzpatrickあなたはvfatの上にposixovlfsが必要だと言っていましたが、これはext4なので特別なことは必要ありません。でも…SDカードはどうやってマウントしていますか?にuserオプションがある場合は、オプションを/etc/fstab追加しexecます。
Gilles「SO-邪悪なことをやめなさい」

@Gilles私のetc/fstab読み取り# UNCONFIGURED FSTAB FOR BASE SYSTEM
ブライアンフィッツパトリック

4

これは興味深い質問です。これを試行する方法をいくつか説明します。

方法#1:apt-getインストール中に場所を操作する

apt-getを使用すると、そうすることはできません。.debファイルを使用してインストールする場合も、これは不可能です。その理由は、インストールの場所がこれらのパッケージにハードコーディングされているからです。

インストール場所を操作するにはsage、ソースからコンパイルして、makefileインストールする前に修正する必要があります。これには、依存関係の管理の負担が伴います。

しかし、これについては議論があります。おそらく、人々はそれをしました。多分彼らは何とかして設置場所を操作しました。こちらこちらをご覧ください。これを行う方法を見つけた場合は、コメントを追加してください。

方法2:/ usrフォルダーの場所を変更する

/usrフォルダ自体の場所を変更して、外部カードに転送できます。通常、これは推奨されませんが、常に挿入したままにすると言っているので、問題ありません。

これを行うには、2つの方法があります。

  1. (推奨)外部カードにパーティションを作成し、現在の/usrフォルダーのすべてのコンテンツをそのパーティションに転送します。次に、を変更して/etc/fstab、そのパーティションを/usrフォルダーとしてマウントし、古い/usrフォルダーをすべて削除します。このすべてを行うには、レスキューディスクまたはライブCD / USBから起動する必要があります。

  2. この方法でも、最初にレスキューディスクまたはライブCD / USBから起動し、次に/usrフォルダーを外部カードに移動してから、新しいフォルダーへのシンボリックリンクを作成し/usrます。

PS

これは興味深い質問です。ハードディスクがいっぱいになったときに、私が最近考えていることです。私はこれらのいくつかを試し、私の答えを更新します。コメントは、これらの方法のいくつかを批判するために歓迎されています。

更新

@gillesの回答も参照してください。彼の提案はより良い。すべての/usrフォルダを外部カードに移動するのでは/usr/lib/sagemathなく、インストールの約3.1GBを占めるため、外部カードに移動します。したがって、メソッド#2では、このフォルダをの代わりに移動できます/usr


/usrSDカードに移動すると、SDカードが存在しないときにシステムが使用できなくなります。これは良い考えではありません。
Gilles「SO-邪悪なことをやめなさい」

はい。しかしOPは、カードは常に挿入されたままになると述べています。私はこれを私の回答で述べました。
シヴァム2015年

@ギレス私はあなたの答えです。あなたの提案は間違いなく優れています。
シバム
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.