Alionet - Communauté openSUSE francophone

openSUSE => Installation et boot => Discussion initiée par: squid-f le 09 Juillet, 2020, 17:19:26

Titre: can't create transaction lock on /var/lib/rpm/.rpm.lock
Publié par: squid-f le 09 Juillet, 2020, 17:19:26
Bonjour à toutes et tous.

La série noire continue....

Suite à mes problèmes avec le pilote Nvidia (voir autre post), je me suis retrouvé après des tests (un peu osés ?) avec une définition d'écran impossible à changer et des pilotes Nvidia, bien qu'aucun paquet Nvidia ne soit installé.
Bref, J'ai voulu donc redémarrer avec un snapshot système plus ancien à partir de l'affichage de Grub.
Cela a bien fonctionné et j'ai retrouvé ma configuration graphique stable.

Par contre, je ne peux plus installer de paquet (zypper ou YaST).
Quelque soit le zypper in paquet , j'obtiens :
Erreur: Subprocess failed. Error: Échec RPM : error: can't create transaction lock on /var/lib/rpm/.rpm.lock (Read-only file system)

Help!

Merci
Titre: Re : can't create transaction lock on /var/lib/rpm/.rpm.lock
Publié par: Jomo le 09 Juillet, 2020, 17:43:07
Il se passe quoi en essayant les commandes :
sudo zypper clean && sudo zypper ref
?
Titre: Re : can't create transaction lock on /var/lib/rpm/.rpm.lock
Publié par: squid-f le 09 Juillet, 2020, 17:53:23
Bonjour @Jomo

