rpm sem raiz

11

É possível usar rpm sem acesso root?

    
por David Nehme 06.01.2010 / 21:11

9 respostas

1

Dependendo do conteúdo do pacote, você poderia simplesmente extraia o conteúdo do rpm e use-o de algum lugar dentro do seu diretório pessoal. Mesmo que não seja sinalizado como relocável. Se os binários no pacote tiverem caminhos codificados, ou se o aplicativo exigir acesso root, talvez não seja possível.

    
por 06.01.2010 / 22:16
9

Existem muitas respostas sugerindo pacotes relocáveis. A opção de relocação é para os administradores escolherem o destino (tornando o destino ser / opt em vez de / usr / local por exemplo) e não é realmente para permissões de usuário.

Embora seja possível contornar alguns problemas de permissões usando esse método, o problema MAJOR é que, quando você executa operações de rpm, ele está modificando os bancos de dados /var/lib/rpm/__db.* que são de propriedade root: root . Então, como JPerkSter disse "resposta curta = não". Configurar o sudo para permitir as necessidades específicas seria provavelmente a melhor aposta.

    
por 06.01.2010 / 22:57
8

Considerando todos os itens acima relacionados a construções relocáveis, você pode tentar seguir as instruções listadas aqui .

rpm --initdb --root /home/username/local --dbpath /home/username/local/lib/rpm
rpm --root /home/username/local --dbpath /home/username/local/lib/rpm \
 --relocate /usr=/home/username/local --nodeps -ivh package.rpm
    
por 06.02.2014 / 09:26
3

A especificação do RPM contém uma opção chamada 'relocatable'. Se o rpm for construído com relocatabilidade ativado, ele poderá ser instalado em um diretório especificado pelo usuário usando a opção '--prefix'. Então, presumivelmente, um rpm poderia ser instalado localmente sem acesso de superusuário, desde que duas condições sejam atendidas:

  1. O pacote foi originalmente criado para ser relocável
  2. O binário 'rpm' não tenta adicionar o pacote ao catálogo global do sistema

Mas, em geral, não, você precisa de acesso de superusuário para instalar um RPM. Embora a opção relocável exista, quase nunca vi um pacote que tenha sido construído para suportá-la.

    
por 06.01.2010 / 21:47
3

Alguns pacotes são relocáveis, então eles podem funcionar bem sem raiz, apenas especifique o prefixo ao instalá-lo: rpm -i my.rpm --prefix = / minha pasta / home /

Se o pacote não for relocável, você ainda poderá extrair os arquivos do RPM e tentar executá-lo. Você pode extrair arquivos RPM usando, por exemplo:

Copie os arquivos para sua pasta ~ /, adicione bibliotecas de dependências adicionais e espere pelo melhor. Não é garantido, mas você pode obter alguns pacotes não relocáveis que funcionam dessa maneira.

    
por 26.10.2012 / 18:35
2

Você pode forçá-lo a instalar em um diretório diferente usando um dbpath diferente. Além disso, você provavelmente não deve executar nenhum script diretamente sem verificá-los.

Isso colocará um rpm no diretório atual e extrairá os scripts para que você possa editá-los e executá-los, se necessário.

rpm --install --badreloc --relocate /='pwd' -dbpath 'pwd'/rpm_db --nodeps --noscripts package.rpm

rpm --query --scripts -p package.rpm > scripts.txt
    
por 24.04.2014 / 15:31
2

Sim, mas você pode não querer. Eu usei manifestos de fantoche personalizados e pacotes rpm para manter software em clusters de computação nos quais eu não tinha acesso root. Em teoria, é tão simples quanto

rpm --inittb --root /foo 
rpm --dbpath /foo -i bar.rpm

No entanto, há algumas peculiaridades em como isso se comporta em EL4, EL5 e EL6, então você precisará de um conjunto diferente de etapas e opções para cada um. Eu não tenho mais essa informação útil. Essas peculiaridades, assim como problemas freqüentes no banco de dados RPM (talvez devido ao NFS), fizeram com que eu me arrependesse de usar o rpm.

    
por 24.04.2014 / 17:28
1

Você pode criar RPMs sem acesso root, apenas dentro de seu diretório. Quanto a instalar o RPM, eu diria que a resposta curta = não.

    
por 06.01.2010 / 21:24
-2

não é possível o rpm sem o acesso root, su ou sudo

    
por 06.01.2010 / 21:35

Tags