Instalando programas em uma unidade removível

5

Estou planejando instalar algum software em mídia removível (que presumivelmente sempre estará presente no computador, embora seja possível que haja ocasiões em que ele esteja ausente). Depois de fazer algumas pesquisas, vi três maneiras que parecem ser preferíveis e também dentro das minhas habilidades:

  1. Ter os arquivos instalados na mídia removível e vincular a montagem de suas pastas nos locais apropriados

  2. Tendo os arquivos instalados na mídia removível e criando links simbólicos para a mídia removível; Isso pode criar um link quebrado se a mídia for removida. No entanto, a mídia geralmente estará presente e talvez mais importante, não deve haver nada tentando acessar as pastas além do programa (que não seria executado se a mídia não estivesse presente). Por exemplo, nada deve se importar se houver um link quebrado para a pasta / var / lib / texmf do LaTeX.

  3. Se construir a partir da fonte for uma opção, usando ./configure --prefix=/path/to/media/ (ou possivelmente da mesma forma, dpkg -i --force-not-root --root=/path/to/media package.deb ) Haverá problemas com os programas não encontrando suas dependências que seriam localizadas no sistema?

Algum desses métodos é obviamente superior ou inferior? Há algo que eu esteja perdendo? Há algum outro comentário?

EDIT: A maioria do software que eu pretendo instalar é para matemática. Os dois programas principais são o LaTeX e o Sage. Desde que eu tinha originalmente decidido tentar isso, percebi que ambos os programas já podem ser executados localmente ( Sage , LaTeX ) que tipo de torna o ponto discutível, mas ainda estou curioso sobre a questão (especialmente se "integração do sistema", se você puder chamar montagem / conexão simbólica integrada, funcionaria melhor), então eu pensei em publicá-la. Também achei que daria uma chance ao Mathematica, mas não tinha certeza se funcionaria devido ao licenciamento e tal. MPI pode ser instalado no futuro; Acho que montar ou compilar pode ser melhor para evitar um link corrompido.

    
por Jacob Bond 19.12.2015 / 06:43

2 respostas

0

Martin Monperrus escreveu um maravilhoso guia rápido para montagem automática no Linux usando o pacote udev . Aqui está uma cópia dos bits ussefull, mas não se esqueça de verificar os comentários lá também

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"

Observe que os bits sobre KERNEL=="sdb*", e KERNEL=="sdc*", estão em destaque e você pode usar UUID para garantir que o udev monitore automaticamente a unidade correta para o caminho correto do diretório, independentemente da porta USB reconectado. Uma busca rápida tirou uma postagem no fórum do Arch Linux sobre o uso de uuid em vez de sdb * ou sdc * propenso a erros maneira de montar. Uma vez que a unidade é montada de maneira apropriada, ela só precisa adicionar a linha export PATH=/mnt/media/some_usb/program/:$PATH adequada às variáveis do ambiente do shell, para que o programa possa ser chamado pelo nome para esse usuário.

    
por 12.01.2016 / 15:17
0

Para *.so search:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:your_lib_dir

Para pesquisa executável:

export PATH=$PATH:your_executable_dir

Acho que essa variável de ambiente é suficiente.

    
por 29.01.2016 / 13:55