Voici :
sudo zypper clean && sudo zypper ref
[Tous les dépôts ont été nettoyés.
Le dépôt 'dvd' est à jour.                                                     
Le dépôt 'packman' est à jour.                                                 
Le dépôt 'Dépôt Non-OSS' est à jour.                                           
Le dépôt 'Dépôt principal' est à jour.                                         
Le dépôt 'Dépôt principal de mise à jour' est à jour.                          
Le dépôt 'Dépôt de mises à jour (Non-OSS)' est à jour.                         
Tous les dépôts ont été rafraichis.

Par contre, toujours le même message d'erreur :
sudo zypper in php7-bcmath
Chargement des données du dépôt...
Lecture des paquets installés...
Résolution des dépendances des paquets...

Le NOUVEAU paquet suivant va être installé :
  php7-bcmath

1 nouveau paquet à installer.
Taille de téléchargement totale : 49,1 KiB. Déjà en cache : 0 B. Après
l'opération, 38,6 KiB d'espace disque supplémentaire sera utilisé.
Continuer ? [o/n/v/...? affiche toutes les options] (o):
Récupération de paquet php7-bcmath-7.4.6-lp152.1.11.x86_64
                                        (1/1),  49,1 KiB ( 38,6 KiB décompressé)
Récupération : php7-bcmath-7.4.6-lp152.1.11.x86_64.rpm ...................[fait]

Recherche de conflits de fichiers : ......................................[fait]
(1/1) Installation de : php7-bcmath-7.4.6-lp152.1.11.x86_64 ............[erreur]
L'installation de php7-bcmath-7.4.6-lp152.1.11.x86_64 a échoué :
Erreur: Subprocess failed. Error: Échec RPM : error: can't create transaction lock on /var/lib/rpm/.rpm.lock (Read-only file system)
Titre: Re : can't create transaction lock on /var/lib/rpm/.rpm.lock
Publié par: Jomo le 09 Juillet, 2020, 18:34:53
Je ne connais pas entièrement le fonctionnement d'Open Suse, mais est-ce-que Le répétoire en question a été effacé pendant la manip ? A vérifier avec :
ls -l /var/lib/rpm
Titre: Re : can't create transaction lock on /var/lib/rpm/.rpm.lock
Publié par: squid-f le 09 Juillet, 2020, 18:48:15
Voici

 ls -l /var/lib/rpm
lrwxrwxrwx 1 root root 26  4 juil. 12:04 /var/lib/rpm -> ../../usr/lib/sysimage/rpm

et

ls -al /usr/lib/sysimage/rpm
total 115592
drwxr-xr-x 1 root root      420  4 juil. 12:04 .
drwxr-xr-x 1 root root        6  4 juil. 12:04 ..
-rw-r--r-- 1 root root  8110080  7 juil. 18:30 Basenames
-rw-r--r-- 1 root root    20480  6 juil. 18:34 Conflictname
-rw-r--r-- 1 root root  2879488  7 juil. 18:30 Dirnames
-rw-r--r-- 1 root root     8192  6 juil. 18:34 Enhancename
-rw-r--r-- 1 root root     8192  4 juil. 12:01 Filetriggername
-rw-r--r-- 1 root root    49152  7 juil. 18:30 Group
-rw-r--r-- 1 root root    49152  7 juil. 18:30 Installtid
-rw-r--r-- 1 root root   131072  7 juil. 18:30 Name
-rw-r--r-- 1 root root    69632  7 juil. 18:30 Obsoletename
-rw-r--r-- 1 root root 99905536  7 juil. 18:30 Packages
-rw-r--r-- 1 root root  5951488  7 juil. 18:30 Providename
-rw-r--r-- 1 root root    57344  7 juil. 18:30 Recommendname
-rw-r--r-- 1 root root   692224  7 juil. 18:30 Requirename
-rw-r--r-- 1 root root        0  4 juil. 11:57 .rpm.lock
-rw-r--r-- 1 root root   241664  7 juil. 18:30 Sha1header
-rw-r--r-- 1 root root   139264  7 juil. 18:30 Sigmd5
-rw-r--r-- 1 root root    16384  4 juil. 16:52 Suggestname
-rw-r--r-- 1 root root    32768  6 juil. 18:34 Supplementname
-rw-r--r-- 1 root root     8192  4 juil. 11:57 Transfiletriggername
-rw-r--r-- 1 root root     8192  4 juil. 11:59 Triggername

Du coup, j'ai essayé d'effacer le fichier .rpm.lock et j'ai le même message d'erreur ! Pourtant, le fichier n'est pas en read only.
J'ai l'impression qu'il y a un problème sur le montage du répertoire mais je n'arrive pas à déterminer quoi...

sudo rm .rpm.lock
[sudo] Mot de passe de root :
rm: impossible de supprimer '.rpm.lock': Système de fichiers accessible en lecture seulement

A+
Titre: Re : can't create transaction lock on /var/lib/rpm/.rpm.lock
Publié par: squid-f le 09 Juillet, 2020, 19:13:19
En fait, j'ai maintenant tout mon répertoire /usr qui est en lecture seule malgré des permissions qui autorisent l'écriture.
Comment est-ce possible ?

sudo touch /usr/test.txt
touch: impossible de faire un touch '/usr/test.txt': Système de fichiers accessible en lecture seulement

mais

ls -al /usr
total 0
drwxr-xr-x 1 root root   104 20 sept.  2019 .
drwxr-xr-x 1 root root   188  4 juil. 13:06 ..
drwxr-xr-x 1 root root 45592  7 juil. 18:30 bin
drwxr-xr-x 1 root root    56  5 juil. 14:03 include
drwxr-xr-x 1 root root  2894  5 juil. 19:33 lib
drwxr-xr-x 1 root root 99874  7 juil. 18:30 lib64
drwxr-xr-x 1 root root    94  9 juil. 14:25 local
drwxr-xr-x 1 root root 13948  7 juil. 14:24 sbin
drwxr-xr-x 1 root root  4976  5 juil. 11:43 share
drwxr-xr-x 1 root root    16  4 juil. 11:57 src
drwxr-xr-x 1 root root    26  4 juil. 11:57 x86_64-suse-linux

A+
Titre: Re : can't create transaction lock on /var/lib/rpm/.rpm.lock
Publié par: Jomo le 09 Juillet, 2020, 19:13:36
En essayant
sudo rm -rf .rpm.lock
?
Il faut se méfier des options -rf : ça force l'effacement (mal utilisé : ça peut dégager le répertoire /). Il vaut mieux vérifier ce qu'on supprime avec ls -rf .rpm.lock avant
Titre: Re : can't create transaction lock on /var/lib/rpm/.rpm.lock
Publié par: squid-f le 09 Juillet, 2020, 19:15:45
En essayant
sudo rm -rf .rpm.lock
?
Il faut se méfier des options -rf : ça force l'effacement (mal utilisé : ça peut dégager le répertoire /). Il vaut mieux vérifier ce qu'on supprime avec ls -rf .rpm.lock avant

Même erreur. La machine est têtue !  :D

sudo rm -rf .rpm.lock
rm: impossible de supprimer '.rpm.lock': Système de fichiers accessible en lecture seulement
Titre: Re : can't create transaction lock on /var/lib/rpm/.rpm.lock
Publié par: Jomo le 09 Juillet, 2020, 19:22:15
En fait, j'ai maintenant tout mon répertoire /usr qui est en lecture seule malgré des permissions qui autorisent l'écriture.
Comment est-ce possible ?

sudo touch /usr/test.txt
touch: impossible de faire un touch '/usr/test.txt': Système de fichiers accessible en lecture seulement

mais

ls -al /usr
total 0
drwxr-xr-x 1 root root   104 20 sept.  2019 .
drwxr-xr-x 1 root root   188  4 juil. 13:06 ..
drwxr-xr-x 1 root root 45592  7 juil. 18:30 bin
drwxr-xr-x 1 root root    56  5 juil. 14:03 include
drwxr-xr-x 1 root root  2894  5 juil. 19:33 lib
drwxr-xr-x 1 root root 99874  7 juil. 18:30 lib64
drwxr-xr-x 1 root root    94  9 juil. 14:25 local
drwxr-xr-x 1 root root 13948  7 juil. 14:24 sbin
drwxr-xr-x 1 root root  4976  5 juil. 11:43 share
drwxr-xr-x 1 root root    16  4 juil. 11:57 src
drwxr-xr-x 1 root root    26  4 juil. 11:57 x86_64-suse-linux

A+
Etonnant ça ! Ca a modifié les droits de sudo ? Vérifier dans yast- >sécurité & utilisateur ->sudo donne bien les droits de root
Ou essayer la commande
su -
pour avoir une console sous root
Titre: Re : can't create transaction lock on /var/lib/rpm/.rpm.lock
Publié par: squid-f le 09 Juillet, 2020, 19:29:31
Bonjour

j'ai essayé avec su - et cela ne marchait pas.
Je peux passer d'autres commandes avec sudo, donc j'ai bien les droits d'administration...

Galère...

A+
Titre: Re : can't create transaction lock on /var/lib/rpm/.rpm.lock
Publié par: Jomo le 09 Juillet, 2020, 19:43:31
En cherchant sur le web : j'ai trouvé une discutions similaire en anglais : https://forums.opensuse.org/showthread.php/534159-Read-only-lock-on-var-lib-rpm-rpm-lock (https://forums.opensuse.org/showthread.php/534159-Read-only-lock-on-var-lib-rpm-rpm-lock)
Après traduction, ça donne :
Citer
L'instantané précédent est, par définition, en lecture seule. Si vous voulez continuer à l'utiliser, vous devez effectuer un rollback qui clone l'instantané en lecture seule dans un sous-volume inscriptible et définit ce sous-volume comme nouvelle racine du système. Étonnamment, cela est même assez bien documenté, il y a un chapitre entier consacré à la récupération à partir d'instantanés ; et lorsque vous démarrez à partir d'un instantané précédent, le système devrait en fait avoir affiché un indice sur la façon d'effectuer la restauration.
Titre: Re : can't create transaction lock on /var/lib/rpm/.rpm.lock
Publié par: squid-f le 09 Juillet, 2020, 19:44:20
En fait, c'est normal que /usr soit en lecture seule si j'ai bien compris ci-dessous. On doit utiliser /usr/local.
Donc, la question est pourquoi zypper essaye d'écrire dedans ??

Citer
/usr/local

    The original idea behind '/usr/local' was to have a separate ('local') '/usr' directory on every machine besides '/usr', which might be just mounted read-only from somewhere else. It copies the structure of '/usr'. These days, '/usr/local' is widely regarded as a good place in which to keep self-compiled or third-party programs. The /usr/local hierarchy is for use by the system administrator when installing software locally. It needs to be safe from being overwritten when the system software is updated. It may be used for programs and data that are shareable amongst a group of hosts, but not found in /usr. Locally installed software must be placed within /usr/local rather than /usr unless it is being installed to replace or upgrade software in /usr.

A+
Titre: Re : can't create transaction lock on /var/lib/rpm/.rpm.lock
Publié par: squid-f le 09 Juillet, 2020, 19:45:13
En cherchant sur le web : j'ai trouvé une discutions similaire en anglais : https://forums.opensuse.org/showthread.php/534159-Read-only-lock-on-var-lib-rpm-rpm-lock (https://forums.opensuse.org/showthread.php/534159-Read-only-lock-on-var-lib-rpm-rpm-lock)
Après traduction, ça donne :
Citer
L'instantané précédent est, par définition, en lecture seule. Si vous voulez continuer à l'utiliser, vous devez effectuer un rollback qui clone l'instantané en lecture seule dans un sous-volume inscriptible et définit ce sous-volume comme nouvelle racine du système. Étonnamment, cela est même assez bien documenté, il y a un chapitre entier consacré à la récupération à partir d'instantanés ; et lorsque vous démarrez à partir d'un instantané précédent, le système devrait en fait avoir affiché un indice sur la façon d'effectuer la restauration.

Merci @Jomo

Cela doit être la raison !

Je regarde cela après le repas.

A+
Titre: Re : can't create transaction lock on /var/lib/rpm/.rpm.lock
Publié par: squid-f le 10 Juillet, 2020, 09:00:10
Merci @Jomo

Ta piste était la bonne.

Les commandes suivantes m'ont sorti de l’ornière :

sudo snapper rollback
systemctl reboot

A+
Titre: Re : can't create transaction lock on /var/lib/rpm/.rpm.lock
Publié par: manchette le 13 Juillet, 2020, 10:45:55
Salut ;=)
Si j'ai bien compris tu as voulu te sauver la mise en revenant en arrière via les snapshots de Btrfs mais tu n'as pas utilisé la bonne commande/manip,  et donc ne pouvait pas agir en écriture.
Sais tu quelle manip avait entrainé ce pépin ?
Titre: Re : can't create transaction lock on /var/lib/rpm/.rpm.lock
Publié par: squid-f le 13 Juillet, 2020, 10:59:37
Salut ;=)
Si j'ai bien compris tu as voulu te sauver la mise en revenant en arrière via les snapshots de Btrfs mais tu n'as pas utilisé la bonne commande/manip,  et donc ne pouvait pas agir en écriture.
Sais tu quelle manip avait entrainé ce pépin ?
Bonjour @manchette

