obteniendo el error "No se puede crear el bloqueo de transacción" con rpm

8

Poco a poco estoy progresando en la instalación de Fedora en un volumen lógico para una DomU usando Package Management. He resuelto (con la ayuda de personas maravillosas en Unix y Linux ) una serie de problemas, principalmente relacionados rpm(ver enlaces a continuación):

Estoy usando la --rootopción con rpmpara cambiar mi nueva versión de rpm a /mnt/fedRoot. También he ordenado rpmmirar el rpmrcarchivo en la carpeta de compilación, en lugar de en el archivo real /var/lib/rpm. Ahora Desafortunadamente, en cualquier archivo rpm corro aunque yo estoy haciendo: error: can't create transaction lock on /mnt/fedRoot (Is a directory). Mirando en línea, encontré algunas páginas que indicaban que esto era un problema con el __db.*. Aunque eliminarlos y reconstruir el db dentro de mi rpmcarpeta solucionó otro problema, todavía recibo el transaction lockerror.

¿Alguien tiene una idea de este error?

Hari Seldon
fuente
1
Si tiene un archivo llamado / var / lock / rpm / transacción, intente eliminarlo.
fpmurphy
1
¿ /mnt/fedRoot/var/lib/rpmexiste el directorio ? en analogía a redhat.com/archives/rpm-list/2007-May/msg00046.html , ¿qué rpm --root=/mnt/fedRoot -E '%{_rpmlock_path}'dice?
Andre Holzner
¿Alguna actualización sobre este problema? ¿Respuestas a las dos sugerencias anteriores?
Caleb
Perdón por la falta de respuesta, gracias por mantenerme honesto @Caleb. El comando señaló /usr/lib/rpm/macros. Creo que el problema era que estaba tratando de usar una versión de las rpm de instalación de fedora que no era compatible con las rpm de CentOS que estaba usando. No sé si eso realmente tiene sentido (para los expertos de Linux), pero pude instalar otra versión de CentOS sin ningún problema, por eso es en lo que me estoy basando. He decidido dar un paso atrás e intentar aprender un poco más sobre Linux antes de intentar un sistema xen completo de nuevo. Por ahora estoy usando Fedora 14 como mi sistema principal.
Hari Seldon

Respuestas:

11

Intenta ejecutar tu comando como root. Funcionó para mi.

Phathutshedzo
fuente
1
¿Por qué correr como roottrabajo?
Kevin Meredith
Sí, ¿por qué requiere acceso de usuario root?
LoveWithMaths
0

Algo más está sosteniendo esa cerradura. Espera un momento. (Por lo general, es la herramienta gráfica de administración de paquetes que actualiza su vista de lo que está disponible, o tal vez una ejecución de yum).

vonbrand
fuente
0

verifique el permiso de nivel de archivo para el usuario root, debe ser (leer, escribir y ejecutar)

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

Actualización 2019 :::

Se encontró con un problema similar al solicitado (RPM falló: error: no se puede crear el bloqueo de transacción en /var/lib/rpm/.rpm.lock (Recurso temporalmente no disponible))

Resuelto por;

ps -ef|grep rpm

Y matar 2 procesos rpm huérfanos como se muestra a continuación;

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

Luego pude continuar con la actualización de paquetes

MarcoZen
fuente
-1

Intente eliminar el /var/lib/rpm/.rpm.lockarchivo (debe ser root para hacer esto). Eso me lo arregló.

Cayo Graco
fuente
77
Ahora obteniendo errorcan't create transaction lock on /var/lib/rpm/.rpm.lock (No such file or directory)
shashwat
-2

Como tiene un error de "no se puede crear el bloqueo de transacción en rpm", para resolver este error e instalar el paquete requerido en su máquina, solo tiene que iniciar sesión en su usuario raíz a través de la ventana de terminal "su -root" y luego Instale su paquete rpm. El error se resuelve.

Manju
fuente
2
¿Puede resaltar lo que su respuesta agrega más allá de las respuestas existentes?
Anthon