Tips to fully update ArchBang after clean install of 20120430 iso image (ArchLinux /usr/lib/ symlink issue)

Posted: September 16, 2012 in Linux
Tags: , , , , ,

Per Allan McRae’s solution below with a bit of tweaking;

You might need to reboot after filesystem install. Also, change i686 to x86_64 in the pacman -U line if needed… Always say “N” to updating pacman first, and say “Y” to all the replacements.

pacman -Syy
rm -rf /var/run /var/lock && pacman -Sf filesystem
pacman -S tzdata
pacman -U http://pkgbuild.com/~allan/glibc-2.16.0-1-i686.pkg.tar.xz
rm /etc/profile.d/locale.sh
pacman -Sf fontconfig # line added by Aperio
pacman -Su –ignore glibc

Some “tweaking” is required after above steps …

==Start==

$ grep ‘^lib/’ /var/lib/pacman/local/*/files resulting in;

<something> is owned by <something else>

Generally …

Try
pacman -R <something else>
if return message shows 1 dependency – pacman -R <dependency> then retry pacman -R <something else>
if return message shows 2 or more dependencies …

Try
pacman -Sd <something else>
if still having issues …

Try
pacman -Sf <something else>
N.B.: please use the “f” parameter sparingly

You may encounter some issues with man files – one option is to rename those files e.g.;

mv /usr/share/man/man5/vconsole.conf.5.gz /usr/share/man/man5/vconsole.conf.5.gz.bak
mv /usr/share/man/man5/hostname.5.gz /usr/share/man/man5/hostname.5.gz.bak
mv /usr/share/man/man5/locale.conf.5.gz /usr/share/man/man5/locale.conf.5.gz.bak

==End==

After repeating the steps between ==Start== and ==End== a few times, eventually only files owned by glibc will remain e.g.;

/lib/libnss_db.so.2 is owned by glibc 2.15-10
/lib/ld-linux.so.2 is owned by glibc 2.15-10
/lib/libresolv-2.15.so is owned by glibc 2.15-10
/lib/libc-2.15.so is owned by glibc 2.15-10
/lib/libanl.so.1 is owned by glibc 2.15-10
/lib/libcrypt.so.1 is owned by glibc 2.15-10
/lib/libutil-2.15.so is owned by glibc 2.15-10
/lib/libBrokenLocale-2.15.so is owned by glibc 2.15-10
/lib/librt-2.15.so is owned by glibc 2.15-10
/lib/libresolv.so.2 is owned by glibc 2.15-10
/lib/libanl-2.15.so is owned by glibc 2.15-10
/lib/libpthread-2.15.so is owned by glibc 2.15-10
/lib/libBrokenLocale.so.1 is owned by glibc 2.15-10
/lib/libnss_db-2.15.so is owned by glibc 2.15-10
/lib/libnss_dns.so.2 is owned by glibc 2.15-10
/lib/libnsl.so.1 is owned by glibc 2.15-10
/lib/libpthread.so.0 is owned by glibc 2.15-10
/lib/libnss_hesiod-2.15.so is owned by glibc 2.15-10
/lib/libdl.so.2 is owned by glibc 2.15-10
/lib/libutil.so.1 is owned by glibc 2.15-10
/lib/libnsl-2.15.so is owned by glibc 2.15-10
/lib/libpcprofile.so is owned by glibc 2.15-10
/lib/libnss_hesiod.so.2 is owned by glibc 2.15-10
/lib/librt.so.1 is owned by glibc 2.15-10
/lib/libnss_files-2.15.so is owned by glibc 2.15-10
/lib/libnss_compat-2.15.so is owned by glibc 2.15-10
/lib/libthread_db-1.0.so is owned by glibc 2.15-10
/lib/libthread_db.so.1 is owned by glibc 2.15-10
/lib/libnss_nisplus-2.15.so is owned by glibc 2.15-10
/lib/libm.so.6 is owned by glibc 2.15-10
/lib/libcidn.so.1 is owned by glibc 2.15-10
/lib/libnss_dns-2.15.so is owned by glibc 2.15-10
/lib/libc.so.6 is owned by glibc 2.15-10
/lib/libdl-2.15.so is owned by glibc 2.15-10

The “trick” now is to perform another install of glibc using the “d” option (i.e. ignore versioning);

pacman -Sd glibc

The above will automatically create the /lib symlink (no moving of any files from original /lib required).

Finally – do;

pacman -Su then pacman -S linux

N.B.: Maybe best to also do a grub-install –recheck /dev/sdX (replace X with your drive letter).

After rebooting – network manager applet will start twice.

One way to fix – mv /etc/xdg/autostart/nm-applet.desktop /etc/xdg/autostart/nm-applet.desktop.bak

You’ll also find USB devices no longer showing up in pcmanfm for mounting.

To fix – follow steps at https://wiki.archlinux.org/index.php/LXDE#PCManFM

Then create /etc/polkit-1/localauthority/50-local.d/XX-udisks.pkla with the following content. Note: if 50-local.d folder has any filenames beginning with numbers, XX needs to be a larger number e.g. say file 55-myconf.pkla already exists – XX can be any number larger than 55, for convenience can use say 60-udisks.pkla.

[Local Users]
Identity=unix-user:<your username>
Action=org.freedesktop.udisks2.*
ResultAny=yes
ResultInactive=yes
ResultActive=yes

Note this tested solution worked as of 23 Sep 2012 and not guaranteed to work at future dates as Arch is a rolling release.

Credits to: Allan McRae from the ArchLinux development team and ArchWiki.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s