You are not logged in.
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
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
Nothing. It's in 4.2 format already.
Offline
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.
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
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
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
Offline
Experienced same on a virtual machine today.
Command that helped:
sudo chmod a+x /var/lib/pacman
Offline