получая ошибку «Не могу создать блокировку транзакции» с rpm

8

Я постепенно делаю успехи в установке Fedora в логический том для DomU с помощью управления пакетами. Я (с помощью замечательных людей из Unix & Linux ) решил ряд проблем, в основном связанных с rpm(см. Ссылки ниже):

Я использую --rootопцию, rpmчтобы изменить мою вновь созданную версию rpm на /mnt/fedRoot. Я также поручил rpmпосмотреть на rpmrcфайл в папке сборки, а не на фактический /var/lib/rpm. Теперь , к сожалению, на любой файл оборотов я бегу , хотя я получаю: error: can't create transaction lock on /mnt/fedRoot (Is a directory). Просматривая онлайн, я нашел несколько страниц, которые указали, что это проблема с __db.*. Хотя удаление их и восстановление базы данных в моей rpmпапке устранило другую проблему, я все еще получаю transaction lockошибку.

Кто-нибудь есть понимание этой ошибки?

Хари Селдон
источник
1
Если у вас есть файл с именем / var / lock / rpm /action, попробуйте удалить его.
fpmurphy
1
каталог /mnt/fedRoot/var/lib/rpmсуществует? по аналогии с redhat.com/archives/rpm-list/2007-May/msg00046.html , что rpm --root=/mnt/fedRoot -E '%{_rpmlock_path}'говорит?
Андре Хольцнер
Какие-либо обновления по этой проблеме? Ответы на два предложения выше?
Калеб
Извините за отсутствие ответа, спасибо за честность @Caleb. Команда указала на /usr/lib/rpm/macros. Я думаю, проблема заключалась в том, что я пытался использовать версию rpm установки Fedora, которая была несовместима с используемой мной CentOS-версией. Я не знаю, имеет ли это смысл (для экспертов по linux), но я смог установить другую версию CentOS без каких-либо проблем, поэтому на этом я основываюсь. Я решил сделать шаг назад и попытаться узнать немного больше о linux, прежде чем снова попытаться использовать полноценную систему xen. На данный момент я использую Fedora 14 в качестве основной системы.
Хари Селдон,

Ответы:

11

Попробуйте запустить вашу команду от имени пользователя root. Это сработало для меня.

Phathutshedzo
источник
1
Почему работает как rootработает?
Кевин Мередит
Да, почему он требует права пользователя root?
LoveWithMaths
0

Что-то еще держит этот замок. Подожди некоторое время. (Обычно это графический инструмент управления пакетами, который обновляет представление о том, что доступно, или, возможно, пробежку по ням).

vonbrand
источник
0

проверьте разрешение на уровне файла для пользователя root, оно должно быть (чтение, запись и выполнение)

$ls -l /var/lib/rpm/.rpm.lock
-rwxr-xr-x
Сайед
источник
0

2019 Обновление :::

Столкнулся с аналогичной проблемой, как и было задано (RPM не выполнен: ошибка: невозможно создать блокировку транзакции в /var/lib/rpm/.rpm.lock (ресурс временно недоступен))

Решено

ps -ef|grep rpm

И убивает 2 бесхозных оборотов, как показано ниже;

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

Затем я смог приступить к обновлению пакетов

MarcoZen
источник
-1

Попробуйте удалить /var/lib/rpm/.rpm.lockфайл (для этого нужно быть пользователем root). Это исправило это для меня.

Гай Гракх
источник
7
Теперь получаю ошибкуcan't create transaction lock on /var/lib/rpm/.rpm.lock (No such file or directory)
shashwat
-2

Поскольку у вас возникает ошибка «не удается создать блокировку транзакции на rpm», чтобы устранить эту ошибку и получить требуемый пакет на вашем компьютере, вам просто нужно войти в систему как пользователь root через окно терминала «su -root», а затем установите пакет rpm. Ошибка решается.

Манжу
источник
2
Можете ли вы выделить то, что ваш ответ добавляет сверх существующих ответов?
Anthon