Tu as bien compris   :D
En fait, dans un autre post, je me bats avec les pilotes Nvidia sous Leap 15.2 : https://www.alionet.org/index.php?topic=535.0
A force de bidouiller et notamment d'installer cuda directement depuis le site Nvidia en "hard way", je me suis retrouvé avec une configuration d'affichage qui ne fonctionnait pas mieux qu'avec les pilotes Nvidia. Mais, pire, je n'ai pas réussi à revenir dans la configuration qui marche avec le pilote Nouveau...
Donc, j'ai trouvé plus facile à ce point de revenir sur un snapshot que je savais fonctionnel.  :-[

J'ai appris donc à faire un rollback propre  :D

A+


Titre: Re : can't create transaction lock on /var/lib/rpm/.rpm.lock
Publié par: manchette le 13 Juillet, 2020, 11:05:44
Hello ;=)
tu te rappelles la commande que tu avais faites pour revenir a l'instantané précédent ? (je n'utilise pas btrfs mais pour savoir la commande qui a entrainé cette erreur au départ, soit la mauvais manip à éviter en fait)
Titre: Re : can't create transaction lock on /var/lib/rpm/.rpm.lock
Publié par: squid-f le 13 Juillet, 2020, 11:21:41
Re-

Mon / est formatté en BTRFS. Au démarrage, GRUB propose un menu pour démarrer sur un snapshot en ready only seulement (détail que je n'avais pas vu...). En le sélectionnant, tu as accès à un choix de snapshot.
Sinon, si tu as accès à ton système et que ta partition système est formatée en BTRFS, la commande suivante liste les snapshots :
sudo snapper list
Puis, tu peux choisir de revenir sur le numéro de snapshot par :
sudo snapper rollback num_snapshot

A+
Titre: Re : can't create transaction lock on /var/lib/rpm/.rpm.lock
Publié par: manchette le 13 Juillet, 2020, 11:39:57
Merci ;=)