it-swarm-pt.tech

Instalando software no Linux sem privilégios de root

No meu local de trabalho, tenho uma conta de usuário regular nas máquinas RedHat e Suse. Eu não tenho privilégios de root.

Como posso instalar o software que baixei da Internet (de fontes ou binários)?

Por exemplo, agora eu quero instalar o Geany IDE para meu próprio uso. Tentei baixar fontes e compilar, e tentei instalar o RPM, mas não funciona porque requer a raiz.

7
Igor Oks

Você pode instalar o software em seu próprio diretório pessoal. Se você se sentir confortável compilando a partir do código-fonte e o pacote usa automake, você pode usar a seguinte opção no configure:

--prefix=$HOME/install

como queiras. Da mesma forma, o rpm também tem uma opção de prefixo. No entanto, isso só funciona se o rpm for construído para ser relocável.

12
Scott Pack

Eu uso JuJ que basicamente permite ter uma distribuição Linux muito pequena (contendo apenas o gerenciador de pacotes) dentro do diretório $ HOME/.juju.

Ele permite ter seu sistema personalizado dentro do diretório home acessível via proot e, portanto, você pode instalar qualquer pacote sem privilégios de root. Ele será executado corretamente em todas as principais distribuições do Linux, a única limitação é que o JuJu pode ser executado no kernel do Linux com a versão mínima recomendada 2.6.32.

Por exemplo, após instalar o JuJu para instalar o pip, basta digitar o seguinte:

$>juju -f
(juju)$> pacman -S python-pip
(juju)> pip
8
user967489

Na maioria das vezes, você pode passar PREFIX para configurar para instalá-lo em seu diretório inicial:

./configure --prefix=/home/ioks/bin

Isso pode contornar os problemas de permissões.

6
Kyle Brandt

Aqui está um documento muito bom explicando o uso não root do RPM:

"Disseram a você que trabalhar com RPMs precisa de privilégios de administrador do sistema? Você foi enganado."

http://www.nordugrid.org/documents/rpm_for_everybody.html

4
Jean Jordaan

Se você quiser instalá-lo no local padrão (/ usr/bin, etc), a resposta curta é que você não o fará, a menos que o administrador do sistema configure algo especial para permitir que você faça isso.

Se você está compilando a partir do código-fonte, a maioria dos pacotes tem uma opção --prefix que permite definir um destino de instalação não padrão. Isso permite que você instale coisas em seu diretório pessoal, incluindo bibliotecas que você pode usar para outros pacotes de software.

3
jj33

Hmmm. Não que isso seja algo que um usuário possa fazer, mas eu me pergunto se faria sentido haver sistemas de arquivos "sobrepostos" por usuário (union-fs, etc) que se sobrepusessem aos diretórios de instalação do sistema "padrão" e, assim, permitir usuários sem privilégios para instalar o software nos locais 'normais'.

Você também pode usar um sistema de arquivos global union-fs para separar o software não-padrão instalado pelo administrador (que geralmente fica em/usr/local/* em muitos sistemas) dos pacotes de distribuição. (Talvez também para separar atualizações, e até mesmo permitir "roll-back" ala XP System Restore).

Hmmm

1
jesup

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

1
JPCF