You are not logged in.

#1 2015-01-05 10:55:44

pirj
Member
From: Phuket, Thailand
Registered: 2011-11-24
Posts: 19

failed to initialize alpm library (pacman-db-upgrade didnt help)

Hi,

Yes, I have seen the recent topic, `pacman-db-upgrade` didnt help.

Pacman is latest, 4.2.0-5

$ pacman -Ss aa
error: failed to initialize alpm library
(database is incorrect version: /var/lib/pacman/)
error:   try running pacman-db-upgrade
$ sudo pacman -Ss aa
$

Ok, let's see where it actually fails:

read(3, "# Locale name alias data base.\n#"..., 4096) = 2492
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb7797000, 4096)                = 0
open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libalpm.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US.utf8/LC_MESSAGES/libalpm.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US/LC_MESSAGES/libalpm.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libalpm.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.utf8/LC_MESSAGES/libalpm.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libalpm.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/pacman.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US.utf8/LC_MESSAGES/pacman.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US/LC_MESSAGES/pacman.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.UTF-8/LC_MESSAGES/pacman.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.utf8/LC_MESSAGES/pacman.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/pacman.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
write(2, "error: ", 7error: )                  = 7
write(2, "failed to initialize alpm librar"..., 84failed to initialize alpm library
$ < /etc/locale.conf 
LANG="en_US.UTF-8"
$ sudo pacman -Ql pacman | grep libalpm.mo
...
pacman /usr/share/locale/el/LC_MESSAGES/libalpm.mo
pacman /usr/share/locale/en_GB/LC_MESSAGES/libalpm.mo
pacman /usr/share/locale/es/LC_MESSAGES/libalpm.mo
...

$ sudo pacman -Ql pacman G pacman.mo
...
pacman /usr/share/locale/el/LC_MESSAGES/pacman.mo
pacman /usr/share/locale/en_GB/LC_MESSAGES/pacman.mo
pacman /usr/share/locale/eo/LC_MESSAGES/pacman.mo
...

There's no matching translation file for my (pretty common I assume) en_US.UTF-8 locale.

$ sudo cp /usr/share/locale/en_GB/LC_MESSAGES/pacman.mo /usr/share/locale/en/LC_MESSAGES/
$ sudo cp /usr/share/locale/en_GB/LC_MESSAGES/libalpm.mo /usr/share/locale/en/LC_MESSAGES/

Yet one strace:

open("/usr/share/locale/en/LC_MESSAGES/pacman.mo", O_RDONLY) = -1 EACCES (Permission denied)
$ ls /usr/share/locale/en/LC_MESSAGES/
...
-rw-r----- 1 root root 14734 Jan  5 13:31 libalpm.mo
-rw-r----- 1 root root 29571 Jan  5 13:29 pacman.mo
...
$ umask
027
$ chmod o+r /usr/share/locale/en/LC_MESSAGES/*

This gave me an idea to look for EACCES:

openat(AT_FDCWD, "/var/lib/pacman/local/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3
open("/var/lib/pacman/local/ALPM_DB_VERSION", O_RDONLY|O_LARGEFILE) = -1 EACCES (Permission denied)

$ ls -l /var/lib/pacman 
drwxr--r-- 881 root root 49152 Jan  5 13:20 local
drwxr-xr-x   2 root root  4096 Jan  4 13:51 sync

After `chmod a+x /var/lib/pacman/local` problem has gone.
I've removed translations previously copied to /usr/share/locale/en/LC_MESSAGES/, works fine regardless.

Problems so far:
1. Something goes wrong with non 022 umask (027 specifically).
2. Error handling and error messages are not exactly correct.
3. Pacman misses common 'en' locale and has a specific 'en_GB' one instead (doesn't seem to affect anything, but anyway).

Is it all my fault or should be reported?

Last edited by pirj (2015-01-05 10:59:23)

Offline

#2 2015-01-05 11:03:51

clfarron4
Member
From: London, UK
Registered: 2013-06-28
Posts: 2,163
Website

Re: failed to initialize alpm library (pacman-db-upgrade didnt help)

What actually happens when you run `pacman-db-upgrade`?


Claire is fine.
Problems? I have dysgraphia, so clear and concise please.
My public GPG key for package signing
My x86_64 package repository

Offline

#3 2015-01-05 11:22:17

pirj
Member
From: Phuket, Thailand
Registered: 2011-11-24
Posts: 19

Re: failed to initialize alpm library (pacman-db-upgrade didnt help)

Nothing. It's in 4.2 format already.

Offline

#4 2015-01-05 22:08:57

Leonid.I
Member
From: Aethyr
Registered: 2009-03-22
Posts: 999

Re: failed to initialize alpm library (pacman-db-upgrade didnt help)

pirj wrote:

After `chmod a+x /var/lib/pacman/local` problem has gone.

So, what was the permission on this directory before you did this? And also what are the permissions on file inside /.../local?

I am guessing that your user umask is propagated to sudo. Then, pacman sets this "wrong" permission on the local DB. That's one reason why sudo and su have to be used with caution, it's always better to just log in as root via tty or ssh as root into localhost.

pirj wrote:

Problems so far:
1. Something goes wrong with non 022 umask (027 specifically).
2. Error handling and error messages are not exactly correct.
3. Pacman misses common 'en' locale and has a specific 'en_GB' one instead (doesn't seem to affect anything, but anyway).

Is it all my fault or should be reported?

(3) is not a problem because en_US is a default language, so there is no need for a localization (at least this is my understanding). That's why some small projects have no localization data inn /sur/share at all.

(2) why?

(1) Probably an issue with sudo.


Arch Linux is more than just GNU/Linux -- it's an adventure
pkill -9 systemd

Offline

#5 2015-01-24 23:53:23

shami
Member
From: SLOVAKIA
Registered: 2008-10-29
Posts: 11

Re: failed to initialize alpm library (pacman-db-upgrade didnt help)

I have similar problem.

After:
[root@rb1 ~]# pacman -Syu
error: failed to initialize alpm library
(database is incorrect version: /var/lib/pacman/)
error:   try running pacman-db-upgrade

After:
[root@rb1 ~]# pacman-db-upgrade
==> ERROR: You must have correct permissions to upgrade the database.

connecting as root via ssh to my raspberry...

Offline

#6 2015-01-25 00:37:22

jasonwryan
Anarchist
From: .nz
Registered: 2009-05-09
Posts: 30,424
Website

Re: failed to initialize alpm library (pacman-db-upgrade didnt help)

shami wrote:

connecting as root via ssh to my raspberry...

Arch ARM is a separate distribution; please ask on their boards https://bbs.archlinux.org/viewtopic.php?id=153431


Arch + dwm   •   Mercurial repos  •   Surfraw

Registered Linux User #482438

Offline

#7 2015-01-30 19:41:29

pirj
Member
From: Phuket, Thailand
Registered: 2011-11-24
Posts: 19

Re: failed to initialize alpm library (pacman-db-upgrade didnt help)

Experienced same on a virtual machine today.
Command that helped:

sudo chmod a+x /var/lib/pacman

Offline

Board footer

Powered by FluxBB