[arch-dev-public] News item: /lib removal - Was: heads up: /lib removal

Allan McRae allan at archlinux.org
Thu Jul 12 02:06:52 EDT 2012

On 12/07/12 10:55, Allan McRae wrote:
> On 11/07/12 12:25, Allan McRae wrote:
>> On 11/07/12 11:32, Dan McGee wrote:
>>> On Tue, Jul 10, 2012 at 5:26 PM, Allan McRae <allan at archlinux.org> wrote:
>>>> A patched version of pacman is now in [testing] that will detect all the
>>>> issues reported so far that resulted in failed updates.   Users of the
>>>> [testing] repo who last updated in the three days between the kmod
>>>> update and the glibc update may still run into issues, but "pacman -Sy
>>>> pacman && pacman -Su" will prevent that.
>>>> Here is a (very draft) news item.  I think it provides complete update
>>>> instructions for people using the "stable" repos.
>>>> Removal of /lib directory
>>>> All files in the /lib directory have been moved to /usr/lib and now /lib
>>>> is a symlink to usr/lib.  During this update, pacman will identify a
>>>> conflict in the /lib directory.  In the simplest case, this is worked
>>>> around by doing
>>>> pacman -Syu --ignore glibc
>>>> pacman -Su
>>>> When additional package depend on having a newer version of glibc than
>>>> is currently on your system and these also have files in /lib (e.g.
>>>> older versions of gcc), then and extra step will be necessary.  For example:
>>>> pacman -Syu --ignore glibc gcc
>>>> pacman -Sd gcc
>>>> pacman -Su
>>>> Only do the -Sd step if really necessary.  Pacman will warn you about a
>>>> conflict in /lib on the -Su step if it is.
>>>> If the "pacman -Su" step reports a conflict in /lib, you will need to
>>>> look at all the files in /lib and determine which ones are not owned by
>>>> glibc.  This is achieved by "pacman -Qo /lib/*".  You will need to move
>>>     find /lib -print0 | xargs -o pacman -Qo
>>> is much more effective at helping track down pesky files in
>>> subdirectories (ala catalyst-hook).
>> I figure that:
>> error: cannot determine ownership of directory '/lib/foo' is a good
>> hint, because these directories need removed too.
> We probably need to add a note about looking for packages that own /lib
> but seem to have no actual files in there (probably because the files
> were manually moved to /usr/lib...).  This will give a conflict on /lib.
> So some sort of:
> grep -R --include files "^lib" /var/lib/pacman/local/
> I think the news announcement is probably getting a bit long given all
> the esge cases that should be covered.  I will just include instructions
> for the ideal (usual?) case of "pacman -Syu --ignore glibc && pacman
> -Su" and provide a link to a (as yet uncreated...) wiki page with
> instructions on how to deal with conflicts.

For comments:

More information about the arch-dev-public mailing list