一部のソフトウェアをリムーバブルメディアにインストールする予定です。いくつかの研究の終わりに、私は私の能力の中で望まれる3つのアプローチを見つけました。
インストールされたファイルをリムーバブルメディアに挿入し、そのフォルダを正しい場所にバインドします。
インストールされたファイルをリムーバブルメディアに保存し、リムーバブルメディアへのシンボリックリンクを作成すると、メディアが削除されるとリンクが破損する可能性があります。ただし、一般的にメディアが存在し、さらに重要なことは、プログラム(メディアがない限り実行されません)を除いて、何もフォルダにアクセスしようとしないことです。たとえば、LaTeXの/var/lib/texmfフォルダへのリンクが壊れても心配する必要はありません。
ソースからビルドすることがオプションの場合、システムに依存関係が見つからないプログラムを使用する
./configure --prefix=/path/to/media/
(または同様に)問題がありますか?dpkg -i --force-not-root --root=/path/to/media package.deb
これらのアプローチには明らかな長所や欠点がありますか?私が逃したものはありますか?他のコメントはありませんか?
編集する:私がインストールしたいほとんどのソフトウェアは数学関連のソフトウェアです。 2つの主なプログラムはLaTeXとSageです。最初にこれを試してみたので、両方のプログラムはすでにローカルで動作していることに気づきました。賢人、エマルジョン)これは無意味ですが、まだ問題があると思います(特に統合インストール/symlinkを呼び出すことができる場合は、「システム統合」がうまく機能する場合)。だから投稿すると思いました。また、Mathematicaを使ってみたいのですが、ライセンスなどで動作するかどうかはわかりません。 MPIは後でインストールすることもできます。リンクが途切れるのを防ぐ最善の方法は、インストールやコンパイルになりそうです。
答え1
マーティンボディフェロスこのパッケージを使用して、Linuxでインストールを自動化する方法に関する素晴らしいクイックガイドを作成しましたudev
。ここに全内容のコピーがありますが、そこにあるコメントもぜひご確認ください。
sudo nano /etc/udev/rules.d
# automounting usb flash drives
# umask is used to allow every user to write on the stick
# we use --sync in order to enable physical removing of mounted memory sticks -- this is OK for fat-based sticks
# I don't automount sda since in my system this is the internal hard drive # depending on your hardware config, usb sticks might be other devices than sdb*
ACTION=="add",KERNEL=="sdb*", RUN+="/usr/bin/pmount --sync --umask 000 %k"
ACTION=="remove", KERNEL=="sdb*", RUN+="/usr/bin/pumount %k"
ACTION=="add",KERNEL=="sdc*", RUN+="/usr/bin/pmount --sync --umask 000 %k"
ACTION=="remove", KERNEL=="sdc*", RUN+="/usr/bin/pumount %k"
KERNEL=="sdb*",
関連ビットについて注意KERNEL=="sdc*",
してください。 ' を使用すると、UUID
udev が再接続された USB ポートに関係なく、正しいドライブを正しいディレクトリパスに自動的にマウントすることができます.クイック検索が登場しましたArch Linuxsdb*またはsdc*の代わりにuuidを使用してエラーが発生しやすいマウント方法のフォーラム投稿です。ドライバが自動的に正しくマウントされたら、export PATH=/mnt/media/some_usb/program/:$PATH
そのユーザー名でプログラムを呼び出すことができるように、シェルの環境変数に適切な行を追加するだけです。
答え2
検索*.so
:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:your_lib_dir
実行可能検索の場合:
export PATH=$PATH:your_executable_dir
これら2つの環境変数で十分だと思います。