É possível usar o rpm sem acesso root?
É possível usar o rpm sem acesso root?
Respostas:
Dependendo do conteúdo do pacote, você pode simplesmente extrair o conteúdo do rpm e usá-lo de algum lugar no diretório inicial. Mesmo que não seja sinalizado como realocável. Se os binários no pacote tiverem caminhos codificados ou se o aplicativo exigir acesso root, talvez não seja possível.
Existem muitas respostas sugerindo pacotes realocáveis. A opção de realocação é para os administradores escolherem o destino (tornar o destino / 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ão usando esse método, o principal problema é que, quando você executa operações rpm, está modificando os bancos de dados /var/lib/rpm/__db.* pertencentes a root: root. Então, como o JPerkSter disse "resposta curta = não". Configurar o sudo para permitir necessidades específicas provavelmente seria a melhor aposta.
Considerando todas as opções acima, em relação às compilações realocá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
A especificação do RPM contém uma opção chamada 'relocável'. Se o rpm for construído com a relocabilidade ativada, ele poderá ser instalado em um diretório especificado pelo usuário usando a opção '--prefix'. Portanto, presumivelmente, uma rpm poderia ser instalada localmente sem acesso de superusuário, desde que duas condições fossem atendidas:
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 foi criado para suportá-lo.
Alguns pacotes são realocáveis e, portanto, podem funcionar bem sem raiz, basta especificar o prefixo ao instalá-lo: rpm -i my.rpm --prefix = / my / home / folder
Se o pacote não for realocá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 a pasta ~ /, adicione bibliotecas de dependência adicionais e espere o melhor. Não garantido, mas você pode obter alguns pacotes não realocáveis funcionando dessa maneira.
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 vê-lo.
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
Sim, mas você pode não querer. Usei manifestos fantoches personalizados e pacotes rpm para manter o 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, existem peculiaridades na maneira como isso se comporta no EL4, EL5 e EL6, portanto, você precisará de um conjunto diferente de etapas e opções para cada um. Não tenho mais essas informações à mão. Essas peculiaridades, bem como os problemas freqüentes do banco de dados RPM (talvez devido ao NFS), me fizeram arrepender de usar o rpm.
rpm
comando sem acesso ao sudo / root.