recebendo erro "Não é possível criar bloqueio de transação" com rpm

8

Estou lentamente progredindo na instalação do Fedora em um Volume Lógico para um DomU usando o Gerenciamento de Pacotes. Eu (com a ajuda de pessoas maravilhosas no Unix e Linux ) resolvi uma série de problemas, principalmente ao redor rpm(veja os links abaixo):

Estou usando a --rootopção com rpmpara alterar minha versão recém-criada do rpm para /mnt/fedRoot. Também direcionei rpma olhar para o rpmrcarquivo na pasta de compilação, e não no real /var/lib/rpm. Agora Infelizmente, em qualquer arquivo rpm eu corro embora eu estou recebendo: error: can't create transaction lock on /mnt/fedRoot (Is a directory). Procurando online, encontrei algumas páginas que indicavam que esse era um problema com o __db.*. Embora a exclusão e a reconstrução do banco de dados na minha rpmpasta tenham corrigido outro problema, ainda estou recebendo o transaction lockerro.

Alguém tem informações sobre esse erro?

Hari Seldon
fonte
1
Se você possui um arquivo chamado / var / lock / rpm / transaction, tente excluí-lo.
fpmurphy
1
o diretório /mnt/fedRoot/var/lib/rpmexiste? em analogia a redhat.com/archives/rpm-list/2007-May/msg00046.html , o que rpm --root=/mnt/fedRoot -E '%{_rpmlock_path}'diz?
181111 Andre Holzner
Alguma atualização sobre esse problema? Respostas para as duas sugestões acima?
Caleb
Desculpe pela falta de resposta, obrigado por me manter honesto em @Caleb. O comando apontou /usr/lib/rpm/macros. Acho que o problema era: eu estava tentando usar uma versão de um rpm de instalação do fedora que não era compatível com o rpm do CentOS que eu estava usando. Eu não sei se isso realmente faz sentido (para especialistas em linux), mas consegui instalar outra versão do CentOS sem problemas, e é nisso que estou baseando isso. Decidi dar um passo atrás e tentar aprender um pouco mais sobre o linux antes de tentar um sistema xen completo novamente. Por enquanto estou usando o Fedora 14 como meu sistema principal.
Hari Seldon

Respostas:

11

Tente executar seu comando como root. Funcionou para mim.

Phathutshedzo
fonte
1
Por que correr como rootfunciona?
Kevin Meredith
Sim, por que requer acesso de usuário root?
LoveWithMaths
0

Algo mais está segurando esse cadeado. Espere um pouco. (Geralmente, é a ferramenta gráfica de gerenciamento de pacotes que atualiza a visualização do que está disponível, ou talvez um pouco do yum).

vonbrand
fonte
0

verifique a permissão no nível do arquivo para o usuário root, ele deve ser (leia, escreva e execute)

$ls -l /var/lib/rpm/.rpm.lock
-rwxr-xr-x
syed
fonte
0

Atualização de 2019 :::

Ocorreu um problema semelhante ao solicitado (falha no RPM: erro: não é possível criar um bloqueio de transação em /var/lib/rpm/.rpm.lock (recurso temporariamente indisponível))

Resolvido por;

ps -ef|grep rpm

E matando 2 processos órfãos rpm, como mostrado abaixo;

rpm --root / --dbpath /var/lib/rpm -i --percent --noglob --force --nodeps -- /var/cache/zypp/packages/download.o
/bin/sh /var/tmp/rpm-tmp.uHUmw1 7

Pude prosseguir com a atualização de pacotes

MarcoZen
fonte
-1

Tente remover o /var/lib/rpm/.rpm.lockarquivo (precisa ser root para fazer isso). Isso consertou para mim.

Gaius Gracchus
fonte
7
Agora obtendo errocan't create transaction lock on /var/lib/rpm/.rpm.lock (No such file or directory)
shashwat 8/15
-2

Como você está tendo o erro 'não é possível criar o bloqueio de transação no rpm', para solucionar esse erro e instalar o pacote necessário em sua máquina, basta fazer login no seu usuário root através da janela do terminal 'su -root' e depois instale seu pacote rpm. O erro foi resolvido.

Manju
fonte
2
Você pode destacar o que sua resposta adiciona acima e além das respostas existentes?
Anthon