Установка программ на съемном диске

Я планирую установить некоторое программное обеспечение на съемные носители (которые предположительно всегда будут присутствовать на компьютере, хотя возможно, что там могут быть случаи, когда он отсутствует). Проведя некоторые исследования, я видел три способа, которые кажутся предпочтительными, а также в моих возможностях:

  1. Наличие установленных файлов на съемном носителе и привязка их папок к соответствующим местам

  2. Наличие установленных файлов на съемном носителе и создание символических ссылок на съемный носитель; Это может привести к поломке ссылки при удалении носителя. Тем не менее, средства массовой информации обычно присутствуют и, возможно, что более важно, не должно быть ничего, пытаясь получить доступ к папкам, отличным от программы (которые не будут запускаться, если носитель отсутствует). Например, ничто не должно заботиться, если есть некорректная ссылка на папку / var / lib / texmf в LaTeX.

  3. Если источник из источника является опцией, используйте ./configure --prefix=/path/to/media/ (или, возможно, аналогично, dpkg -i --force-not-root --root=/path/to/media package.deb ) Будут ли проблемы с программами, которые не находят своих зависимостей, которые будут расположены в системе?

Являются ли какие-либо из этих методов превосходными или низшими? Есть что-то, чего я не хватает? Есть ли другие комментарии?

EDIT: Большая часть программного обеспечения, которое я планирую установить, предназначена для математики. Двумя основными программами являются LaTeX и Sage. Поскольку я изначально решил попробовать это, я понял, что обе эти программы уже могут выполняться локально ( Sage , LaTeX ), которые видят суть проблемы, но мне все еще интересно узнать о ней (особенно если «системная интеграция», , если вы можете вызвать интеграцию mount / symlinking, будет работать лучше), поэтому я думал, что опубликую его. Я также подумал, что дам Mathematica попробовать, но не был уверен, будет ли это работать из-за лицензирования и т. Д. MPI может быть установлен в будущем; Я думаю, что монтирование или компиляция может быть лучше всего, чтобы избежать неработающей ссылки.

2 Solutions collect form web for “Установка программ на съемном диске”

Мартин Монперрус написал замечательное руководство по автоматической установке на Linux с использованием пакета udev . Вот копия ussefull бит, но обязательно проверьте комментарии там тоже

 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*", являются relotive и вы можете использовать UUID , чтобы убедиться, что udev автоматически монтирует правильный диск на правильный путь к каталогу, независимо от того, какой USB-порт он подключается повторно. Быстрый поиск поднял сообщение на форуме Arch Linux при использовании uuid вместо sdb * или sdc *. После правильного монтирования накопителя требуется только добавить правильную export PATH=/mnt/media/some_usb/program/:$PATH оболочки, чтобы программа могла вызываться по имени для этого пользователя.

Для поиска *.so :

 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:your_lib_dir 

Для исполняемого поиска:

 export PATH=$PATH:your_executable_dir 

Я думаю, что этой переменной среды достаточно.

  • Как использовать ls, используя длинный формат (-l), в то же время следуя символическим ссылкам каталога?
  • Сделать `rsync -link-dest` поиск файлов рекурсивно
  • Gzip большое количество символических файлов
  • Символ ссылки на разрешение каталогов запрещен
  • Создайте символическую копию другого каталога, у которого есть свои локальные данные
  • Предварительная настройка целевого каталога GNU Stow по умолчанию
  • Как отключить файл, символически привязанный к себе, без разрушения
  • Почему bash дает мне (видимо) противоречивую информацию о файле?
  • ln дает разные результаты при многократном запуске
  • Как скопировать каталоги и файлы symlink?
  • Можно ли загрузить файл ссылки из веб-каталога?
  • Linux и Unix - лучшая ОС в мире.