Como instalar o programa localmente sem privilégios sudo?

57

Suponha que eu tenha acesso ssh a algum servidor Ubuntu como usuário e eu preciso que algumas ferramentas do sistema não sejam instaladas por conveniência (mc, rtorrent, mcedit). Eu não quero incomodar os administradores para esses pequenos programas.

Existe uma maneira de instalá-los (executá-los) sem usar algo como sudo apt-get install ?

    
por yura 08.07.2012 / 05:27

4 respostas

25
  1. Compile e instale em ~/bin (e edite seu .bashrc para definir o PATH para incluí-lo). bibliotecas podem, da mesma forma, ser compiladas e instaladas em ~/lib (definir LD_LIBRARY_PATH para apontar para isso), e os cabeçalhos de desenvolvimento podem ser instalados em, e. ~/includes .

  2. Dependendo dos detalhes específicos dos programas que você deseja instalar e das bibliotecas das quais eles dependem, você pode baixar os arquivos .deb e usar ' dpkg-deb -x ' para extraí-los sob seu diretório pessoal. Você terá muita "diversão" definindo o PATH , LD_LIBRARY_PATH e outros variables . Quanto mais complexo o programa ou aplicativo que você está instalando, mais divertido você estará:)

    Você, é claro, não conseguirá instalar setuid binários dessa forma - eles instalarão, mas (já que você não tem permissão para chown-los para root ou definir o setuid bit neles) eles serão apenas binários normais de sua propriedade.

    De forma semelhante, os daemons e serviços do sistema que esperam estar em execução como um determinado UID ou que têm a capacidade de alterar o uid, ou esperam que os arquivos estejam em /etc rather ~/etc e assim por diante provavelmente não funcionarão bem, se em tudo.

  3. A maioria dos sysadmins consideraria que mc e mcedit seriam "inofensivos", programas inócuos.

    Muito poucos, no entanto, considerariam a instalação de um cliente de torrent inofensivo, especialmente se eles tiverem que pagar por largura de banda ou acabar sendo legalmente responsáveis. A maioria dos administradores de sistema provavelmente não ficaria totalmente feliz se os usuários finais instalassem esse software sem permissão. Eles podem dizer "claro, vá em frente, bata para fora" ou eles podem não ... mas você deve perguntar sobre qualquer coisa que possa causar problemas para os proprietários / administradores da máquina.

por 08.07.2012 / 15:18
43

Você precisa compilá-los da fonte. Deve ser apenas uma questão de

apt-get source PACKAGE
./configure --prefix=$HOME/myapps
make
make install

O binário seria então localizado em ~/myapps/bin . Portanto, adicione export PATH="$HOME/myapps/bin:$PATH" ao seu arquivo .bashrc e recarregue o arquivo .bashrc com source ~/.bashrc . Claro, isso pressupõe que o gcc esteja instalado no sistema.

    
por 08.07.2012 / 05:52
5

Você pode usar JuNest , que cria um pequeno container Linux no diretório do usuário, onde você pode instalar qualquer pacote.

    
por 30.11.2014 / 22:28
0

Estou tendo o mesmo problema que você. Eu não tentei ainda, mas parece que Linuxbrew pode ser útil sobre esta questão.

    
por 19.02.2017 / 17:31