Instale uma versão mais recente do aplicativo no $ HOME sem acesso root e vinculando ao aplicativo instalado

1

Eu sou novo em instalar o aplicativo a partir do código-fonte e apenas aprender as melhores práticas para fazer isso.

Eu tenho essa caixa linux sem acesso root com um emacs bem antigo, então baixei a versão mais recente e construí o seguinte:

  • faça o download para $HOME/SRC
  • configure e crie em $HOME/BLD com --prefix=$HOME
  • make e make install

Isso cria uma pasta bin em meu diretório inicial, que é o que eu esperava.

Agora, quando digito o emacs diretamente do terminal, ele ainda abre o antigo (como esperado). Então, eu tenho que fazer ~/bin/emacs . Eu adicionei este alias emacs=$HOME/bin/emacs ao meu .bash_profile , que funciona. Mas eu também poderia ter adicionado ~/bin a $PATH . No entanto, não tenho certeza qual é o recomendado. E as duas versões do emacs funcionariam sem qualquer conflito? compartilhando e substituindo ~/.emacs cada vez que uma versão diferente é aberta.

Qual é a melhor maneira de instalar novos aplicativos sem acesso root, onde uma versão mais antiga já está presente e se as etapas seguidas estão corretas.

    
por vis 03.03.2012 / 13:54

1 resposta

4

Ajuste seu PATH . Ele simplifica a execução, funciona como esperado e, depois de instalar mais aplicativos com o prefixo $HOME as, todos eles funcionarão conforme o esperado. Eu faria algo assim no meu arquivo RC:

PATH=$HOME/bin:$PATH
LD_RUN_PATH=$HOME/lib:$LD_RUN_PATH
export PATH LD_RUN_PATH

A configuração de LD_RUN_PATH deve permitir que os DSOs instalados localmente funcionem também.

O que você fez para instalar o emacs até agora é praticamente como é feito em ambientes multiusuários.

Esclarecimento: caminhos no Unix (e outros softwares que os usam, do DOS ao TeX) funcionam como listas de lugares, pesquisados da esquerda para a direita. No Unix, usamos dois pontos ( : ) para separar as entradas. Se você tem um PATH como /usr/local/bin:/bin:/usr/bin e está procurando um programa chamado foo , esses caminhos serão procurados na seguinte ordem:

  1. /usr/local/bin/foo
  2. /bin/foo
  3. /usr/bin/foo

O primeiro destes encontrado é usado. Portanto, dependendo de onde exatamente você insere um diretório, você pode fazer com que os binários instalados "substituam" outros. Conceitualmente, a ordem de PATH é tradicionalmente específica para genérica ou local para global. (claro, frequentemente adicionamos caminhos estranhos para suportar aplicativos independentes de terceiros e isso pode quebrar essa analogia)

    
por 03.03.2012 / 14:16